<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 495,comments - 227,trackbacks - 0
    如果您按照上篇文章配置成功,可以進(jìn)行開發(fā)簡單的J2EE項目。
    開發(fā)前準(zhǔn)備:
    ??? 1、新建項目包:如下圖:
    ???????? project1.JPG
    Dao:數(shù)據(jù)層;service:邏輯層;web:web展現(xiàn)層。
    2、建立好三層架構(gòu),部署好包名。建立一個jsp文件,取名為:login.jsp
    代碼如下:
    <%@?taglib?uri="http://struts.apache.org/tags-bean"?prefix="bean"?%>
    <%@?taglib?uri="http://struts.apache.org/tags-html"?prefix="html"?%>
    <%@?taglib?uri="http://struts.apache.org/tags-logic"?prefix="logic"?%>
    <%@?taglib?uri="http://struts.apache.org/tags-tiles"?prefix="tiles"%>?
    <HTML>
    <HEAD>
    <TITLE>test<TITLE>
    <HEAD>
    <BODY>
    <html:form?action="/login"?method="post">
    ?用戶名:
    <html:text?property="username"?size="15"/>?<br>
    ?密??碼:
    <html:password?property="password"?size="15"/><br>
    ?
    <html:submit?property="submit1"?style="FONT-WEIGHT:bold;COLOR:red">
    ??????????登??錄
    <html:submit>
    ?
    <html:form>
    ?
    <BODY>
    ?
    <HTML>

    3、配置struts-config.xml文件;建立action、formbean;
    改配置可以自動生成,使用eclipse進(jìn)行自動生成,在建立時,如下圖,可直接生成對應(yīng)的action類和formbean類。struts-config.JPG
    ?1?<?xml?version="1.0"?encoding="UTF-8"?>
    ?2?<!DOCTYPE?struts-config?PUBLIC?"-//Apache?Software?Foundation//DTD?Struts?Configuration?1.1//EN"?"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
    ?3?
    ?4?<struts-config>
    ?5?????<data-sources?/>
    ?6?????<form-beans>
    ?7?????????<form-bean?name="LoginForm"?type="com.test.web.form.LoginForm"?/>
    ?8?
    ?9?????</form-beans>
    10?
    11?????<global-exceptions?/>
    12?????<global-forwards?/>
    13?????<action-mappings>
    14?????????<action?attribute="LoginForm"?input="/login.jsp"?name="LoginForm"?path="LoginAction"?scope="request"?type="com.test.web.action.LoginAction" validate="true">
    15?????????????<forward?name="faile"?path="faile.jsp"?/>
    16?????????????<forward?name="success"?path="success.jsp"?/>
    17?????????</action>
    18?
    19?????</action-mappings>
    20?
    21?????<message-resources?parameter="ApplicationResources"?/>
    22?</struts-config>

    對應(yīng)生成的formbean如下代碼所示:
    ?1?import?javax.servlet.http.HttpServletRequest;
    ?2?import?org.apache.struts.action.ActionErrors;
    ?3?import?org.apache.struts.action.ActionForm;
    ?4?import?org.apache.struts.action.ActionMapping;
    ?5?
    ?6??/**?
    ?7???*?MyEclipse?Struts
    ?8???*?Creation?date:?11-10-2005
    ?9???*?
    10???*?XDoclet?definition:
    11???*?@struts.form?name="LoginForm"
    12???*/
    13??public?class?LoginForm?extends?ActionForm?{
    14??
    15??????/**?password?property?*/
    16??????private?String?password;
    17??
    18??????/**?username?property?*/
    19??????private?String?username;
    20??
    21??
    22??????/**?
    23???????*?Method?validate
    24???????*?@param?mapping
    25???????*?@param?request
    26???????*?@return?ActionErrors
    27???????*/
    28??????public?ActionErrors?validate(
    29??????????ActionMapping?mapping,
    30??????????HttpServletRequest?request)?{
    31??????????
    32??????????/**對頁面提交的元素進(jìn)行驗證,根據(jù)需要進(jìn)行驗證:在struts-config.xml中的 action-mapping配置設(shè)置validate="true"
    33????????????????*?以下驗證才會在頁面加載時生效.
    34?????????????????*/
    35????????????????ActionErrors?errors?=?new?ActionErrors();
    36???????????????if(username==null||username.equals(""))
    37???????????????{
    38????????????????errors.add("username",new?ActionMessage("username.errors"));
    39???????????????????????????return?errors;
    40????????????????}
    41????????????????if(password==null||password.equals(""))
    42???????????????{
    43?????????????????errors.add("password",new?ActionMessage("password.errors"));
    44????????????????????????????return?errors;
    45???????????????}
    46?????????????????return?errors;
    47??????}
    48??
    49??????/**?
    50???????*?Method?reset
    51???????*?@param?mapping
    52???????*?@param?request
    53???????*/
    54??????public?void?reset(ActionMapping?mapping,?HttpServletRequest?request)?{
    55??
    56??
    57??????}
    58??
    59??????/**?
    60???????*?Returns?the?password.
    61???????*?@return?String
    62???????*/
    63??????public?String?getPassword()?{
    64??????????return?password;
    65??????}
    66??
    67??????/**?
    68???????*?Set?the?password.
    69???????*?@param?password?The?password?to?set
    70???????*/
    71??????public?void?setPassword(String?password)?{
    72??????????this.password?=?password;
    73??????}
    74??
    75??????/**?
    76???????*?Returns?the?username.
    77???????*?@return?String
    78???????*/
    79??????public?String?getUsername()?{
    80??????????return?username;
    81??????}
    82??
    83??????/**?
    84???????*?Set?the?username.
    85???????*?@param?username?The?username?to?set
    86???????*/
    87??????public?void?setUsername(String?username)?{
    88??????????this.username?=?username;
    89??????}
    90??
    91?}
    FormBean中驗證后的提示需要在ApplicationResources_zh_CN.properties中配置提示錯誤信息.
    1?username.null.error=\u5462\u79f0\u4e0d\u80fd\u4e3a\u7a7a
    2?password.null.error=\u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a
    下面我們需要對WEB展現(xiàn)中對Action進(jìn)行配置;我們在這里主要是針對登錄進(jìn)行開發(fā).因此在action中需要完成以下步驟:
    1、登錄驗證;驗證用戶名是否存在。驗證該用戶的密碼是否正確。
    2、增加cookie
    3、提示登錄成功。
    在進(jìn)行Action類的編寫過程中,首先我們需要考慮到對數(shù)據(jù)的操作有如下步驟。
    1、驗證用戶名是否存在,我們在service層需要提供一個接口:
    1?Public?boolean?isExist(String?user);
    來判斷用戶名是否存在,同時要考慮該用戶名對應(yīng)的密碼是否正確,需要提供接口:
    1?Public?UserBasicInfo?findByUser(String?user);
    通過用戶名來查找相關(guān)數(shù)據(jù)。
    在Action中,我們同時要判斷根據(jù)用戶查找的用戶密碼是否正確。如果正確,增加cookie。并返回正常登錄頁面。如果用戶不存在、該用戶輸入的密碼與數(shù)據(jù)庫中的密碼不相符合。則在配置文件ApplicationResources_zh_CN.properties中,進(jìn)行設(shè)置提示報錯內(nèi)容。并在頁面中顯示。
    具體Action代碼如下:
    ?
    ??1?public?ActionForward?execute(
    ??2?????????ActionMapping?mapping,
    ??3?????????ActionForm?form,
    ??4?????????HttpServletRequest?request,
    ??5?????????HttpServletResponse?response)?{
    ??6?????????ActionMessages?errors?=?new?ActionMessages();
    ??7?????????/**
    ??8??????????*?取得登錄用戶名與密碼
    ??9??????????*/
    ?10?????????LoginForm?lf=(LoginForm)form;
    ?11?????????UserBasicInfoMgr?uu?=?(UserBasicInfoMgr)getBean("userBasicInfoManager");
    ?12?????????/**
    ?13??????????*?驗證用戶名是否存在
    ?14??????????*/
    ?15?????????if(uu.isExists(lf.getUsername()))
    ?16?????????{
    ?17?????????????/**
    ?18??????????????*?驗證該用戶密碼是否正確
    ?19??????????????*/
    ?20?????????????if(uu.getBasicInfoByName(lf.getUsername()).getUserpwd().equals(StringUtil.encodePassword(lf.getPassword().trim(),"MD5")))
    ?21?????????????{
    ?22?????????????????/**
    ?23??????????????????*?用戶狀態(tài)為新增未激活,返回登錄頁面。不允許登錄。
    ?24??????????????????*/
    ?25?????????????????if(uu.getBasicInfoByName(lf.getUsername()).getUserstatus().toString().equals("1"))
    ?26?????????????????{
    ?27?????????????????????errors.add("useract",new?ActionMessage("user.activate.error"));
    ?28?????????????????????saveErrors(request,errors);
    ?29?????????????????????return?mapping.findForward("relogin");
    ?30?????????????????}
    ?31?????????????????/**
    ?32??????????????????*?用戶狀態(tài)為新增待核,返回登錄頁面。不允許登錄。
    ?33??????????????????*/
    ?34?????????????????if(uu.getBasicInfoByName(lf.getUsername()).getUserstatus().toString().equals("3"))
    ?35?????????????????{
    ?36?????????????????????errors.add("usercheck",new?ActionMessage("user.check.error"));
    ?37?????????????????????saveErrors(request,errors);
    ?38?????????????????????return?mapping.findForward("relogin");
    ?39?????????????????}
    ?40?????????????????/**
    ?41??????????????????*?用戶狀態(tài)為暫時鎖定,返回登錄頁面。不允許登錄。
    ?42??????????????????*/
    ?43?????????????????if(uu.getBasicInfoByName(lf.getUsername()).getUserstatus().toString().equals("5"))
    ?44?????????????????{
    ?45?????????????????????errors.add("userlock",new?ActionMessage("user.lock.error"));
    ?46?????????????????????saveErrors(request,errors);
    ?47?????????????????????return?mapping.findForward("relogin");
    ?48?????????????????}
    ?49?????????????????/**
    ?50??????????????????*?用戶狀態(tài)為已刪除,返回登錄頁面。不允許登錄。
    ?51??????????????????*/
    ?52?????????????????if(uu.getBasicInfoByName(lf.getUsername()).getUserstatus().toString().equals("6"))
    ?53?????????????????{
    ?54?????????????????????errors.add("userdel",new?ActionMessage("user.del.error"));
    ?55?????????????????????saveErrors(request,errors);
    ?56?????????????????????return?mapping.findForward("relogin");
    ?57?????????????????}
    ?58???????????????????/**
    ?59??????????????????*?判斷cookie時間。并保存cookie
    ?60??????????????????*/
    ?61?????????????????Cookie?cookies?=?new?Cookie("username",?lf.getUsername());
    ?62?????????????????cookies.setPath("/");
    ?63?????????????????if(lf.getCookieDate()?!=?null)
    ?64?????????????????{
    ?65?????????????????????if(lf.getCookieDate().equals("0"))
    ?66?????????????????????????cookies.setMaxAge(-1);
    ?67?????????????????????if(lf.getCookieDate().equals("1"))
    ?68?????????????????????????cookies.setMaxAge(0x15180);
    ?69?????????????????????if(lf.getCookieDate().equals("2"))
    ?70?????????????????????????cookies.setMaxAge(0x278d00);
    ?71?????????????????????if(lf.getCookieDate().equals("3"))
    ?72?????????????????????????cookies.setMaxAge(0x1e13380);
    ?73?????????????????}
    ?74?????????????????response.addCookie(cookies);
    ?75?????????????????if(!cookies.getValue().equals(uu.getBasicInfoByName(lf.getUsername()).getUseremail()))
    ?76?????????????????????return?mapping.findForward("relogin");
    ?77?????????????????CoreUserbasicinfo?cub?=?uu.getBasicInfoByName(lf.getUsername());
    ?78?????????????????cub.setLastipaddress(request.getRemoteAddr());
    ?79?????????????????cub.setLastlogindate(new?Date());
    ?80?????????????????uu.regUserBasicInfo(cub);
    ?81?????????????????String?username?=?cookies.getValue();
    ?82?????????????????HttpSession?session?=?request.getSession(false);
    ?83?????????????????if(session?==?null)
    ?84?????????????????????session?=?request.getSession(true);
    ?85?????????????????if(username?!=?null?&&?!username.equals(""))
    ?86?????????????????{
    ?87?????????????????????onLineUser?on?=?onLineUser.getInstance();
    ?88?????????????????????if(!on.existUser(username))
    ?89?????????????????????????session.setAttribute(username,?on);
    ?90?????????????????}
    ?91?????????????????/**
    ?92??????????????????*?傳遞參數(shù)用戶id
    ?93??????????????????*/
    ?94?????????????????request.setAttribute("uid",cub.getUserid());
    ?95?????????????????/**
    ?96??????????????????*?登錄成功,第一次登錄,需要填寫詳細(xì)資料。
    ?97??????????????????*/
    ?98?????????????????if(cub.getActsetting()==null||cub.getActsetting().equals(""))
    ?99?????????????????{
    100?????????????????????return?mapping.findForward("login");
    101?????????????????}
    102?????????????????return?mapping.findForward("index");
    103?????????????}else{
    104?????????????????errors.add("userpwderror",?new?ActionMessage("password.error"));
    105?????????????????saveErrors(request,?errors);
    106?????????????????return?mapping.findForward("relogin");
    107?????????????}
    108?????????}else{
    109??????????????errors.add("usernoterror",?new?ActionMessage("username.not.error"));
    110??????????????saveErrors(request,?errors);
    111??????????????return?mapping.findForward("relogin");
    112?????????}
    113?
    114?????}
    首先謝謝各位的關(guān)注,因最近項目比較緊張,一直沒有更新該文章,有點對不住了。
    下面我將service層的實現(xiàn)與Dao層的實現(xiàn)與配置寫上。各位自己參考吧。
    service接口實現(xiàn)
    1?public?boolean?isExists(String?userEmail)?{
    2?
    3?????????if?(userBasicInfoDao.findByUserEmail(userEmail).size()?==?0)
    4?????????????return?false;
    5?????????else
    6?????????????return?true;
    7?????}

    通過service層調(diào)用Dao層接口,進(jìn)行判斷用戶是否存在。
    Dao接口實現(xiàn):

    1?public?List?findByUserEmail(String?userEmail)?{
    2?
    3?????????return?getHibernateTemplate().find(
    4?????????????????"from?CoreUserbasicinfo?cc?where?cc.useremail=?",?userEmail);
    5?
    6?????}

    接下來,我們就需要配置spring的配置文件
    applicationContext-service.xml

    ?1?<bean?id="userBasicInfoManager"?parent="txProxyTemplate">
    ?2?????????<property?name="target">
    ?3?
    ?4?????????????<bean
    ?5?????????????????class="包路徑.service.Impl.UserBasicInfoMgrImpl">
    ?6?????????????????<property?name="userBasicInfoDao">
    ?7?????????????????????<ref?bean="UserBasicInfoDao"?/>
    ?8?????????????????</property>
    ?9?????????????????<property?name="mailsender">
    10?????????????<ref?bean="mailSender"?/>
    11?????????</property>
    12?????????<property?name="message">
    13?????????????<ref?bean="mailMessage"?/>
    14?????????</property>
    15?????????????</bean>
    16?????????</property>
    17?????</bean>
    applicationContext-hibernate.xml
    ?1?<bean?id="UserBasicInfoDao"
    ?2?
    ?3?????????class="包路徑.Dao.impl.UserBasicInfoDaoImpl">
    ?4?
    ?5?????????<property?name="sessionFactory">
    ?6?
    ?7?????????????<ref?local="sessionFactory"?/>
    ?8?
    ?9?????????</property>
    10?
    11?????</bean>
    配置成功后,就可以對login.jsp進(jìn)行寫struts標(biāo)簽。進(jìn)行運(yùn)行。
    如有問題。請多多指教。
    posted on 2006-08-07 11:40 SIMONE 閱讀(1641) 評論(0)  編輯  收藏 所屬分類: JSP
    主站蜘蛛池模板: 国产成人亚洲综合a∨| 男人的好看免费观看在线视频| 亚洲av永久无码精品三区在线4| 亚洲av再在线观看| 两个人的视频高清在线观看免费| 成人免费视频小说| 国产h肉在线视频免费观看| 99麻豆久久久国产精品免费| 狠狠综合亚洲综合亚洲色| 亚洲欧美日韩综合久久久久| 亚洲国产综合人成综合网站00| 亚洲伦理一区二区| 亚洲综合精品香蕉久久网| 亚洲日韩中文在线精品第一| 免费一级黄色毛片| 免费乱码中文字幕网站| 亚洲精品乱码久久久久久久久久久久| 国产啪亚洲国产精品无码| av在线亚洲欧洲日产一区二区| 亚洲另类激情综合偷自拍| 久久精品国产亚洲AV天海翼| 国产一级黄片儿免费看| 国产免费无码一区二区| a级毛片免费全部播放无码| 色老头永久免费网站| 天堂亚洲免费视频| 久久久久国产成人精品亚洲午夜| 亚洲视频在线视频| 羞羞网站在线免费观看| 中美日韩在线网免费毛片视频 | 美女裸体无遮挡免费视频网站| 久久福利青草精品资源站免费| 毛片a级毛片免费观看免下载| 亚洲天堂在线视频| 精品日韩99亚洲的在线发布| 一进一出60分钟免费视频| 国产成人精品免费视频网页大全 | 亚洲AV无码专区国产乱码不卡 | 亚洲午夜电影一区二区三区| 亚洲成年网站在线观看| 亚洲欧洲免费无码|