您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“WebWork如何實現用戶登陸”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“WebWork如何實現用戶登陸”這篇文章吧。
WebWork用戶登陸主要實現如下功能:
1、login.jsp中就name,password字段
2、用戶名與密碼不能為空!如果空給予提示(使用Webwork驗證,國際化)
2、當用戶名為:xiaomaha密碼為123跳轉到seccess.jsp頁面否則跳轉到defeat.jsp頁面
WebWork用戶登陸***步:導包
版本為:webwork-2.2.5
http://www.opensymphony.com/webwork
可以下載所需要的包
1、webwork-2.2.5.jar
2、lib目錄下default中的所有包
WebWork用戶登陸第二步:配置web.xml
com.opensymphony.webwork.dispatcher.FilterDispatcher 為WebWork中的Servlet控制器
〈?xmlversion="1.0"encoding="UTF-8"?〉 〈web-appversion="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"〉 〈filter〉 〈filter-name〉webwork〈/filter-name〉 〈filter-class〉 com.opensymphony.webwork.dispatcher.FilterDispatcher 〈/filter-class〉 〈/filter〉 〈filter-mapping〉 〈filter-name〉webwork〈/filter-name〉 〈url-pattern〉*.action〈/url-pattern〉 〈/filter-mapping〉 〈/web-app〉
Filter是一個過濾器,頁面以*.action的請求都交給WebWork的servlet控制器
WebWork用戶登陸第三步:創建Action
首先創建一個Action,WebWork中Action其實就是一個普通的JAVA類。
只要寫一個execute()方法 返回
String類型,在配置文件定義它.那么它就是一個Action。相當與Struts1中的Action!WebWork實現了與Servlet解偶合,方便測試`本人特別喜歡!!
但是如果需要方便的開發那么繼承ActionSupport,覆寫它的execute()注意它的返回值是一個String,不是一個ActionForword
WebWork中可以使用兩中方法實現驗證
1、在Action中繼承ActionSupport,覆寫validate()方法(本人給予注釋了!)
2、配置文件實現,本例使用配置文件,注意必須將驗證的配置文件寫到與自定義Action同包下!
package com.xiaomaha.action; import com.opensymphony.xwork.ActionSupport; public class LoginAction extends ActionSupport ... { private String userName; private String passWord; public String getPassWord() ... { return passWord; } public void setPassWord(String passWord) ... { this.passWord = passWord; } public String getUserName() ...{ return userName; } public void setUserName(String userName) ... { this.userName = userName; } public String execute() throws Exception ... { String path = null ; if("xiaomaha".equalsIgnoreCase(this.userName)&&"123". equals(this.passWord))...{ path =this.SUCCESS; }else...{ path =this.ERROR; } return path; } //public void validate() { //if("".equals(this.userName)||this.userName==null){ ///*addFieldError()相當與Struts1中的ActionErrors* // * 如果要實現國際化那么需要getText()它用于讀取資源文件 // * getText("name.null")對應資源文件中的key,它會找到value // */ //this.addFieldError("userName", getText("name.null")); //} // //if("".equals(this.passWord)||this.passWord==null){ //this.addFieldError("passWord", getText("pass.null")); //} //} }
WebWork用戶登陸第四步:創建xwork.xml
xwork.xml有點像Struts1中的struts-config.xml
xwork.xml文件必須放在類路徑下 WEB-INF/classes/ 之下
WebWork的Servlet控制器會去找到它并解析它,路徑一定不要放錯了,名字一定不要錯!
還要提示注意,在WebWork中所有的Action標簽必須在package標簽下,package是action的父標簽
〈 include file="webwork-default.xml"〉 〈 /include〉 會去找到WebWork中JAR文件中的webwork-default.xml, 必寫 〈 !DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.1.1//EN" "http://www.opensymphony.com/xwork/xwork-1.1.1.dtd"〉 〈 xwork〉 〈 !-- include加載webwork中的webwork-default.xml 是必須的不然會拋出 servlet jsp threw exception --〉 〈 include file="webwork-default.xml"〉 〈 /include〉 〈 package name="webworkdemo" extends="webwork-default"〉 〈 action name="login" class="com.xiaomaha.action.LoginAction"〉 〈 result name="success"〉 /success.jsp〈 /result〉 〈 result name="error"〉 /error.jsp〈 /result〉 〈 result name="input"〉 /login.jsp〈 /result〉 〈 /action〉 〈 /package〉 〈 /xwork〉
〈 result name="success"〉 /success.jsp〈 /result〉
如果Action中的execute()方法返回success字符串那么,跳轉到success.jsp頁面中
〈 result name="input"〉 /login.jsp〈 /result〉
和Struts1中的input一樣都是顯示錯誤消息,但在WebWork中不需要定義返回錯誤的標簽。
因為WebWork中定義的標簽中〈 w:form〉 已經實現了錯誤驗證
在自定義的Action同包下建立一個與Action一樣名字+validation.xml文件
例如:
Action:LoginAction.java
配置文件:LoginAction-validation.xml
〈 ?xml version="1.0" encoding="UTF-8"?〉 〈 !DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" "http://www.opensymphony.com/xwork/ xwork-validator-1.0.dtd" 〉 〈 validators〉 〈 field name="userName"〉 〈 field-validator type="requiredstring" 〉 〈 message key="name.null"〉〈 /message〉 〈 /field-validator〉 〈 /field〉 〈 field name="passWord"〉 〈 field-validator type="requiredstring"〉 〈 message key="pass.null"〉〈 /message〉 〈 /field-validator〉 〈 /field〉 〈 /validators〉
name.null 、pass.null 對應資源文件的key
requiredstring 代表:不能為空,是必須的
WebWork用戶登陸第六步:創建國際化資源文件
創建一個Message.properties ,里面不能寫中文。
需要在dos窗口中進行轉碼
命令為native2ascii Message.properties Message.properties_zh_cn.properties 就生成了一個新的文件,刪除Message.properties
瀏覽器如果為中文,那么它會找到 Message.properties_zh_cn.properties ,為了方便我就不定義其它語言的配置文件咯!
提示:Message 可以任意修改!
例:比如需要定義支持英語的可以這樣寫 Message_en_US.properties
Message.properties_zh_cn.properties如下:
name.null = \u7528\u6237\u540d\u4e0d\u80fd\u4e3a\u7a7a\uff01 pass.null = \u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a\uff01
WebWork用戶登陸***一步:加載上面的資源文件
在類路徑下創建 webwork.properties ,WebWork會在類路徑找到它并且解析它!
里面添加如下:
webwork.custom.i18n.resources=Message
以上是“WebWork如何實現用戶登陸”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。