Struts初級教程(1)-用戶登錄實例_JSP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:詳解Jsp傳遞中文參數
      目前在jsp頁面中傳遞中文參數,主要有兩種方式: URL方式,例如:http://website/test1.jsp?act=addtype=桔子param=%20D%20B FORM方式,例如: formname=testmehtod=post inputtype=hiddenname=text2value=中文 inputtype=textname=text1 inputtype=subm

          本教程從易用,實用的目的出發,模擬完成實際開發中常用的模塊,讓大家能快速上手struts,下面我們正式開式吧。
          Jsp的Struts是一個基于Sun J2EE平臺的MVC框架,主要是采用Servlet和JSP技術來實現的。
          Struts把Servlet、JSP、自定義標簽和信息資源(message resources)整合到一個統一的框架中,開發人員利用其進行開發時不用再自己編碼實現全套MVC模式,極大的節省了時間。
          本教程主要包括6個模塊:
         1、登錄驗證實例
         2、解決中文亂碼問題實例
         3、連數據庫實例
         4、國際化
         5、驗證數據實例
         6、模塊使用實例
         7、制作簡單留言板實例
          對struts做由淺入深的介紹,讓大家最終撐握它。

      一、普通的登錄驗證實例

      我們以結果為導向,首先大家先看看要完成的效果圖,對接下來要做的事情有個清晰的認識。
      效果圖:
             1、如圖鍵入:


      顯示結果如下圖:


      如果您輸入的是合法的話,則如下圖:


      開發步驟:

      A、首先建立一工程,選擇web模塊,最后再加載struts包即可。在工程中新建一包,命名為actions,在下面新建一類文件,命名為LoginAction,里面一定要重寫execute方法,注意參數的順序及返回類型都是不可以變化的。

      在struts中action類起著控制轉向的作用,當我們輸入用戶名與密碼并點了提交按鈕后,需要交給控制器來決斷我們是轉向到登陸成功頁還是登陸失敗頁。LoginAction在此就起這么個功能,具體代碼請依照如下所示:

      public class LoginAction extends Action {

          public ActionForward execute(ActionMapping actionMapping,
                                        ActionForm actionForm,
                                        HttpServletRequest servletRequest,
                                        HttpServletResponse serveltResponse) 
          {
              LoginActionForm loginform = (LoginActionForm) actionForm;
              String username = loginform.getUsername();
              String userpass = loginform.getUserpass();
              boolean flag = false;
              String actionpath = "";
              if (username.equals("123") && userpass.equals("123")) {
                  actionpath = "success";
              } else {
                  actionpath = "error";
              }
              return actionMapping.findForward(actionpath);
          }
       }

      在“LoginAction”中,我們得到一個ActionForm對象,并把它強轉成LoginActionForm,
      待我們處理,即通過ActionForm的匹配名稱的表單自動封裝機制,取得用戶輸入用戶名、密碼。
      我們返回的結果將會被ActionFormward對象所包裝,比如這兒的“success“表示用戶合法,“error”表示用戶不合法,這個字符串將決定著頁面的流程控制。它并不是一個具體存在的頁面,它是如何跟一個具體的頁面關聯上的呢?

      我們來分析幾點:
      1、 你在操作時記住的概念:
      Struts的核心是Action,而Action的核心就是一個配置文件——struts-config.xml。它既然是核心就很重要哦。
      2、 Maping映射:
      a)         actionMapping.findForward(“映射名稱”); 它返回的是一個ActionForward對象
      b)        struts-config.xml里面action節點下的:<forward name="映射名稱" path="/頁面名稱"/>
      實現機制:Struts會根據你傳進actionMapping.findForward(“映射名稱”),它會到你當前action節點下去找forward這個節點,并把你傳進的參數與這個節點的name屬性進行匹配。如果相等它就會跳到這個節點的path所指定的頁面。
             例:
      Action:actionMapping.findForward(“success”)
      Struts-config.xml:<forward name="success" path="/success.jsp"/>
      如果是這種情況的話,它就會轉發到success.jsp頁面。
            注意:
      a)         方法的參數值和name節點的值對應,
      b)        Path所指定的頁面,前面必須加上“/“

             B、在前面我們提到了ActionForm,所以我們還需要建立一個類文件,這個類文件將封裝頁面用戶輸入的用戶名、和密碼。
      注意:
      1、這個類必須繼承ActionForm類,它將完成與頁面的自動封裝。
      2、類中的屬性名稱一定要和頁面的輸入框的名稱對應,為了自動封裝的匹配工作。
      3、這個類中一定要提供所有與屬性相匹配的set 和 get方法。

      前面寫了這些代碼,看上去還是有些雜亂無章,怎么把它們關聯起來呢?又怎么調用這些代碼呢?呵呵,群龍不會無首的,下面就一起來關注struts的裝配文件,它可是相當于struts的總司令!

      C、核心部分,跳轉控制Struts-config.xml部分
      <struts-config>
       <form-beans>
          <form-bean name="loginActionForm" type="formbeans.LoginActionForm" />
       </form-beans>
       <action-mappings>
      <action path="/login" name="loginActionForm"  type="actions.LoginAction">
            <forward name="success" path="/success.jsp"/>
            <forward name="error" path="/wrong.jsp"/>
          </action>
       </action-mappings>
      </struts-config>

      我們對struts.xml做一下相應的介紹吧,如下:
      <form-bean>:用來配置一個ActionForm Bean。常用配置的幾個屬性:
      name:指定該ActionForm Bean的唯一標識符,整個Struts框架用該標識符來引用這個Bean。該屬性是必需的
               type:指定ActionForm類的全限定名。該屬性是必需的
      <action>:用來描述特定的請求路徑到相應的Action類的映射。常用配置的幾個屬性:
        input:    指定包含輸入表單的URL路徑。當表單驗證失敗時,將把請求轉發到該URL。
        name:   指定和該Action關聯的ActionForm Bean的名字。
        path:     指定訪問Action的路徑,它以“/”開頭,沒有擴展名。
        Scope: 指定ActionForm Bean的存在范圍。(session | request)
        Validate:指定是否要先調用ActionForm Bean的validate()方法。默認值為true
      Action的子元素<forward>常用配置的幾個屬性:
        name:   指定轉發路徑的邏輯名。必需的
        path:     指定轉發(或重定向)的URI,必須以”/”開頭。必需的
      redirect:當此項為true時,表示執行重定向操作。為false時表示執行請求轉發操作。默認值為false

      D、頁面login.jsp,用戶登錄頁面,提供用戶輸入功能。具體代碼如下所示:
      <form method="post" action="login.do">
       請輸入姓名:<input type="text" name="username" value=""/><br />
       請輸入密碼:<input type="password" name="userpass" value=""/><br>
      <input type="submit" name="Submit" value="Submit">
      <input type="reset" value="Reset">
      </form>

      注意:
      1、action后面的login.do就是struts-config.xml里面你要訪問的action節點path的值哦
      2、切記哦,如果你請求的URL的引用了formbean的話,這里的名稱一定要對應哦。
      還有success.jsp 、wrong.jsp分別代表登錄成功和登錄失敗頁面。就不再多說啦!
      啟動Tomcat,連接上您的應用程序網址,例如:http://localhost:8080/Struts1_Login/login.jsp,填入用戶名、密碼,并送出窗體,您的歡迎頁面就會顯示了。
             怎么樣,本章節是不是比較容易?其實struts就這么簡單,能完成本章節的要求吧!現在你已經上手啦!

      分享:詳解jsp類的繼承
      本文運用一個示范程序向初學者講解了基本的 jsp中類的繼承 //新建一個AA類 classAA{ //類成員變量,num是實參 intnum=0; //成員方法AA,i是型參 publicAA(inti){ //輸入int型文件輸出下面 System.out.println(aaaaaaaaaaaaaaaaaaa); System.out.println(i=

      來源:模板無憂//所屬分類:JSP教程/更新時間:2010-03-23
      相關JSP教程