版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 藥品進(jìn)銷存儲管理系統(tǒng)(二)</p><p> 涉及該模塊文件分別為:register.jsp、 RegisterAction.java以及UserDAO.java。</p><p> 4.1.2 文件設(shè)計(jì) </p><p> register.jsp文件:</p><p> 按照下述內(nèi)容設(shè)計(jì)register.js
2、p文件。</p><p> 表單名:form1。</p><p> 表單執(zhí)行程序:register.jsp。</p><p> 表單數(shù)據(jù)傳輸方法:post。</p><p> 表單的要素如附錄一表1所示。</p><p> 在structs-config.xml中actionMappings中配置如下:<
3、;/p><p> <action input="/register.jsp" name="RegisterForm" path="/register"</p><p> type="my.action.RegisterAction" validate="true">
4、;</p><p> <forward name="register.ok" path="/index.jsp"/></p><p> <forward name="register.error" path="/register.jsp"/></
5、p><p> </action></p><p> //帶表單驗(yàn)證類的action,input參數(shù)為表單證錯誤返回的頁面,name是接受頁面參數(shù)的表單類,path為頁面請求到服務(wù)器的路徑,type為處理請求的action類的路徑,forward為驗(yàn)證成功與否的轉(zhuǎn)發(fā)路徑。</p><p> RegisterAction.java代碼如下:
6、</p><p> package my.action;</p><p> public class RegisterAction extends Action {</p><p> public ActionForward execute(ActionMapping mapping, ActionForm form,</p><p>
7、 HttpServletRequest request, HttpServletResponse response) {</p><p> UserBean user = new UserBean();</p><p> //聲明JavaBean</p><p> RegisterForm rform = (RegisterForm) form;</p
8、><p> //從表單類中接過已驗(yàn)證過的表單信息</p><p> user.setUsername(rform.getUsername());</p><p> user.setPassword(rform.getPassword());</p><p> user.setSex(rform.getSex());</p>
9、<p> user.setBorntime(rform.getYear() + "-" + rform.getMonth() + "-"</p><p> + rform.getDay());</p><p> user.setEmail(rform.getEmail());</p><p> user.se
10、tIntroduce(rform.getIntroduce());</p><p> user.setRealname(rform.getRealname());</p><p> user.setTelNumber(rform.getTelNumber());</p><p> user.setStatus("0");</p>
11、<p> //賦值Bean中所有屬性</p><p> UserBean database=new UserDAO().findOne(user.getUsername());</p><p> //注冊之前檢查用戶名是否已經(jīng)存在,若存在則生成錯誤信息,反饋到注冊頁面</p><p> if(database!=null){</p>
12、<p> request.setAttribute("login.error", "對不起,您的用戶名已經(jīng)被人使用,請重新輸入!");</p><p> return mapping.findForward("register.error");</p><p><b> }</b><
13、/p><p> //所有驗(yàn)證完成,將用戶信息入庫,成功則將成功信息反饋到首頁</p><p> int n = new UserDAO().insertUser(user);</p><p> if (n == 0) {</p><p> return mapping.findForward("register.error&qu
14、ot;);</p><p><b> } else {</b></p><p> request.setAttribute("login.error", "注冊成功,請等待審核!!");</p><p> return mapping.findForward("register.ok&qu
15、ot;);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 4.2 用戶登陸模塊 4.2.1 用戶登陸流程分析 </p><p> 用戶在正確注冊之后,在后臺經(jīng)
16、管理員審批,正式獲得日志系統(tǒng)的使用權(quán)限。在首頁輸入用戶名和密碼登陸系統(tǒng)。若用戶名和密碼有誤,將返回登陸頁,并顯示錯誤提示。用戶名和密碼無誤則成功登入系統(tǒng)。后臺系統(tǒng)中管理員登陸模塊與該模塊實(shí)現(xiàn)類似,本文不再敘述。用戶登陸過程活動圖如下圖4-2。</p><p> 圖4-2 用戶活動過程</p><p> 4.2.2 用戶登陸模塊文件設(shè)計(jì) </p><p> 用戶
17、登陸模塊主要有三個文件。負(fù)責(zé)視圖層的login.jsp和負(fù)責(zé)控制層的LoginAction.java和負(fù)責(zé)模型層的UserDAO.java和UserBean.java。</p><p> 在structs-config.xml中actionMappings中配置如下:</p><p> <action input="/index.jsp" name=&
18、quot;LoginForm" path="/login"</p><p> type="my.action.LoginAction" validate="true"></p><p> <forward name="login.ok" path="/user
19、_index.jsp"/></p><p> <forward name="login.error" path="/index.jsp"/></p><p> </action></p><p> 其中模塊商業(yè)邏輯的主要部分LoginActi
20、on.java的代碼如下:</p><p> package my.action;</p><p> public class LoginAction extends Action {</p><p> public ActionForward execute(ActionMapping mapping, ActionForm form,</p>
21、<p> HttpServletRequest request, HttpServletResponse response) {</p><p> LoginForm userform=(LoginForm)form;</p><p> //獲取頁面表單信息</p><p> UserBean bean=null;</p><
22、p> bean=new UserDAO().finduser(userform.getUsername(), userform.getPassword());</p><p> //將用戶從登陸頁面輸入的用戶名和密碼與user表中用戶名與密碼核對,若不一致,生成錯誤信息,返回到登陸頁面</p><p> if(bean==null){</p><p>
23、 request.setAttribute("login.error", "您還沒有注冊,請先注冊!");</p><p> return mapping.findForward("login.error");</p><p><b> }else{</b></p><p> S
24、tring status=bean.getStatus();</p><p> if(status.equals("0")){</p><p> request.setAttribute("login.error", "抱歉,您的帳戶正在審批中,暫時無法登陸!");</p><p> //若用戶名和密
25、碼一致,再次核對用戶審批狀態(tài),未審批完成,生成提示信息并返回首頁</p><p> return mapping.findForward("login.error");</p><p><b> }</b></p><p> List kind=new KindDAO().findKind(userform.getUs
26、ername());</p><p> List diary=new DiaryDAO().findDiaryByUser(bean.getUsername());</p><p> request.setAttribute("diary", diary);</p><p> request.getSession().setAttribut
27、e("kind", kind);</p><p> request.getSession().setAttribute("user", bean);</p><p> return mapping.findForward("login.ok");</p><p><b> }</b&g
28、t;</p><p><b> }</b></p><p><b> } </b></p><p> 4.3 日志管理模塊 4.3.1 日志管理功能模塊圖 </p><p> 4.3.2 設(shè)計(jì)思想及特點(diǎn) </p><p> 注冊用戶登陸后進(jìn)入日志管理頁面能對日志進(jìn)行
29、相關(guān)操作。具體來說,若用戶是第一次登陸,在添加日志之前系統(tǒng)會提示用戶先添加日志分類,所有日志均建立在分類之下的。在分類添加完成之后,用戶就能進(jìn)入日志維護(hù)頁面對日志進(jìn)行添加,刪除,修改操作了。值得注意的是在刪除分類時,用戶在刪除類別的同時,也把該類別下的所有日志刪除了。添加日志時用戶能夠通過設(shè)置日志狀態(tài)是否公開來決定是否讓日志被他人瀏覽,這樣能將優(yōu)秀的文章進(jìn)行相互交流。</p><p> 下面主要給出添加日志的活
30、動圖和文件設(shè)計(jì):</p><p> 活動圖如下圖4-4。</p><p> 圖4-4 添加日志活動圖</p><p> 在structs-config.xml中actionMappings中配置如下:</p><p> <action input="/addDiary.jsp" name="
31、AddDiaryForm" path="/addDiary"</p><p> type="my.action.AddDiaryAction" validate="true"></p><p> <forward name="addDiary.ok" path=&quo
32、t;/user_index.jsp"/></p><p> <forward name="addDiary.error" path="/addDiary.jsp"/></p><p> </action></p><p> 控制器層主要文件A
33、ddDiaryAction.java源代碼如下:</p><p> package my.action;</p><p> public class AddDiaryAction extends Action {</p><p> public ActionForward execute(ActionMapping mapping, ActionForm fo
34、rm,</p><p> HttpServletRequest request, HttpServletResponse response) {</p><p> HttpSession session=request.getSession();</p><p> UserBean user=(UserBean)session.getAttribute(&qu
35、ot;user");</p><p> if(user==null){</p><p> return mapping.findForward("tohome.do");</p><p> }//驗(yàn)證用戶是否已經(jīng)登陸,若沒登陸則為非法登入,返回首頁</p><p> AddDiaryForm aform=
36、(AddDiaryForm)form;</p><p> DiaryBean diary=new DiaryBean();</p><p> diary.setDiaryTitle(aform.getTitle());</p><p> diary.setContent(aform.getContent());</p><p> di
37、ary.setKindID(aform.getKind());</p><p> diary.setUserID(user.getUsername());</p><p> diary.setIsOpen(aform.getIsopen());</p><p> if(aform.getIsopen().equals("0")){</
38、p><p> diary.setStatus("2");</p><p><b> }else{</b></p><p> diary.setStatus("0");</p><p><b> }</b></p><p> //接
39、表單信息,并封裝到j(luò)vabean中</p><p> int n=new DiaryDAO().addDiary(diary);</p><p> //調(diào)用數(shù)據(jù)操作對象的add方法,將信息入庫,成功則返回到成功頁面</p><p><b> if(n!=0){</b></p><p> List list=new
40、 DiaryDAO().findDiary(diary.getKindID());</p><p> request.setAttribute("diary", list);</p><p> return mapping.findForward("addDiary.ok");</p><p><b> }el
41、se{</b></p><p> return mapping.findForward("addDiary.error");</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b>
42、</p><p> 4.4 后臺用戶管理模塊 4.4.1 主要功能概述 </p><p> 該模塊主要是由查詢和顯示兩個子模塊組合而成。管理能通過在查詢模塊輸入用戶名、性別、聯(lián)系方式、真實(shí)姓名之后選擇操作進(jìn)行查詢,在顯示模塊能根據(jù)用戶選擇的查詢方式和操作顯示不同的結(jié)果。管理員能在顯示頁面對用戶進(jìn)行相應(yīng)操作。</p><p> 選擇“停用”后頁面顯示結(jié)果如下圖4
43、-5。</p><p> 圖4-5 選擇“停用”后頁面顯示結(jié)果</p><p> 4.4.2 查詢與分頁 </p><p> 在此模塊中最為關(guān)鍵的就是查詢與分頁功能的實(shí)現(xiàn)。本系統(tǒng)在設(shè)計(jì)時將此過程分兩步來實(shí)現(xiàn)的。第一步用SearchUserAction.java來處理查詢要求;首先接受頁面查詢參數(shù)生成查詢所有記錄的SQL語句,然后運(yùn)用JAVA的String類的相
44、關(guān)方法將SQL語句字符串進(jìn)行處理,等到查詢總記錄數(shù)目的CountSQL語句,再次通過得到的記錄總數(shù)和每頁應(yīng)該顯示記錄條數(shù)計(jì)算得到顯示總頁數(shù),然后將SQL語句和頁數(shù)傳給第二步。第二步ShowUserAction.java負(fù)責(zé)顯示個分頁內(nèi)容。通過接受第一步所傳過來的SQL語句和總頁數(shù)生成新的光查該頁記錄數(shù)的SQL語句,再一次從數(shù)據(jù)庫中查詢出具體記錄并傳到j(luò)sp頁面將結(jié)果顯示出來。</p><p> 該過程活動圖如圖
45、4-6。</p><p> 圖4-6 過程活動圖</p><p> 在structs-config.xml中actionMappings中配置如下:</p><p> <action path="/searchUser" type="my.action.SearchUserAction">&l
46、t;/p><p> <forward name="search.ok" path="/showUser.do?page=1"/></p><p> </action></p><p> <action path="/showUser"
47、type="my.action.ShowUserAction"></p><p> <forward name="show.ok" path="/edit_user.jsp"/></p><p> </action></p><p>
48、 SearchUserAction.java源代碼:</p><p> package my.action;</p><p> public class SearchUserAction extends Action {</p><p> public ActionForward execute(ActionMapping mapping, ActionFo
49、rm form,</p><p> HttpServletRequest request, HttpServletResponse response) {</p><p> HttpSession session=request.getSession();</p><p> AdminBean admin=(AdminBean)session.getAttri
50、bute("admin");</p><p> if(admin==null){</p><p> return mapping.findForward("tohome.do");</p><p><b> }</b></p><p> //管理員登陸驗(yàn)證,若為非法登陸,則
51、返回首頁</p><p> String sql = this.createSql(request, response);</p><p> //生成分頁之前的sql語句</p><p> String countSql = this.getCountSql(sql);</p><p> //生成統(tǒng)計(jì)所有記錄數(shù)的sql語句</p
52、><p> int total = new UserDAO().getUserNum(countSql);</p><p> //調(diào)用數(shù)據(jù)操作對象,統(tǒng)計(jì)所有記錄數(shù)</p><p> int pageNumber = 1;</p><p> int perPageNumber = 7;</p><p> pageN
53、umber = this.getPageNumber(total, perPageNumber);</p><p> //調(diào)用統(tǒng)計(jì)頁數(shù)方法,獲得總頁數(shù)</p><p> request.getSession().setAttribute("u.pageNumber", pageNumber);</p><p> request.getSes
54、sion().setAttribute("u.perPageNumber", perPageNumber);</p><p> request.getSession().setAttribute("u.sql", sql);</p><p> return mapping.findForward("search.ok");&l
55、t;/p><p><b> }</b></p><p> //將所有分頁信息放入session對象,并分發(fā)至顯示處理類</p><p> //生成統(tǒng)計(jì)記錄數(shù)的sql語句的方法</p><p> private String getCountSql(String sql) {</p><p>
56、 String temp = sql.substring(sql.indexOf("from") - 1);</p><p> temp = "select count(*) " + temp;</p><p> return temp;</p><p><b> }</b></p>
57、<p><b> //生成頁數(shù)</b></p><p> private int getPageNumber(int total, int numPerPage) {</p><p> int pageNumber = 0;</p><p> if (total % numPerPage == 0) {</p>
58、<p> pageNumber = total / numPerPage;</p><p><b> } else {</b></p><p> pageNumber = (total / numPerPage) + 1;</p><p><b> }</b></p><p>
59、return pageNumber;</p><p><b> }</b></p><p><b> }</b></p><p> ShowUserAction.java的源代碼:</p><p> package my.action;</p><p> publi
60、c class ShowUserAction extends Action {</p><p> public ActionForward execute(ActionMapping mapping, ActionForm form,</p><p> HttpServletRequest request, HttpServletResponse response) {</p&g
61、t;<p> HttpSession session=request.getSession();</p><p> AdminBean admin=(AdminBean)session.getAttribute("admin");</p><p> if(admin==null){</p><p> return mappi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 藥品進(jìn)銷存儲管理系統(tǒng)(一)
- 藥品進(jìn)銷存儲管理系統(tǒng)(三)
- 藥品進(jìn)銷存管理系統(tǒng)需求分析報(bào)告
- 藥品進(jìn)銷存管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 藥品進(jìn)銷存管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--產(chǎn)品進(jìn)銷存儲管理系統(tǒng)
- 進(jìn)銷存管理系統(tǒng)
- 軟件工程課程設(shè)計(jì)--藥品進(jìn)銷存管理系統(tǒng)
- 藥品進(jìn)銷存管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計(jì)
- 進(jìn)銷存信息管理系統(tǒng)
- 農(nóng)資進(jìn)銷存管理系統(tǒng)
- 進(jìn)銷存管理系統(tǒng).doc
- 進(jìn)銷存管理系統(tǒng).doc
- 進(jìn)銷存管理系統(tǒng).doc
- 醫(yī)藥進(jìn)銷存管理系統(tǒng)
- 進(jìn)銷存管理系統(tǒng).doc
- 進(jìn)銷存-采購管理
- 商品進(jìn)銷存管理系統(tǒng).pdf
- 商業(yè)后臺進(jìn)銷存管理系統(tǒng)
- 服裝進(jìn)銷存管理系統(tǒng)
評論
0/150
提交評論