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

下載本文檔

版權(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>  &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ù)為表單證錯誤返回的頁面,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>  &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>  //獲取頁面表單信息</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>  &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)登陸,若沒登陸則為非法登入,返回首頁</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>  &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、返回首頁</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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論