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

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

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

    隨筆 - 4  文章 - 10  trackbacks - 0
    <2025年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    留言簿(1)

    隨筆檔案

    文章分類

    文章檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    接:Myeclipse開發struts+hibernate+spring新手入門---環境配置
    如果您按照上篇文章配置成功,可以進行開發簡單的J2EE項目。
    開發前準備:
        1、新建項目包:如下圖:
             project1.JPG
    Dao:數據層;service:邏輯層;web:web展現層。
    2、建立好三層架構,部署好包名。建立一個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進行自動生成,在建立時,如下圖,可直接生成對應的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>

    對應生成的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          /**對頁面提交的元素進行驗證,根據需要進行驗證:在struts-config.xml中的 action-mapping配置設置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展現中對Action進行配置;我們在這里主要是針對登錄進行開發.因此在action中需要完成以下步驟:
    1、登錄驗證;驗證用戶名是否存在。驗證該用戶的密碼是否正確。
    2、增加cookie
    3、提示登錄成功。
    在進行Action類的編寫過程中,首先我們需要考慮到對數據的操作有如下步驟。
    1、驗證用戶名是否存在,我們在service層需要提供一個接口:
    1 Public boolean isExist(String user);
    來判斷用戶名是否存在,同時要考慮該用戶名對應的密碼是否正確,需要提供接口:
    1 Public UserBasicInfo findByUser(String user);
    通過用戶名來查找相關數據。
    在Action中,我們同時要判斷根據用戶查找的用戶密碼是否正確。如果正確,增加cookie。并返回正常登錄頁面。如果用戶不存在、該用戶輸入的密碼與數據庫中的密碼不相符合。則在配置文件ApplicationResources_zh_CN.properties中,進行設置提示報錯內容。并在頁面中顯示。
    具體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                  * 用戶狀態為新增未激活,返回登錄頁面。不允許登錄。
     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                  * 用戶狀態為新增待核,返回登錄頁面。不允許登錄。
     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                  * 用戶狀態為暫時鎖定,返回登錄頁面。不允許登錄。
     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                  * 用戶狀態為已刪除,返回登錄頁面。不允許登錄。
     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                  * 傳遞參數用戶id
     93                  */
     94                 request.setAttribute("uid",cub.getUserid());
     95                 /**
     96                  * 登錄成功,第一次登錄,需要填寫詳細資料。
     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     }
    首先謝謝各位的關注,因最近項目比較緊張,一直沒有更新該文章,有點對不住了。
    下面我將service層的實現與Dao層的實現與配置寫上。各位自己參考吧。
    service接口實現
    1 public boolean isExists(String userEmail) {
    2 
    3         if (userBasicInfoDao.findByUserEmail(userEmail).size() == 0)
    4             return false;
    5         else
    6             return true;
    7     }

    通過service層調用Dao層接口,進行判斷用戶是否存在。
    Dao接口實現:

    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進行寫struts標簽。進行運行。
    如有問題。請多多指教。
    posted on 2007-08-17 16:11 冬天出走的豬 閱讀(191) 評論(0)  編輯  收藏 所屬分類: WEB開發
    主站蜘蛛池模板: 亚洲αv久久久噜噜噜噜噜| 日韩免费高清一级毛片在线| 99在线免费视频| 久久免费99精品国产自在现线| 无人在线观看免费高清| 最近高清中文字幕无吗免费看| 免费鲁丝片一级观看| 国产亚洲一区区二区在线| 91亚洲国产成人久久精品网站| 亚洲色偷偷综合亚洲AV伊人蜜桃| 一级免费黄色毛片| 蜜臀98精品国产免费观看| 国产做床爱无遮挡免费视频| 亚洲福利视频导航| 欧洲乱码伦视频免费国产| 亚洲免费在线视频| 亚洲另类精品xxxx人妖| 国产精品福利片免费看| 浮力影院第一页小视频国产在线观看免费| 最新国产成人亚洲精品影院| 99精品全国免费观看视频..| 亚洲AV成人片色在线观看 | 国产产在线精品亚洲AAVV| 99精品视频在线观看免费播放| www.亚洲色图.com| 亚洲综合中文字幕无线码| 国产性生交xxxxx免费| 美女视频黄免费亚洲| 91频在线观看免费大全| 亚洲а∨天堂久久精品9966| 国产一级一片免费播放| 成人网站免费看黄A站视频| 亚洲国产成人精品无码久久久久久综合| 亚洲日本视频在线观看| 欧洲人免费视频网站在线| 亚洲无码日韩精品第一页| 一区二区免费国产在线观看| 超pen个人视频国产免费观看| 国产精品九九久久免费视频| 亚洲永久中文字幕在线| 亚洲电影在线免费观看|