Struts從0開始1:普通的登錄驗證實例

 Struts是一個基於Sun J2EE平臺的MVC框架,主要是採用Servlet和JSP技術來實現的。由於Struts能充分滿足應用開發的需求,簡單易用,敏捷迅速,在過去的幾年中頗受關注。Struts把Servlet、JSP、自定義標籤和信息資源(message resources)整合到一個統一的框架中,開發人員利用其進行開發時不用再自己編碼實現全套MVC模式,極大的節省了時間,所以說Struts是一個非常不錯的應用框架。很多公司開發的產品都是基於此框架的。

  當然,有朋友一提起編程就覺得頭痛,是否如此呢?我想通過本期的struts教程,你便會有自己的結論喲!

  本期struts教程本着從易用、實用的目的出發,帶您手把手地完成公司開發中常用模塊的開發,使你迅速上手struts。

  主要通過以下六個模塊:

  一、登錄驗證實例

  二、解決中文亂碼問題實例

  三、連數據庫實例

  四、國際化

  五、驗證數據實例

  六、模塊使用實例

  七、製作簡單留言板實例

  使大家對struts能由淺入深的學習,最終撐握它。

  萬事開頭難,就讓我們一起來經歷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節點下的:

  實現機制:Struts會根據你傳進actionMapping.findForward(“映射名稱”),它會到你當前action節點下去找forward這個節點,並把你傳進的參數與這個節點的name屬性進行匹配。如果相等它就會跳到這個節點的path所指定的頁面。

  例:

  Action:actionMapping.findForward(“success”)

  Struts-config.xml:

  如果是這種情況的話,它就會轉發到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做一下相應的介紹吧,如下:

  :用來配置一個ActionForm Bean。常用配置的幾個屬性:

  name:指定該ActionForm Bean的唯一標識符,整個Struts框架用該標識符來引用這個Bean。該屬性是必需的

  type:指定ActionForm類的全限定名。該屬性是必需的

  :用來描述特定的請求路徑到相應的Action類的映射。常用配置的幾個屬性:

  input: 指定包含輸入表單的URL路徑。當表單驗證失敗時,將把請求轉發到該URL。

  name: 指定和該Action關聯的ActionForm Bean的名字。

  path: 指定訪問Action的路徑,它以“/”開頭,沒有擴展名。

  Scope: 指定ActionForm Bean的存在範圍。(session | request)

  Validate:指定是否要先調用ActionForm Bean的validate()方法。默認值爲true

  Action的子元素常用配置的幾個屬性:

  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就這麼簡單,能完成本章節的要求吧!現在你已經上手啦,接着往下學,我們會有越來越多的收穫喲!!(引用自http://dev.rdxx.com/Java/Struts/2008/9/252030646907_2.shtml)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章