版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 分類號(hào) 編 號(hào) </p><p><b> 華北水利水電學(xué)院 </b></p><p><b> 實(shí)訓(xùn)報(bào)告</b></p><p> 題目 新聞發(fā)布系統(tǒng) </p
2、><p> 院 、 系 軟件職業(yè)技術(shù)學(xué)院 </p><p> 專 業(yè) 軟件技術(shù) </p><p> 姓 名 張浩然 </p><p> 學(xué) 號(hào) 200917534 </p><p> 指導(dǎo)教師 李永強(qiáng)
3、 </p><p><b> 摘要</b></p><p><b> 【摘要】</b></p><p> 隨著計(jì)算機(jī)科學(xué)的發(fā)展,數(shù)據(jù)庫(kù)技術(shù)在Internet中的應(yīng)用越來(lái)越廣泛,為廣大網(wǎng)絡(luò)用戶提供了更加周到和人性化的服務(wù)。個(gè)性化已逐漸成為當(dāng)今Web應(yīng)用的潮流。利用JSP技術(shù)開(kāi)發(fā)的網(wǎng)站新聞管理系統(tǒng),實(shí)現(xiàn)
4、了網(wǎng)站新聞的動(dòng)態(tài)管理,因?yàn)榭梢杂脕?lái)動(dòng)態(tài)發(fā)布新聞信息,所以使得對(duì)信息的管理更加及時(shí)、高效,提高了工作效率。</p><p> 【關(guān)鍵詞】Struts組建編程模型、ActionForm的說(shuō)明、樣式層、持久層、服務(wù)層、控制層。</p><p><b> 目錄</b></p><p><b> 摘要1</b></p&
5、gt;<p><b> 0 引言3</b></p><p><b> 1 系統(tǒng)分析4</b></p><p> 1.1 需求分析4</p><p> 1.2 可行性分析4</p><p><b> 2 總體設(shè)計(jì)4</b></p&
6、gt;<p> 2.1 項(xiàng)目規(guī)劃4</p><p> 2.2 系統(tǒng)功能結(jié)構(gòu)圖4</p><p><b> 3 系統(tǒng)設(shè)計(jì)5</b></p><p> 3.1 設(shè)計(jì)目標(biāo)5</p><p> 3.2 開(kāi)發(fā)及運(yùn)行環(huán)境5</p><p> 3.3 邏輯結(jié)構(gòu)設(shè)計(jì)
7、5</p><p> 4 網(wǎng)站總體架構(gòu)6</p><p> 4.1 文件布局6</p><p> 4.2 網(wǎng)站首頁(yè)的運(yùn)行結(jié)果6</p><p> 4.2 類的分布8</p><p> 5 網(wǎng)站后臺(tái)主要功能模塊設(shè)計(jì)8</p><p> 5.1 后臺(tái)登錄模塊設(shè)計(jì)8
8、</p><p> 5.2 總管理員設(shè)置模塊設(shè)計(jì)11</p><p> 5.3 更改總管理員密碼模塊設(shè)計(jì)23</p><p> 5.4 新聞信息管理27</p><p> 5.5 總結(jié)32</p><p> 6 網(wǎng)站前臺(tái)主要功能模塊設(shè)計(jì)32</p><p> 6.
9、1 今日新聞的顯示32</p><p> 6.2 輸入新聞的關(guān)鍵字查找新聞34</p><p> 6.3 新聞人物的查看和投票36</p><p><b> 7 小結(jié)39</b></p><p> 附錄一 參考文獻(xiàn)40</p><p> 附錄二 數(shù)據(jù)表41<
10、/p><p> 附錄三 文件架構(gòu)圖43</p><p><b> 0 引言</b></p><p> 21世紀(jì)的特征是數(shù)字化、網(wǎng)絡(luò)化和信息化,它是一個(gè)以數(shù)據(jù)庫(kù)技術(shù)為核心的信息時(shí)代。而隨著信息技術(shù)的發(fā)展,報(bào)社行業(yè)也成為一個(gè)高度依賴信息業(yè)的行業(yè)。信息技術(shù)的飛速發(fā)展不僅使新聞工作者逐漸擺脫了繁重的手工勞動(dòng)、提高了工作效率,而且推著報(bào)社行業(yè)向現(xiàn)
11、代化管理邁進(jìn)。現(xiàn)代化的新聞發(fā)布系統(tǒng)也應(yīng)該有現(xiàn)代化的管理系統(tǒng)。在科技日益發(fā)達(dá)的今天,人們對(duì)新聞更加重視。因此,新聞發(fā)布進(jìn)行現(xiàn)代化管理就變的尤為重要。</p><p> 數(shù)據(jù)庫(kù)是數(shù)據(jù)管理的最新技術(shù),是計(jì)算機(jī)科學(xué)的重要分支。今天,信息資源已成為各個(gè)部門的重要財(cái)富,建立一個(gè)滿足新聞發(fā)布信息處理要求的行之有效的信息系統(tǒng)也成為一個(gè)報(bào)社發(fā)展的重要條件。新聞發(fā)布系統(tǒng),它是報(bào)社管理系統(tǒng)的一部分,其作用是對(duì)所有新聞進(jìn)行有效的管理。
12、通過(guò)本系統(tǒng)不僅可以進(jìn)行新聞發(fā)布工作,而且還可以對(duì)和新聞相對(duì)應(yīng)的人員情況進(jìn)行查詢,并可隨時(shí)進(jìn)行增加,修改,刪除等工作,使工作人員能夠有效地對(duì)新聞進(jìn)行有效的控制和管理。因此,通過(guò)新聞發(fā)布系統(tǒng),使新聞工作系統(tǒng)化,規(guī)范化,自動(dòng)化,從而大大提高了新聞發(fā)布工作的效率。</p><p><b> 1 系統(tǒng)分析</b></p><p><b> 1.1 需求分析&l
13、t;/b></p><p> 通過(guò)相關(guān)調(diào)查,要求網(wǎng)站具有以下功能;</p><p> 通過(guò)網(wǎng)絡(luò),展示各行業(yè)新聞及相關(guān)信息。</p><p><b> 提供新聞搜索功能。</b></p><p> 設(shè)置新聞人物投票功能,并統(tǒng)計(jì)投票數(shù)量。</p><p> 支持其他網(wǎng)站的友情鏈接。&l
14、t;/p><p> 為后臺(tái)管理提供管理入口。</p><p> 1.2 可行性分析</p><p> 利用計(jì)算機(jī)實(shí)現(xiàn)新聞發(fā)布管理勢(shì)在必行。對(duì)于報(bào)社來(lái)說(shuō),利用計(jì)算機(jī)支持管理部門高效率完成新聞信息管理的日常事務(wù),是適應(yīng)現(xiàn)代報(bào)社制度要求、推動(dòng)報(bào)社由勞動(dòng)型管理走向科學(xué)化、規(guī)范化的必要條件;而新聞信息管理是一項(xiàng)瑣碎、復(fù)雜而又必須十分細(xì)致準(zhǔn)確的工作,新聞信息的管理,工作人員
15、信息的管理,等,絕對(duì)的不允許出錯(cuò),如果實(shí)行手工操作,需手工填制大量的表格,這就會(huì)耗費(fèi)工作人員大量的時(shí)間和精力,而且安全度也不理想,利用計(jì)算機(jī)進(jìn)行新聞發(fā)布信息工作的管理,不僅能夠保證各項(xiàng)信息準(zhǔn)確無(wú)誤、快速輸出,同時(shí)計(jì)算機(jī)具有手工管理所無(wú)法比擬的優(yōu)點(diǎn),例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高新聞管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件</p><
16、;p><b> 2 總體設(shè)計(jì)</b></p><p><b> 2.1 項(xiàng)目規(guī)劃</b></p><p> 新聞網(wǎng)是一個(gè)功能完善的新聞?lì)惥W(wǎng)站,由客戶前臺(tái)新聞瀏覽和后臺(tái)新聞管理兩大部分組成。</p><p><b> 前臺(tái)功能模塊</b></p><p> 前
17、臺(tái)主要包括新聞分類、顯示新聞詳細(xì)信息、新聞信息查詢、新聞人物投票、友情鏈接、提供后臺(tái)登錄口。</p><p><b> 后臺(tái)管理模塊</b></p><p> 后臺(tái)主要包括后臺(tái)總管理員設(shè)置及密碼修改、添加管理員、管理員信息設(shè)置、新聞?lì)愋凸芾?、新聞詳?xì)類型管理、新聞信息管理、鏈接管理、新聞人物管理、退出后臺(tái)。</p><p> 2.2 系
18、統(tǒng)功能結(jié)構(gòu)圖</p><p> 新聞發(fā)布系統(tǒng)前臺(tái)功能結(jié)構(gòu),如圖所示。</p><p> 新聞網(wǎng)前臺(tái)功能結(jié)構(gòu)圖</p><p> 新聞網(wǎng)后臺(tái)功能結(jié)構(gòu),如圖所示。</p><p> 新聞網(wǎng)后臺(tái)功能結(jié)構(gòu)圖</p><p><b> 3 系統(tǒng)設(shè)計(jì)</b></p><p>
19、<b> 3.1 設(shè)計(jì)目標(biāo)</b></p><p> 本網(wǎng)站是根據(jù)各行業(yè)新聞信息分類進(jìn)行開(kāi)發(fā)設(shè)計(jì)的,主要實(shí)現(xiàn)如下目標(biāo):</p><p> 分類展示各行業(yè)最新新聞狀況。</p><p> 顯示新聞的詳細(xì)信息。</p><p> 設(shè)置新聞搜索功能模塊。</p><p> 設(shè)置新聞人物投票
20、及投票數(shù)統(tǒng)計(jì)功能。</p><p> 提供其他網(wǎng)站的友情鏈接。</p><p> 3.2 開(kāi)發(fā)及運(yùn)行環(huán)境</p><p><b> 硬件平臺(tái):</b></p><p> CPU:P41.8GHz;</p><p> 內(nèi)存:256MB以上。</p><p><
21、;b> 軟件平臺(tái):</b></p><p> 操作系統(tǒng):Windows xp或者window7;</p><p> 數(shù)據(jù)庫(kù):SQL Server 2000;</p><p> 開(kāi)發(fā)工具包:JDK Version1.4.1;</p><p> Web服務(wù)器:Tomcat;</p><p>
22、瀏覽器:google</p><p> 分辨率:最佳效果1024*768像素。</p><p> 3.3 邏輯結(jié)構(gòu)設(shè)計(jì)</p><p> 本系統(tǒng)數(shù)據(jù)庫(kù)采用SQL server 2000數(shù)據(jù)庫(kù),系統(tǒng)數(shù)據(jù)庫(kù)名稱為db_news。數(shù)據(jù)庫(kù)db_news中包含7張表。關(guān)于數(shù)據(jù)庫(kù)中的數(shù)據(jù)表請(qǐng)參見(jiàn)附錄B</p><p><b> 4
23、網(wǎng)站總體架構(gòu)</b></p><p> 4.1 網(wǎng)站首頁(yè)的運(yùn)行結(jié)果</p><p> 網(wǎng)站前臺(tái)首頁(yè)的運(yùn)行結(jié)果如圖所示。</p><p> 網(wǎng)站前臺(tái)首頁(yè)運(yùn)行結(jié)果</p><p> 網(wǎng)站框架圖說(shuō)明如下:</p><p> 表`1 網(wǎng)站前
24、臺(tái)首頁(yè)頁(yè)面說(shuō)明</p><p> 網(wǎng)站后臺(tái)首頁(yè)的運(yùn)行結(jié)果如圖所示。</p><p> 網(wǎng)站后臺(tái)首頁(yè)運(yùn)行結(jié)果</p><p> 網(wǎng)站后臺(tái)首頁(yè)中的各部分說(shuō)明如表2所示。</p><p> 表2 網(wǎng)站后臺(tái)首頁(yè)頁(yè)面說(shuō)明</p><p><b>
25、 4.2 類的分布</b></p><p> 新聞發(fā)布系統(tǒng)是利用Struts框架實(shí)現(xiàn)的,新聞發(fā)布系統(tǒng)中類的分布如圖所示。</p><p><b> 類的分布</b></p><p> 類存放的文件夾功能如表3所示。</p><p> 表3 類
26、存放的文件夾功能列表</p><p> 5 網(wǎng)站后臺(tái)主要功能模塊設(shè)計(jì)</p><p> 5.1 后臺(tái)登錄模塊設(shè)計(jì)</p><p> 在新聞發(fā)布系統(tǒng)中,后臺(tái)管理員分為兩種:一個(gè)是普通管理員,他可以對(duì)新聞?lì)愋瓦M(jìn)行定義,也可以發(fā)布新聞、設(shè)置投票人數(shù)及網(wǎng)站鏈接;另一個(gè)是超級(jí)管理員,他除了可操作以上功能外,還可以對(duì)普通管理員進(jìn)行設(shè)置,總管理員和普通管理員都能通過(guò)后臺(tái)
27、登錄頁(yè)面登錄后臺(tái),然后對(duì)系統(tǒng)進(jìn)行相應(yīng)的操作。。</p><p> 在前臺(tái)單擊“進(jìn)入后臺(tái)”超鏈接,即可進(jìn)入到后臺(tái)登錄頁(yè)面,如圖所示。</p><p> 單擊“賬號(hào)”和“密碼”的文本框,輸入賬號(hào):mr 密碼:*****,單擊【提交】按鈕即可進(jìn)入新聞網(wǎng)后臺(tái)界面。</p><p><b> 后臺(tái)登錄頁(yè)面</b></p><p&
28、gt;<b> 樣式層的類</b></p><p><b> 具體代碼如下</b></p><p> /******************************* ManagerActionForm.java***************************/</p><p> package com.vi
29、ctor.domain;</p><p> import org.apache.struts.action.*;</p><p> public class ManagerActionForm extends ActionForm {</p><p> private Integer managerID; //在數(shù)據(jù)庫(kù)中的流水號(hào)</p>
30、<p> private String managerIssueDate; //管理員添加日期</p><p> private String managerMark; //管理員的標(biāo)示</p><p> private String managerName; //管理員帳號(hào)</p><p> private String
31、 managerPassword; //管理員密碼</p><p> private String managerRealName; //管理員的真實(shí)姓名</p><p> private String managerType; //管理員的權(quán)限 </p><p> public ManagerActionForm() {</p>
32、;<p> this.managerID = new Integer( -1);</p><p> this.managerIssueDate = "";</p><p> this.managerMark = "";</p><p> this.managerName = "";&l
33、t;/p><p> this.managerPassword = "";</p><p> this.managerRealName = "";</p><p> this.managerType = "";</p><p><b> }</b></p
34、><p> public Integer getManagerID() { </p><p> return managerID;</p><p><b> }</b></p><p> public void setManagerID(Integer managerID) {</p><p>
35、; this.managerID = managerID;</p><p><b> }</b></p><p> ………………………………………………….</p><p><b> 2.持久層的方法</b></p><p> 驗(yàn)證輸入的內(nèi)容是否正確有很多方法,筆者采用的是利用sql語(yǔ)句的
36、方法進(jìn)行驗(yàn)證輸入賬號(hào)和密碼。對(duì)輸入的賬號(hào)及密碼判斷是否正確。</p><p> 利用接口類的方法實(shí)現(xiàn)的代碼如下:</p><p> /********************************* ManagerDao.java*******************************/</p><p> public interface Manage
37、rDao {</p><p> public ManagerActionForm managerCheck(ManagerActionForm managerActionForm)</p><p><b> }</b></p><p> 實(shí)現(xiàn)接口的方法的代碼如下:</p><p> /**************
38、***************** ManagerDaoImpl.java*****************************/</p><p> //核對(duì)普通管理員帳號(hào)和密碼</p><p> public class ManagerDaoImpl implements ManagerDao { //實(shí)現(xiàn)接口類中的方法用implements加上接口類名</p>
39、<p> public ManagerActionForm managerCheck(ManagerActionForm managerActionForm) { </p><p> ManagerActionForm manager = null; 定義一個(gè)Object型的數(shù)據(jù),初使化為null</p><p> JDBConnection
40、 connection = new JDBConnection(); //連接數(shù)據(jù)庫(kù)的方法</p><p> String sql = "select * from tb_manager where Name='" + managerActionForm.getManagerName() + "'"; </p><p>
41、;<b> try {</b></p><p> ResultSet rs = connection.executeQuery(sql); // 把sql語(yǔ)句傳到JDBConnection類中去</p><p> while (rs.next()) {</p><p> manager = new ManagerActionForm(
42、); </p><p> manager.setManagerPassword(rs.getString(3)); //查找過(guò)所需要的字段數(shù)據(jù)</p><p><b> }</b></p><p><b> }</b></p><p> catch (SQLExcept
43、ion ex) {</p><p><b> }</b></p><p> connection.close();</p><p> return manager; //把對(duì)象返回到方法中去</p><p><b> }</b></p><p><b>
44、 }</b></p><p><b> 3.服務(wù)層的方法</b></p><p> 利用接口類的方法實(shí)現(xiàn)的代碼如下:</p><p> /******************************** ManagerFacade.java*****************************/</p>&
45、lt;p> public interface ManagerFacade {</p><p> public ManagerActionForm managerCheck(ManagerActionForm managerActionForm)</p><p><b> }</b></p><p> 實(shí)現(xiàn)接口的方法的代碼如下:&l
46、t;/p><p> /******************************* ManagerFacadeImpl.java**************************/</p><p> public class ManagerFacadeImpl implements ManagerFacade { //實(shí)現(xiàn)接口類的方法用implements</p>
47、;<p> private ManagerDao managerDao;</p><p> public ManagerFacadeImpl() {</p><p> this.managerDao = new ManagerDaoImpl(); //實(shí)現(xiàn)dao類的方法。</p><p><b> }</b>
48、;</p><p> public ManagerActionForm managerCheck(ManagerActionForm managerActionForm) {</p><p> return this.managerDao.managerCheck(managerActionForm); //調(diào)用持久層的方法</p><p><b&
49、gt; }</b></p><p><b> }</b></p><p> 4.管理員登陸控制層的方法</p><p> /**************************** ManagerCheckAction.java****************************/</p><p>
50、; package com.victor.webtier.managerAction;</p><p><b> //核對(duì)帳號(hào)和密碼</b></p><p> public class ManagerCheckAction extends Action {</p><p> private ManagerFacade managerFa
51、cade;</p><p> public ManagerCheckAction() {</p><p> this.managerFacade = new ManagerFacadeImpl();</p><p><b> }</b></p><p> public ActionForward perform(
52、ActionMapping actionMapping, ActionForm actionForm,</p><p> HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) {</p><p> Chinese chinese = new Chinese();</p>
53、<p> ManagerActionForm managerActionForm = (ManagerActionForm) actionForm;</p><p> managerActionForm.setManagerName(chinese.str(httpServletRequest.</p><p> getParameter("managerNam
54、e")));</p><p> ManagerActionForm manager = this.managerFacade.managerCheck(managerActionForm);</p><p> //通過(guò)對(duì)象調(diào)用方法</p><p> if (manager == null) {</p><p> return
55、 actionMapping.findForward("managerWrong");//通過(guò)manager是空值的話,返回錯(cuò)誤頁(yè)面。</p><p><b> }</b></p><p> else if (!manager.getManagerPassword().equals(httpServletRequest.getParameter
56、( "managerPassWord")))</p><p><b> {</b></p><p> return actionMapping.findForward("managerWrong");//查找的值與在jsp頁(yè)面中的值不一致,返回錯(cuò)誤頁(yè)面。</p><p><b> }<
57、;/b></p><p> return actionMapping.findForward("managerRight"); //查找的值與在jsp頁(yè)面中的值一致,返回正確頁(yè)面。</p><p><b> }}</b></p><p> 5.struts-config.xml中的配置</p>&
58、lt;p> 在這里主要配置formBean和action動(dòng)作指向的jsp頁(yè)面。代碼如下:</p><p> /******************************** struts-config.xml*********************************/</p><p> <form-bean name="managerActionFor
59、m" type="com.victor.domain.ManagerActionForm" /></p><p> <action name="managerActionForm" type="com.victor.webtier.managerAction.ManagerCheckAction" validate="t
60、rue" scope="request" path="/managerCheckAction"></p><p> <forward name="managerWrong" path="/jsp/managerBack/managerCheckFail.jsp" /></p><p&g
61、t; <!--指錯(cuò)誤的頁(yè)面--></p><p> <forward name="managerRight" path="/jsp/managerBack/managerCheckSuccess.jsp" /></p><p> <!--指向正確的頁(yè)面--></p><p><b
62、> </action></b></p><p> 6.管理員登陸jsp頁(yè)面的說(shuō)明</p><p> /********************************* managerCheck.jsp*********************************/</p><p> <p>管理員登陸</p
63、></p><p> <p> </p></p><p> <form name="form" method="post" action="../../managerCheckAction.do" ></p><p> <table wi
64、dth="287" height="77" border="2" cellpadding="3" cellspacing="3"></p><p><b> <tr></b></p><p> <td width="90"
65、 height="32"><span >帳號(hào):</span></td></p><p> <td width="168"><input type="text" name="managerName"></td></p><p><
66、;b> </tr></b></p><p><b> <tr></b></p><p> <td height="32"><span >密碼:</span></td></p><p> <td><input t
67、ype="password" name="managerPassWord"></td></p><p><b> </tr></b></p><p><b> </table></b></p><p> <input type=&
68、quot;submit" name="Submit2" value="提交"></p><p> </p><p> <input type="reset" name="Submit" value=&quo
69、t;重置"></p><p><b> </form></b></p><p> 5.2 總管理員設(shè)置模塊設(shè)計(jì)</p><p> 總管理員在數(shù)據(jù)庫(kù)中是惟一的,總管理員的信息在頁(yè)面中不會(huì)顯示出來(lái),在此頁(yè)面中只能修改自己的密碼及對(duì)普通管理員進(jìn)行設(shè)置。</p><p> 用戶單擊“總管理員
70、設(shè)置”超鏈接,進(jìn)入總管理員設(shè)置頁(yè)面。系統(tǒng)首先對(duì)用戶輸入的賬戶和密碼進(jìn)行核對(duì)。因?yàn)椴⒉皇撬械墓芾韱T都能夠有這個(gè)權(quán)利,所以在SQL語(yǔ)句中應(yīng)體現(xiàn)惟一性的條件,樣式層所要調(diào)用的類是ActionForm,跟用戶登錄時(shí)調(diào)用的actionForm是同一個(gè)類,在這里就不做介紹了。</p><p> 1.總管理員的登錄操作</p><p> 登錄方法主要用于系統(tǒng)管理員進(jìn)行系統(tǒng)維護(hù)時(shí),作為登錄后臺(tái)時(shí)密碼
71、驗(yàn)證之用。在用戶輸入用戶賬號(hào)和密碼之后,調(diào)用該方法即可驗(yàn)證該用戶是否合法。單擊“總管理員設(shè)置”超鏈接,進(jìn)入到總管理員設(shè)置頁(yè)面,實(shí)現(xiàn)此超鏈接的jsp代碼如下:</p><p> /*********************************** left_main.jsp*********************************/</p><p> <!--把超鏈接的
72、jsp頁(yè)面,指向框架顯示出來(lái),框架名稱為mainFrame。(如圖3.6所示)--></p><p> <a href="aManager/adminPassword.jsp" target="mainFrame">總管理員設(shè)置</a></p><p> 總管理員頁(yè)面的運(yùn)行結(jié)果如圖所示。</p><
73、;p> 總管理員頁(yè)面運(yùn)行結(jié)果</p><p> 單擊“請(qǐng)輸入賬戶”和“請(qǐng)輸入密碼”的文本框,輸入賬戶及密碼,最后單擊【提交】按鈕,界面右側(cè)自動(dòng)顯示管理員的全部信息。如下圖1.8所示。</p><p><b> 更改總管理員密碼:</b></p><p> 單擊【更改總管理員密碼】按鈕,界面右側(cè)自動(dòng)顯示相關(guān)的界面,如圖所示。<
74、/p><p><b> 更改總管理員密碼</b></p><p> 單擊“請(qǐng)輸入原來(lái)的密碼”文本框,輸入密碼,單擊【提交】按鈕,系統(tǒng)彈出如圖1.10所示的界面,單擊“請(qǐng)輸入新密碼”及“請(qǐng)?jiān)俅屋斎胄旅艽a”文本框,兩次輸入相同的新密碼,最后單擊【提交】按鈕,系統(tǒng)彈出修改成功的提示信息即完成修改操作。</p><p> 總管理員頁(yè)面所對(duì)應(yīng)的jsp頁(yè)
75、面代碼如下:</p><p> /********************************* adminPassword.jsp******************************/</p><p> <form name="form" method="post" action="../../../adminAct
76、ion.do" "></p><p> <table width="382" border="2" cellspacing="3" cellpadding="3"></p><p><b> <tr></b></p>&l
77、t;p> <td width="110">請(qǐng)輸入帳戶:</td></p><p> <td width="243"><input type="text" name="Name"></td></p><p><b> </tr
78、></b></p><p><b> <tr></b></p><p> <td width="110">請(qǐng)輸入密碼:</td></p><p> <td width="243"><input type="passwo
79、rd" name="adminPassWord"></td></p><p><b> </tr></b></p><p><b> </table></b></p><p> <input type="submit"
80、name="Submit" value="提交"></p><p> </p><p> <input type="reset" name="Submit2" value="重置"></p>&l
81、t;p><b> </form></b></p><p> 在上面的jsp頁(yè)面代碼中,action觸發(fā)的是adminAction.do的方法,它與后臺(tái)登錄的方法相似,只是調(diào)用的SQL語(yǔ)句不同。</p><p> 在持久層中查詢總管理員的方法的代碼如下:</p><p><b> 接口類的方法:</b&g
82、t;</p><p> /********************************* ManagerDao.java*********************************/</p><p> public ManagerActionForm adminCheck(ManagerActionForm managerActionForm)</p><
83、p><b> 實(shí)現(xiàn)接口類的方法:</b></p><p> /*********************************** ManagerDaoImpl.java***************************/</p><p> public ManagerActionForm adminCheck(ManagerActionForm m
84、anagerActionForm) {</p><p> ManagerActionForm manager = null; //初始化對(duì)象</p><p> JDBConnection connection = new JDBConnection();</p><p> String sql =
85、 "select * from tb_manager where Name='" +</p><p> managerActionForm.getManagerName() + "' and mark='" +</p><p> managerActionForm.getManagerMark() + "'
86、;";</p><p><b> try {</b></p><p> ResultSet rs = connection.executeQuery(sql); //執(zhí)行查找的方法</p><p> while (rs.next()) {</p><p> manager = n
87、ew ManagerActionForm();</p><p> manager.setManagerPassword(rs.getString(3)); //取出查詢的密碼</p><p><b> }</b></p><p><b> }</b></p><
88、p> catch (SQLException ex) {</p><p><b> }</b></p><p> connection.close(); //關(guān)閉數(shù)據(jù)庫(kù)</p><p> return manager;</p><p><b>
89、 } </b></p><p> 在服務(wù)層中實(shí)現(xiàn)持久層的方法如下:</p><p><b> 接口類的方法:</b></p><p> /******************************* ManagerFacade.java******************************/</p>
90、;<p> public interface ManagerFacade {</p><p> public ManagerActionForm adminCheck(ManagerActionForm managerActionForm);</p><p><b> }</b></p><p><b> 實(shí)現(xiàn)接
91、口類的方法:</b></p><p> /******************************* ManagerFacadeIm.java****************************/</p><p> public class ManagerFacadeImpl implements ManagerFacade {</p><p&g
92、t; private ManagerDao managerDao;</p><p> public ManagerFacadeImpl() {</p><p> this.managerDao = new ManagerDaoImpl();</p><p><b> }</b></p><p> public
93、ManagerActionForm adminCheck(ManagerActionForm managerActionForm) {</p><p> return this.managerDao.adminCheck(managerActionForm); //調(diào)用持久層的方法</p><p><b> }</b></p><p&
94、gt;<b> }</b></p><p> 具體在控制層的代碼如下:</p><p> /******************************* ManagerDaoImpl.jsp******************************/</p><p> package com.victor.webtier.manag
95、erAction;</p><p> import org.apache.struts.action.*;</p><p> import javax.servlet.http.*;</p><p> import com.victor.domain.ManagerActionForm;</p><p> import com.vic
96、tor.service.ManagerFacade;</p><p> import com.victor.service.ManagerFacadeImpl;</p><p> //核對(duì)總管理員帳號(hào)和密碼</p><p> public class AdminCheckAction</p><p> extends Action {
97、</p><p> private ManagerFacade managerFacade;</p><p> public AdminCheckAction() {</p><p> this.managerFacade = new ManagerFacadeImpl();</p><p><b> }</b>
98、</p><p> public ActionForward perform(ActionMapping actionMapping, ActionForm actionForm,</p><p> HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {</p>&
99、lt;p> ManagerActionForm managerActionForm = (ManagerActionForm) actionForm;</p><p> managerActionForm.setManagerName(httpServletRequest.getParameter("Name"));//從頁(yè)面上取值</p><p> man
100、agerActionForm.setManagerMark("總管理員"); //取固定的名稱</p><p> ManagerActionForm manager = this.managerFacade.adminCheck(managerActionForm);</p><p> if (manager == null) {
101、 //if判斷,做比較</p><p> return actionMapping.findForward("adminWrong");</p><p><b> }</b></p><p> else if (!manager.getManagerPassword().equals(httpServletReq
102、uest.getParameter("adminPassWord"))) {</p><p> return actionMapping.findForward("adminWrong");</p><p><b> }</b></p><p> return actionMapping.findF
103、orward("adminRight");</p><p><b> }</b></p><p><b> }</b></p><p> 上面的類文件中加載了ManagerActionForm類,這個(gè)類是屬于ActionForm類,相當(dāng)于JavaBean,在這里主要實(shí)現(xiàn)進(jìn)行取值和賦值的功能。<
104、;/p><p> struts-config.xml的配置的代碼如下:</p><p> /********************************* struts-config.xml********************************/</p><p> <struts-config></p><p>
105、 <form-beans></p><p> <form-bean name="managerActionForm" type="com.victor.domain.ManagerActionForm" /></p><p> </form-beans></p><p> <ac
106、tion-mappings></p><p> <action name="managerActionForm" type="com.victor.webtier.managerAction.AdminCheckAction" validate="true" scope="request" path="/adm
107、inAction"></p><p> <forward name="adminWrong" path="/jsp/managerBack/aManager/adminPasswordFail.jsp" /></p><p> <forward name="adminRight" path=&
108、quot;/adminSelectAction.do" /></p><p><b> </action></b></p><p> </action-mappings></p><p> </struts-config></p><p> 如果用戶輸入的總管理
109、員的賬戶和密碼不正確,此時(shí)jsp頁(yè)面中將提示用戶密碼不正確。實(shí)現(xiàn)此功能的jsp代碼如下:</p><p> /****************************** adminPasswordFail .jsp******************************/</p><p> <%@ page contentType="text/html; char
110、set=GBK" %></p><p> <meta http-equiv="refresh" content="2;URL=jsp/managerBack/aManager/adminPassword.jsp"></p><p><b> <html></b></p>
111、<p><b> <head></b></p><p> <title>adminPasswordFail</title></p><p><b> </head></b></p><p> <body bgcolor="#ffffc0&qu
112、ot;></p><p> <div align="center" ></p><p> <p>密碼不正確</p></p><p> <p>2秒種后從新輸入密碼</p></p><p><b> </div></b>
113、</p><p><b> </body></b></p><p><b> </html></b></p><p> 2.對(duì)普通管理員的操作</p><p> 總管理員登錄成功后,系統(tǒng)將對(duì)除了總管理員以外的所有普通管理員進(jìn)行查詢操作。此時(shí)頁(yè)面運(yùn)行結(jié)果如圖所示。<
114、;/p><p><b> 總管理員查詢功能</b></p><p> 單擊相應(yīng)管理員后面的【修改密碼】按鈕即可進(jìn)行密碼的修改。具體的操作方法同“更改總管理員密碼”的操作方法相同。</p><p><b> 添加新的管理員:</b></p><p> 單擊【添加新的管理員】按鈕,界面右側(cè)自動(dòng)顯示相
115、關(guān)的界面,</p><p><b> 管理員注冊(cè)</b></p><p> 單擊“請(qǐng)輸入賬號(hào)”文本框,輸入相應(yīng)的賬號(hào),單擊【提交】按鈕,系統(tǒng)自動(dòng)顯示如圖所示的界面,單擊“密碼”及“真實(shí)姓名”文本框,輸入密碼及姓名,最后單擊【提交】按鈕,系統(tǒng)彈出注冊(cè)成功的提示信息即管理員添加成功。</p><p> 持久層的查詢代碼如下:</p>
116、;<p><b> 接口類的代碼:</b></p><p> /******************************** ManagerDao.java*********************************/</p><p> package com.victor.dao;</p><p> impor
117、t java.util.List;</p><p> import com.victor.domain.ManagerActionForm;</p><p> public interface ManagerDao {</p><p> public List managerSelect(ManagerActionForm managerActionForm)
118、; //在接口類的查詢方法方法</p><p><b> }</b></p><p><b> 實(shí)現(xiàn)接口類的代碼:</b></p><p> /******************************* ManagerDaoImpl.java******************************/&l
119、t;/p><p> //查出所有的管理員</p><p> public List managerSelect(ManagerActionForm managerActionForm) {</p><p> JDBConnection connection = new JDBConnection(); //調(diào)用連接數(shù)據(jù)庫(kù)的方法</p><p
120、> List list = new ArrayList(); //定義一個(gè)List容器的對(duì)象,去實(shí)現(xiàn)ArrayList()中的方法</p><p> String sql = "select * from tb_manager where mark='" +</p><p> managerActionForm.g
121、etManagerMark() + "'"; //有條件的查詢語(yǔ)句</p><p><b> try {</b></p><p> ResultSet rs = connection.executeQuery(sql); //調(diào)用JDBConnection查詢的方法</p><p&g
122、t; while (rs.next()) {</p><p> ManagerActionForm manager = new ManagerActionForm();</p><p> manager.setManagerID(Integer.valueOf(rs.getString(1)));</p><p> manager.setManagerNam
123、e(rs.getString(2));</p><p> manager.setManagerPassword(rs.getString(3));</p><p> manager.setManagerRealName(rs.getString(4));</p><p> manager.setManagerIssueDate(rs.getString(5))
124、;</p><p> manager.setManagerMark(rs.getString(6));</p><p> list.add(manager); //l利用對(duì)象list的add()方法把查出來(lái)的數(shù)據(jù)放在List容器中</p><p><b> }</b></p><p>
125、 connection.close(); //關(guān)閉數(shù)據(jù)庫(kù)</p><p><b> }</b></p><p> catch (SQLException ex) {</p><p><b> }</b></p><p> return list;
126、 //返回值要與方法的類型要一致</p><p><b> }</b></p><p> 服務(wù)層的查詢代碼如下:</p><p><b> 接口類的代碼:</b></p><p> /********************************* Man
127、agerFacade.java****************************/</p><p> public interface ManagerFacade {</p><p> public List managerSelect(ManagerActionForm managerActionForm);</p><p><b> }&l
128、t;/b></p><p><b> 實(shí)現(xiàn)接口類的代碼:</b></p><p> /******************************** ManagerFacade.java*****************************/</p><p> public class ManagerFacadeImpl im
129、plements ManagerFacade {</p><p> private ManagerDao managerDao;</p><p> public ManagerFacadeImpl() {</p><p> this.managerDao = new ManagerDaoImpl();</p><p><b>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 新聞發(fā)布系統(tǒng)畢業(yè)論文
- 新聞發(fā)布系統(tǒng)畢業(yè)論文
- 新聞發(fā)布系統(tǒng)(畢業(yè)論文)
- 畢業(yè)論文——新聞發(fā)布系統(tǒng)
- 新聞發(fā)布系統(tǒng)畢業(yè)論文
- 新聞發(fā)布系統(tǒng)畢業(yè)論文
- 畢業(yè)論文——新聞發(fā)布系統(tǒng)
- 新聞發(fā)布系統(tǒng)畢業(yè)論文
- 新聞發(fā)布系統(tǒng)-畢業(yè)設(shè)計(jì)論文
- 新聞發(fā)布系統(tǒng)
- 新聞發(fā)布系統(tǒng)
- 畢業(yè)論文---基于java新聞發(fā)布系統(tǒng)
- 畢業(yè)論文——新聞發(fā)布及管理系統(tǒng)
- jsp新聞發(fā)布課程設(shè)計(jì)---新聞發(fā)布系統(tǒng)
- 朱先輝--畢業(yè)論文(新聞發(fā)布系統(tǒng))
- jsp+oracle新聞發(fā)布系統(tǒng)論文
- jsp課程設(shè)計(jì)(論文)-新聞發(fā)布系統(tǒng)
- 基于新聞發(fā)布系統(tǒng)的rup小論文
- 新聞發(fā)布系統(tǒng) (2)
- asp+access新聞發(fā)布系統(tǒng)(源代碼+論文)
評(píng)論
0/150
提交評(píng)論