藥品進(jìn)銷存儲(chǔ)管理系統(tǒng)(二)_第1頁(yè)
已閱讀1頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  藥品進(jìn)銷存儲(chǔ)管理系統(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>  &lt;action input="/register.jsp" name="RegisterForm" path="/register"</p><p>  type="my.action.RegisterAction" validate="true"&gt

4、;</p><p>  &lt;forward name="register.ok" path="/index.jsp"/&gt;</p><p>  &lt;forward name="register.error" path="/register.jsp"/&gt;</

5、p><p>  &lt;/action&gt;</p><p>  //帶表單驗(yàn)證類的action,input參數(shù)為表單證錯(cuò)誤返回的頁(yè)面,name是接受頁(yè)面參數(shù)的表單類,path為頁(yè)面請(qǐng)求到服務(wù)器的路徑,type為處理請(qǐng)求的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>  //從表單類中接過(guò)已驗(yàn)證過(guò)的表單信息</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>  //注冊(cè)之前檢查用戶名是否已經(jīng)存在,若存在則生成錯(cuò)誤信息,反饋到注冊(cè)頁(yè)面</p><p>  if(database!=null){</p>

12、<p>  request.setAttribute("login.error", "對(duì)不起,您的用戶名已經(jīng)被人使用,請(qǐng)重新輸入!");</p><p>  return mapping.findForward("register.error");</p><p><b>  }</b><

13、/p><p>  //所有驗(yàn)證完成,將用戶信息入庫(kù),成功則將成功信息反饋到首頁(yè)</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", "注冊(cè)成功,請(qǐng)等待審核!!");</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>  用戶在正確注冊(cè)之后,在后臺(tái)經(jīng)

16、管理員審批,正式獲得日志系統(tǒng)的使用權(quán)限。在首頁(yè)輸入用戶名和密碼登陸系統(tǒng)。若用戶名和密碼有誤,將返回登陸頁(yè),并顯示錯(cuò)誤提示。用戶名和密碼無(wú)誤則成功登入系統(tǒng)。后臺(tái)系統(tǒng)中管理員登陸模塊與該模塊實(shí)現(xiàn)類似,本文不再敘述。用戶登陸過(guò)程活動(dòng)圖如下圖4-2。</p><p>  圖4-2 用戶活動(dòng)過(guò)程</p><p>  4.2.2 用戶登陸模塊文件設(shè)計(jì) </p><p>  用戶

17、登陸模塊主要有三個(gè)文件。負(fù)責(zé)視圖層的login.jsp和負(fù)責(zé)控制層的LoginAction.java和負(fù)責(zé)模型層的UserDAO.java和UserBean.java。</p><p>  在structs-config.xml中actionMappings中配置如下:</p><p>  &lt;action input="/index.jsp" name=&

18、quot;LoginForm" path="/login"</p><p>  type="my.action.LoginAction" validate="true"&gt;</p><p>  &lt;forward name="login.ok" path="/user

19、_index.jsp"/&gt;</p><p>  &lt;forward name="login.error" path="/index.jsp"/&gt;</p><p>  &lt;/action&gt;</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>  //獲取頁(yè)面表單信息</p><p>  UserBean bean=null;</p><

22、p>  bean=new UserDAO().finduser(userform.getUsername(), userform.getPassword());</p><p>  //將用戶從登陸頁(yè)面輸入的用戶名和密碼與user表中用戶名與密碼核對(duì),若不一致,生成錯(cuò)誤信息,返回到登陸頁(yè)面</p><p>  if(bean==null){</p><p> 

23、 request.setAttribute("login.error", "您還沒(méi)有注冊(cè),請(qǐng)先注冊(cè)!");</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", "抱歉,您的帳戶正在審批中,暫時(shí)無(wú)法登陸!");</p><p>  //若用戶名和密

25、碼一致,再次核對(duì)用戶審批狀態(tài),未審批完成,生成提示信息并返回首頁(yè)</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>  注冊(cè)用戶登陸后進(jìn)入日志管理頁(yè)面能對(duì)日志進(jìn)行

29、相關(guān)操作。具體來(lái)說(shuō),若用戶是第一次登陸,在添加日志之前系統(tǒng)會(huì)提示用戶先添加日志分類,所有日志均建立在分類之下的。在分類添加完成之后,用戶就能進(jìn)入日志維護(hù)頁(yè)面對(duì)日志進(jìn)行添加,刪除,修改操作了。值得注意的是在刪除分類時(shí),用戶在刪除類別的同時(shí),也把該類別下的所有日志刪除了。添加日志時(shí)用戶能夠通過(guò)設(shè)置日志狀態(tài)是否公開(kāi)來(lái)決定是否讓日志被他人瀏覽,這樣能將優(yōu)秀的文章進(jìn)行相互交流。</p><p>  下面主要給出添加日志的活

30、動(dòng)圖和文件設(shè)計(jì):</p><p>  活動(dòng)圖如下圖4-4。</p><p>  圖4-4 添加日志活動(dòng)圖</p><p>  在structs-config.xml中actionMappings中配置如下:</p><p>  &lt;action input="/addDiary.jsp" name="

31、AddDiaryForm" path="/addDiary"</p><p>  type="my.action.AddDiaryAction" validate="true"&gt;</p><p>  &lt;forward name="addDiary.ok" path=&quo

32、t;/user_index.jsp"/&gt;</p><p>  &lt;forward name="addDiary.error" path="/addDiary.jsp"/&gt;</p><p>  &lt;/action&gt;</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)登陸,若沒(méi)登陸則為非法登入,返回首頁(yè)</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ù)操作對(duì)象的add方法,將信息入庫(kù),成功則返回到成功頁(yè)面</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 后臺(tái)用戶管理模塊 4.4.1 主要功能概述 </p><p>  該模塊主要是由查詢和顯示兩個(gè)子模塊組合而成。管理能通過(guò)在查詢模塊輸入用戶名、性別、聯(lián)系方式、真實(shí)姓名之后選擇操作進(jìn)行查詢,在顯示模塊能根據(jù)用戶選擇的查詢方式和操作顯示不同的結(jié)果。管理員能在顯示頁(yè)面對(duì)用戶進(jìn)行相應(yīng)操作。</p><p>  選擇“停用”后頁(yè)面顯示結(jié)果如下圖4

43、-5。</p><p>  圖4-5 選擇“停用”后頁(yè)面顯示結(jié)果</p><p>  4.4.2 查詢與分頁(yè) </p><p>  在此模塊中最為關(guān)鍵的就是查詢與分頁(yè)功能的實(shí)現(xiàn)。本系統(tǒng)在設(shè)計(jì)時(shí)將此過(guò)程分兩步來(lái)實(shí)現(xiàn)的。第一步用SearchUserAction.java來(lái)處理查詢要求;首先接受頁(yè)面查詢參數(shù)生成查詢所有記錄的SQL語(yǔ)句,然后運(yùn)用JAVA的String類的相

44、關(guān)方法將SQL語(yǔ)句字符串進(jìn)行處理,等到查詢總記錄數(shù)目的CountSQL語(yǔ)句,再次通過(guò)得到的記錄總數(shù)和每頁(yè)應(yīng)該顯示記錄條數(shù)計(jì)算得到顯示總頁(yè)數(shù),然后將SQL語(yǔ)句和頁(yè)數(shù)傳給第二步。第二步ShowUserAction.java負(fù)責(zé)顯示個(gè)分頁(yè)內(nèi)容。通過(guò)接受第一步所傳過(guò)來(lái)的SQL語(yǔ)句和總頁(yè)數(shù)生成新的光查該頁(yè)記錄數(shù)的SQL語(yǔ)句,再一次從數(shù)據(jù)庫(kù)中查詢出具體記錄并傳到j(luò)sp頁(yè)面將結(jié)果顯示出來(lái)。</p><p>  該過(guò)程活動(dòng)圖如圖

45、4-6。</p><p>  圖4-6 過(guò)程活動(dòng)圖</p><p>  在structs-config.xml中actionMappings中配置如下:</p><p>  &lt;action path="/searchUser" type="my.action.SearchUserAction"&gt;&l

46、t;/p><p>  &lt;forward name="search.ok" path="/showUser.do?page=1"/&gt;</p><p>  &lt;/action&gt;</p><p>  &lt;action path="/showUser"

47、type="my.action.ShowUserAction"&gt;</p><p>  &lt;forward name="show.ok" path="/edit_user.jsp"/&gt;</p><p>  &lt;/action&gt;</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、返回首頁(yè)</p><p>  String sql = this.createSql(request, response);</p><p>  //生成分頁(yè)之前的sql語(yǔ)句</p><p>  String countSql = this.getCountSql(sql);</p><p>  //生成統(tǒng)計(jì)所有記錄數(shù)的sql語(yǔ)句</p

52、><p>  int total = new UserDAO().getUserNum(countSql);</p><p>  //調(diào)用數(shù)據(jù)操作對(duì)象,統(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ì)頁(yè)數(shù)方法,獲得總頁(yè)數(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>  //將所有分頁(yè)信息放入session對(duì)象,并分發(fā)至顯示處理類</p><p>  //生成統(tǒng)計(jì)記錄數(shù)的sql語(yǔ)句的方法</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>  //生成頁(yè)數(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. 本站所有資源如無(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論