男人摸女人的胸视频,91精品国产91久久久久久最新,黄色视频性爱免费看,黄瓜视频在线观看,国产小视频国产精品,成人福利国产一区二区,国产高清精品自拍91亚洲,国产91一区二区

加急見(jiàn)刊

藥品進(jìn)銷(xiāo)存儲(chǔ)管理系統(tǒng)(二)

未知

涉及該模塊文件分別為:register.jsp、 RegisterAction.java以及UserDAO.java。

4.1.2 文件設(shè)計(jì) register.jsp文件:

按照下述內(nèi)容設(shè)計(jì)register.jsp文件。

表單名:form1。

表單執(zhí)行程序:register.jsp。

表單數(shù)據(jù)傳輸方法:post。

表單的要素如附錄一表1所示。

在structs-config.xml中actionMappings中配置如下:

type="my.action.RegisterAction" validate="true">

//帶表單驗(yàn)證類(lèi)的action,input參數(shù)為表單證錯(cuò)誤返回的頁(yè)面,name是接受頁(yè)面參數(shù)的表單類(lèi),path為頁(yè)面請(qǐng)求到服務(wù)器的路徑,type為處理請(qǐng)求的action類(lèi)的路徑,forward為驗(yàn)證成功與否的轉(zhuǎn)發(fā)路徑。

RegisterAction.java代碼如下:

package my.action;

public class RegisterAction extends Action {

public ActionForward execute(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response) {

UserBean user = new UserBean();

//聲明JavaBean

RegisterForm rform = (RegisterForm) form;

//從表單類(lèi)中接過(guò)已驗(yàn)證過(guò)的表單信息

user.setUsername(rform.getUsername());

user.setPassword(rform.getPassword());

user.setSex(rform.getSex());

user.setBorntime(rform.getYear() + "-" + rform.getMonth() + "-"

+ rform.getDay());

user.setEmail(rform.getEmail());

user.setIntroduce(rform.getIntroduce());

user.setRealname(rform.getRealname());

user.setTelNumber(rform.getTelNumber());

user.setStatus("0");

//賦值Bean中所有屬性

UserBean database=new UserDAO().findOne(user.getUsername());

//注冊(cè)之前檢查用戶(hù)名是否已經(jīng)存在,若存在則生成錯(cuò)誤信息,反饋到注冊(cè)頁(yè)面

if(database!=null){

request.setAttribute("login.error", "對(duì)不起,您的用戶(hù)名已經(jīng)被人使用,請(qǐng)重新輸入!");

return mapping.findForward("register.error");

}

//所有驗(yàn)證完成,將用戶(hù)信息入庫(kù),成功則將成功信息反饋到首頁(yè)

int n = new UserDAO().insertUser(user);

if (n == 0) {

return mapping.findForward("register.error");

} else {

request.setAttribute("login.error", "注冊(cè)成功,請(qǐng)等待審核!!");

return mapping.findForward("register.ok");

}

}

}

4.2 用戶(hù)登陸模塊 4.2.1 用戶(hù)登陸流程分析 用戶(hù)在正確注冊(cè)之后,在后臺(tái)經(jīng)管理員審批,正式獲得日志系統(tǒng)的使用權(quán)限。在首頁(yè)輸入用戶(hù)名和密碼登陸系統(tǒng)。若用戶(hù)名和密碼有誤,將返回登陸頁(yè),并顯示錯(cuò)誤提示。用戶(hù)名和密碼無(wú)誤則成功登入系統(tǒng)。后臺(tái)系統(tǒng)中管理員登陸模塊與該模塊實(shí)現(xiàn)類(lèi)似,本文不再敘述。用戶(hù)登陸過(guò)程活動(dòng)圖如下圖4-2。

圖4-2 用戶(hù)活動(dòng)過(guò)程

4.2.2 用戶(hù)登陸模塊文件設(shè)計(jì) 用戶(hù)登陸模塊主要有三個(gè)文件。負(fù)責(zé)視圖層的login.jsp和負(fù)責(zé)控制層的LoginAction.java和負(fù)責(zé)模型層的UserDAO.java和UserBean.java。

在structs-config.xml中actionMappings中配置如下:

type="my.action.LoginAction" validate="true">

其中模塊商業(yè)邏輯的主要部分LoginAction.java的代碼如下:

package my.action;

public class LoginAction extends Action {

public ActionForward execute(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response) {

LoginForm userform=(LoginForm)form;

//獲取頁(yè)面表單信息

UserBean bean=null;

bean=new UserDAO().finduser(userform.getUsername(), userform.getPassword());

//將用戶(hù)從登陸頁(yè)面輸入的用戶(hù)名和密碼與user表中用戶(hù)名與密碼核對(duì),若不一致,生成錯(cuò)誤信息,返回到登陸頁(yè)面

if(bean==null){

request.setAttribute("login.error", "您還沒(méi)有注冊(cè),請(qǐng)先注冊(cè)!");

return mapping.findForward("login.error");

}else{

String status=bean.getStatus();

if(status.equals("0")){

request.setAttribute("login.error", "抱歉,您的帳戶(hù)正在審批中,暫時(shí)無(wú)法登陸!");

//若用戶(hù)名和密碼一致,再次核對(duì)用戶(hù)審批狀態(tài),未審批完成,生成提示信息并返回首頁(yè)

return mapping.findForward("login.error");

}

List kind=new KindDAO().findKind(userform.getUsername());

List diary=new DiaryDAO().findDiaryByUser(bean.getUsername());

request.setAttribute("diary", diary);

request.getSession().setAttribute("kind", kind);

request.getSession().setAttribute("user", bean);

return mapping.findForward("login.ok");

}

}

}

4.3 日志管理模塊 4.3.1 日志管理功能模塊圖

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

下面主要給出添加日志的活動(dòng)圖和文件設(shè)計(jì):

活動(dòng)圖如下圖4-4。

圖4-4 添加日志活動(dòng)圖

type="my.action.AddDiaryAction" validate="true">

控制器層主要文件AddDiaryAction.java源代碼如下:

package my.action;

public class AddDiaryAction extends Action {

public ActionForward execute(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response) {

HttpSession session=request.getSession();

UserBean user=(UserBean)session.getAttribute("user");

if(user==null){

return mapping.findForward("tohome.do");

}//驗(yàn)證用戶(hù)是否已經(jīng)登陸,若沒(méi)登陸則為非法登入,返回首頁(yè)

AddDiaryForm aform=(AddDiaryForm)form;

DiaryBean diary=new DiaryBean();

diary.setDiaryTitle(aform.getTitle());

diary.setContent(aform.getContent());

diary.setKindID(aform.getKind());

diary.setUserID(user.getUsername());

diary.setIsOpen(aform.getIsopen());

if(aform.getIsopen().equals("0")){

diary.setStatus("2");

}else{

diary.setStatus("0");

}

//接表單信息,并封裝到j(luò)vabean中

int n=new DiaryDAO().addDiary(diary);

//調(diào)用數(shù)據(jù)操作對(duì)象的add方法,將信息入庫(kù),成功則返回到成功頁(yè)面

if(n!=0){

List list=new DiaryDAO().findDiary(diary.getKindID());

request.setAttribute("diary", list);

return mapping.findForward("addDiary.ok");

}else{

return mapping.findForward("addDiary.error");

}

}

}

4.4 后臺(tái)用戶(hù)管理模塊 4.4.1 主要功能概述 該模塊主要是由查詢(xún)和顯示兩個(gè)子模塊組合而成。管理能通過(guò)在查詢(xún)模塊輸入用戶(hù)名、性別、聯(lián)系方式、真實(shí)姓名之后選擇操作進(jìn)行查詢(xún),在顯示模塊能根據(jù)用戶(hù)選擇的查詢(xún)方式和操作顯示不同的結(jié)果。管理員能在顯示頁(yè)面對(duì)用戶(hù)進(jìn)行相應(yīng)操作。

選擇“停用”后頁(yè)面顯示結(jié)果如下圖4-5。

圖4-5 選擇“停用”后頁(yè)面顯示結(jié)果

4.4.2 查詢(xún)與分頁(yè) 在此模塊中最為關(guān)鍵的就是查詢(xún)與分頁(yè)功能的實(shí)現(xiàn)。本系統(tǒng)在設(shè)計(jì)時(shí)將此過(guò)程分兩步來(lái)實(shí)現(xiàn)的。第一步用SearchUserAction.java來(lái)處理查詢(xún)要求;首先接受頁(yè)面查詢(xún)參數(shù)生成查詢(xún)所有記錄的SQL語(yǔ)句,然后運(yùn)用JAVA的String類(lèi)的相關(guān)方法將SQL語(yǔ)句字符串進(jìn)行處理,等到查詢(xú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ù)中查詢(xún)出具體記錄并傳到j(luò)sp頁(yè)面將結(jié)果顯示出來(lái)。

該過(guò)程活動(dòng)圖如圖4-6。

圖4-6 過(guò)程活動(dòng)圖

在structs-config.xml中actionMappings中配置如下:

SearchUserAction.java源代碼:

package my.action;

public class SearchUserAction extends Action {

public ActionForward execute(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response) {

HttpSession session=request.getSession();

AdminBean admin=(AdminBean)session.getAttribute("admin");

if(admin==null){

return mapping.findForward("tohome.do");

}

//管理員登陸驗(yàn)證,若為非法登陸,則返回首頁(yè)

String sql = this.createSql(request, response);

//生成分頁(yè)之前的sql語(yǔ)句

String countSql = this.getCountSql(sql);

//生成統(tǒng)計(jì)所有記錄數(shù)的sql語(yǔ)句

int total = new UserDAO().getUserNum(countSql);

//調(diào)用數(shù)據(jù)操作對(duì)象,統(tǒng)計(jì)所有記錄數(shù)

int pageNumber = 1;

int perPageNumber = 7;

pageNumber = this.getPageNumber(total, perPageNumber);

//調(diào)用統(tǒng)計(jì)頁(yè)數(shù)方法,獲得總頁(yè)數(shù)

request.getSession().setAttribute("u.pageNumber", pageNumber);

request.getSession().setAttribute("u.perPageNumber", perPageNumber);

request.getSession().setAttribute("u.sql", sql);

return mapping.findForward("search.ok");

}

//將所有分頁(yè)信息放入session對(duì)象,并分發(fā)至顯示處理類(lèi)

//生成統(tǒng)計(jì)記錄數(shù)的sql語(yǔ)句的方法

private String getCountSql(String sql) {

String temp = sql.substring(sql.indexOf("from") - 1);

temp = "select count(*) " + temp;

return temp;

}

//生成頁(yè)數(shù)

private int getPageNumber(int total, int numPerPage) {

int pageNumber = 0;

if (total % numPerPage == 0) {

pageNumber = total / numPerPage;

} else {

pageNumber = (total / numPerPage) + 1;

}

return pageNumber;

}

}

ShowUserAction.java的源代碼:

package my.action;

public class ShowUserAction extends Action {

public ActionForward execute(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response) {

HttpSession session=request.getSession();

AdminBean admin=(AdminBean)session.getAttribute("admin");

if(admin==null){

return mapping.findForward("tohome.do");

}

下載