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

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

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

    posts - 0,  comments - 17,  trackbacks - 0


    來源:http://www.tkk7.com/shmily432685

    開發前準備:
        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 2008-01-23 11:13 xyz 閱讀(677) 評論(0)  編輯  收藏 所屬分類: 網絡文摘

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    留言簿

    隨筆檔案(1)

    文章分類(44)

    文章檔案(46)

    收藏夾(1)

    Adobe

    AOP

    API

    appServer

    BI

    c

    • c-free
    • codeblocks
    • codelite
    • CodeLite IDE 是一個強大的開源,跨平臺的 C/C++整合開發環境. 支持包括 Windows、Linux 和 Mac 系統下運行
    • codelite官網
    • dev-c++
    • Dev-C++是一個C&C++開發工具,它是一款自由軟件,遵守GPL協議。
    • GCC
    • GCC 原名為 GNU C 語言編譯器(GNU C Compiler),因為它原本只能處理 C語言。GCC 很快地擴展,變得可處理 C++。之后也變得可處理 Fortran、Pascal、Objective-C、Java, 以及 Ada 與其他語言。

    Cache

    CMS

    DB

    eclipse

    FreeMarker

    hibernate

    html5

    ibatis

    java

    jquery

    js

    json

    Linux

    Log

    mail server

    mobile

    mysql

    oauth

    openID

    other

    PHP

    portal

    report

    Scheduler

    schema

    Security

    SOA

    spring

    struts

    UI原型設計

    w3c

    Wap

    webservice

    xml

    供應鏈管理

    博客鏈接

    好網站

    工作流

    開源網

    招聘

    插件下載

    操作系統

    構建可伸縮的系統

    構建工具

    測試

    • IETest
    • IE官網
    • OpenSTA
    • Siege
    • Siege是一個壓力測試和評測工具,設計用于WEB開發這評估應用在壓力下的承受能力

    游戲

    源碼托管

    經營

    資源

    金融/財務

    搜索

    •  

    最新評論

    主站蜘蛛池模板: 亚洲一区免费观看| 亚洲国产成人资源在线软件 | 亚洲国产精品13p| aⅴ免费在线观看| 免费播放在线日本感人片| 欧美亚洲精品一区二区| 亚洲白色白色永久观看| 亚洲AV无码一区二区二三区软件| 国产免费131美女视频| 成年人免费网站在线观看| 99久久99热精品免费观看国产| 精品久久久久久国产免费了| 国产天堂亚洲精品| 亚洲人成无码网站在线观看| 亚洲综合小说久久另类区| 亚洲av无码不卡| 精品国产综合成人亚洲区| 亚洲精品国产自在久久| 免费大片黄手机在线观看| 免费鲁丝片一级在线观看| 成人毛片免费观看视频在线| 精品国产sm捆绑最大网免费站| 67pao强力打造高清免费| 久久久久久久岛国免费播放| 国产免费拔擦拔擦8X高清在线人| a免费毛片在线播放| kk4kk免费视频毛片| 国产精品福利片免费看| 中文字幕免费在线看线人动作大片| 免费看黄福利app导航看一下黄色录像| 亚洲AV第一成肉网| 黄色毛片免费在线观看| 一个人看的免费视频www在线高清动漫 | 亚洲国产精品日韩在线观看| 亚洲大尺码专区影院| 亚洲一级视频在线观看| 亚洲色欲色欲www在线播放 | 日韩伦理片电影在线免费观看| 成人免费无毒在线观看网站| 男女交性永久免费视频播放| 国产精品国产自线拍免费软件|