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控制器

 
 
 
  1. 〈?xmlversion="1.0"encoding="UTF-8"?〉  
  2. 〈web-appversion="2.4" 
  3. xmlns="http://java.sun.com/xml/ns/j2ee" 
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee  
  6. http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"〉  
  7. 〈filter〉  
  8. 〈filter-name〉webwork〈/filter-name〉  
  9. 〈filter-class〉  
  10. com.opensymphony.webwork.dispatcher.FilterDispatcher  
  11. 〈/filter-class〉  
  12. 〈/filter〉  
  13. 〈filter-mapping〉  
  14. 〈filter-name〉webwork〈/filter-name〉  
  15. 〈url-pattern〉*.action〈/url-pattern〉  
  16. 〈/filter-mapping〉  
  17. 〈/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同包下!

 
 
 
  1. package com.xiaomaha.action;  
  2. import com.opensymphony.xwork.ActionSupport;  
  3. public class LoginAction extends   
  4. ActionSupport ...  
  5. {  
  6. private String userName;  
  7. private String passWord;  
  8. public String getPassWord() ...  
  9. {  
  10. return passWord;  
  11. }  
  12. public void setPassWord(String passWord) ...  
  13. {  
  14. this.passWord = passWord;  
  15. }  
  16. public String getUserName() ...{  
  17. return userName;  
  18. }  
  19. public void setUserName(String userName) ...  
  20. {  
  21. this.userName = userName;  
  22. }  
  23. public String execute() throws Exception ...  
  24. {  
  25. String path = null ;   
  26. if("xiaomaha".equalsIgnoreCase(this.userName)&&"123".  
  27. equals(this.passWord))...{  
  28. path =this.SUCCESS;  
  29. }else...{  
  30. path =this.ERROR;  
  31. }  
  32. return path;  
  33. }  
  34. //public void validate() {  
  35. //if("".equals(this.userName)||this.userName==null){  
  36. ///*addFieldError()相当与Struts1中的ActionErrors*  
  37. // * 如果要实现国际化那么需要getText()它用于读取资源文件  
  38. // * getText("name.null")对应资源文件中的key,它会找到value  
  39. // */  
  40. //this.addFieldError("userName", getText("name.null"));  
  41. //}  
  42. //  
  43. //if("".equals(this.passWord)||this.passWord==null){  
  44. //this.addFieldError("passWord", getText("pass.null"));  
  45. //}  
  46. //}  
  47. }  

WebWork用户登陆第四步:创建xwork.xml

xwork.xml有点像Struts1中的struts-config.xml

xwork.xml文件必须放在类路径下   WEB-INF/classes/    之下

WebWork的Servlet控制器会去找到它并解析它,路径一定不要放错了,名字一定不要错!

还要提示注意,在WebWork中所有的Action标签必须在package标签下,package是action的父标签

 
 
 
  1. 〈 include file="webwork-default.xml"〉   
  2. 〈 /include〉   
  3. 会去找到WebWork中JAR文件中的webwork-default.xml,  
  4. 必写 〈 !DOCTYPE xwork PUBLIC   
  5. "-//OpenSymphony Group//XWork 1.1.1//EN"   
  6. "http://www.opensymphony.com/xwork/xwork-1.1.1.dtd"〉   
  7. 〈 xwork〉   
  8. 〈 !-- include加载webwork中的webwork-default.xml  
  9. 是必须的不然会抛出  
  10. servlet jsp threw exception  
  11.  --〉   
  12. 〈 include file="webwork-default.xml"〉 〈 /include〉   
  13. 〈 package name="webworkdemo" extends="webwork-default"〉   
  14. 〈 action name="login"   
  15. class="com.xiaomaha.action.LoginAction"〉   
  16. 〈 result name="success"〉 /success.jsp〈 /result〉   
  17. 〈 result name="error"〉 /error.jsp〈 /result〉   
  18. 〈 result name="input"〉 /login.jsp〈 /result〉   
  19. 〈 /action〉   
  20. 〈 /package〉   
  21. 〈 /xwork〉   
 
 
 
  1. 〈 result name="success"〉 /success.jsp〈 /result〉 

如果Action中的execute()方法返回success字符串那么,跳转到success.jsp页面中

 
 
 
  1. 〈 result name="input"〉 /login.jsp〈 /result〉 

和Struts1中的input一样都是显示错误消息,但在WebWork中不需要定义返回错误的标签。

因为WebWork中定义的标签中〈 w:form〉 已经实现了错误验证

WebWork用户登陆第五步:验证配置文件

在自定义的Action同包下建立一个与Action一样名字+validation.xml文件

例如:

Action:LoginAction.java 

配置文件:LoginAction-validation.xml

 
 
 
  1. 〈 ?xml version="1.0" encoding="UTF-8"?〉  
  2. 〈 !DOCTYPE validators PUBLIC   
  3. "-//OpenSymphony Group//XWork Validator 1.0//EN"   
  4. "http://www.opensymphony.com/xwork/  
  5. xwork-validator-1.0.dtd" 〉  
  6. 〈 validators〉  
  7. 〈 field name="userName"〉  
  8. 〈 field-validator type="requiredstring" 〉  
  9. 〈 message key="name.null"〉〈 /message〉  
  10. 〈 /field-validator〉  
  11. 〈 /field〉  
  12. 〈 field name="passWord"〉  
  13. 〈 field-validator type="requiredstring"〉  
  14. 〈 message key="pass.null"〉〈 /message〉  
  15. 〈 /field-validator〉  
  16. 〈 /field〉  
  17. 〈 /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如下:

 
 
 
  1. name.null =   
  2. \u7528\u6237\u540d\u4e0d\u80fd\u4e3a\u7a7a\uff01  
  3. pass.null =  
  4.  \u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a\uff01  

WebWork用户登陆***一步:加载上面的资源文件

在类路径下创建 webwork.properties ,WebWork会在类路径找到它并且解析它!

里面添加如下:

webwork.custom.i18n.resources=Message

Ok一切搞定咯!

分享题目:WebWork用户登陆简单实现
分享地址:http://www.shufengxianlan.com/qtweb/news16/352466.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联