Struts2.0提供的数据格式校验
js校验:存在被用户篡改的风险
Struts2.0提供的校验步骤
1.获得数据:使用Action的属性进行封装
2.对获得的数据进行判断(方法)
Struts2.0的ActionSupport提供了validate方法进行数据格式校验
3.在Struts.xml中配置异常跳转
在Struts2.0体系中为异常以及错误定义了固定的result
name=input //
显示错误信息:<s:fielderror></s:fielderror>
<s:fielderror><s:param>key</s:param></s:fielderror>
数据格式校验的方法
js Struts2.0
优点: 客户端,效率高 安全
缺点: 容易被篡改 访问服务端,浪费资源
实际开发中:js+Struts2.0
1.在com.jsu.struts2.action包中写LoginAction extends ActionSupport 提供了validate方法进行数据格式校验
package com.jsu.struts2.action; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport{ private String userName; private String passWord; public String execute(){ return SUCCESS; } @Override public void validate() { if(userName==null||userName.equals("")){ System.out.println("用户名不能为空"); this.addFieldError("nameError", "用户名不能为空!"); } if(passWord==null||passWord.length()<6){ System.out.println("密码长度不能小于6位"); this.addFieldError("pwdError", "密码长度不能小于4位!!"); } } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassWord() { return passWord; } public void setPassWord(String passWord) { this.passWord = passWord; } }
2.在struts.xml文件中配置异常跳转
<struts> <package name="loginDemo" namespace="/" extends="struts-default"> <action name="login" class="com.jsu.struts2.action.LoginAction"> <result>/login.jsp</result> <result name="input">/login.jsp</result> </action> </package> </struts>
3.在login.jsp页面<s:fielderror></s:fielderror>
<s:fielderror><s:param>key</s:param></s:fielderror>显示错误信息
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@taglib uri="/struts-tags" prefix="s"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <style type="text/css"> ul{display:inline;color:red;} li{ display:inline; color:red; } </style> </head> <body> <center> <form action="login.action" method="post"> <s:text name="userName"/><input type="text" name="username"/> <s:fielderror><s:param>nameError</s:param></s:fielderror><br> <s:text name="passWord"/><input type="text" name="pwd"/> <s:fielderror><s:param>pwdError</s:param></s:fielderror><br><br> <input type="submit" value="Submit"/> </form> </center> </body> </html>
发表评论
-
struts2day06 自定义结果
2012-07-16 12:14 673类implements Result接口 或者 extends ... -
struts2day06 Struts2.0的result
2012-07-16 12:01 950Struts2.0的result Action ... -
struts2day06学习笔记
2012-07-16 10:55 8521.new String(xxx.getBytes(),&qu ... -
struts2day05异常处理
2012-07-13 23:13 834Struts2.0的异常处理机制 1.什么是异常?软件在 ... -
Struts2day05学习笔记
2012-07-13 22:19 6761.自定义拦截器 1.im ... -
Struts2day04Struts2.0文件的下载
2012-07-13 08:26 6781.写一个Action,在DownloadAction ext ... -
Struts2day04Struts2.0文件的上传
2012-07-13 08:20 6501、在服务器端提供一个文件夹存放提交的文件,upload文件夹 ... -
Struts2day04Struts2.0实现阻止表单重复提交
2012-07-12 21:01 6241.使用叫做token的拦截器,在表单中加入<s:tok ... -
Struts2day04对Action的方法进行过滤拦截
2012-07-12 20:38 17811.写一个Action类 UserManagerAction ... -
Struts2day04判断用户是否登录
2012-07-12 19:37 8701.在拦截器中获得用户登录的session 在LoginC ... -
Struts2day04测试程序的执行效率,拦截器栈,在Action中覆盖拦截器的属性值
2012-07-12 18:58 11861.在LoginAction.java中,extends Ac ... -
Struts2学习笔记day04
2012-07-12 00:31 6201.自定义类型转换 1.写一个类 extends S ... -
Struts2day03Struts2.0国际化
2012-07-11 21:09 765Struts2.0国际化 B/S结构中为网页提供多国 ... -
Struts2day03OGNL自定义类型转换
2012-07-11 20:47 806Struts2.0框架不能够或者不能完整的进行自动类型转换 ... -
Struts2学习笔记day03
2012-07-11 19:09 9481.值栈:ValueStack,存储数 ... -
Struts2day02多个对象提交
2012-07-10 07:15 1188在listUser.jsp页面 <%@ page la ... -
Struts2day02表单标签
2012-07-10 07:15 6661.在struts2Form.jsp中 <%@ ... -
struts2day02访问ValueStack中的数据以及访问Context中的对象
2012-07-10 07:14 10471.在show.jsp页面 <%@ page lang ... -
Struts2day02动态方法调用
2012-07-10 07:14 6521.在opt.jsp页面 <%@ page langu ... -
Struts2day02使用通配符调用指定的方法
2012-07-10 07:14 7301.在opt.jsp页面 <%@ page langu ...
相关推荐
5. **拦截器**:拦截器是Struts2的一大特色,它允许开发者在Action调用前后插入自定义逻辑,比如日志记录、权限验证、数据校验等。在day01的课程中,你可能会学习如何定义和使用拦截器,以及如何在配置文件中配置...
在"黑马Struts2视频(day4)"中,我们很可能会深入学习Struts2的核心概念和实际应用。 首先,我们来了解一下Struts2框架的基础知识。Struts2是Apache软件基金会的一个项目,它是对Struts1的升级,引入了许多新的...
根据提供的文件信息,我们可以推断出这份材料是关于Struts2框架的学习资料,主要面向的是达内培训的学生。Struts2是一个开源的Web应用程序框架,它继承了Struts1的优点,并在此基础上进行了改进,提供了更为丰富的...
Struts 2 是一个流行的 MVC(Model-View-Controller)框架,它提供了强大的控制层结构,用于处理用户请求、数据校验和业务逻辑的调用。Struts 2 提供了丰富的拦截器、结果类型和插件,使得开发更加灵活和便捷。 ...
7. **数据校验**:ActionForm对象可以进行数据校验,确保输入的数据符合业务规则。 8. **集成其他技术**:Struts可以与Spring、Hibernate等其他框架无缝集成,构建更强大的企业级应用。 学习Struts框架,首先需要...
此外,Struts2还引入了拦截器(Interceptor),这是一种强大的机制,允许在Action执行前后插入自定义的逻辑,比如日志记录、权限验证、数据校验等。通过在struts.xml中配置拦截器栈,可以实现复杂的应用场景。 在...
7. **拦截器(Interceptors)**:讲解Struts2中的拦截器机制,如何自定义拦截器,以及它们在处理请求、数据校验、日志记录等方面的应用。 8. **结果类型(Result Types)**:介绍各种内置的结果类型,如dispatcher...
3. CSRF防护:框架如Yii和Struts2都有内置的CSRF防御机制,通过对比POST数据中的令牌和cookie中的随机数据来防止CSRF攻击。 4. 权限校验:框架通过访问控制过滤器和拦截器实现权限校验,比如在控制器(controller)...
2. XSS防护:框架提供了对输入数据的净化功能,如YII中的CHtmlPurifier,利用HTMLPurifier清除恶意脚本。 3. CSRF防护:通过设置随机Token来验证表单提交,例如YII的CSRF防范机制和Struts2的token机制。 4. 权限...
2. **数据校验**:在Action执行前对用户提交的数据进行校验。 3. **日志记录**:记录用户请求信息和Action执行结果,便于追踪和调试。 4. **性能优化**:如缓存处理、结果集分页等。 Struts2_day4 的学习资料可能...
以上就是传智168期SSH网上商城day41~day45的笔记中涵盖的主要知识点,结合实际的商城开发案例,我们可以看到SSH框架在Java Web开发中的广泛应用,以及在环境搭建、数据库设计、前端校验和浏览器兼容性等方面需要注意...
它通过ActionForm对象收集用户输入的数据,确保了数据的校验和流转,使得业务逻辑与表现层分离,提高了代码的可维护性。 其次,Spring框架在系统中起到了核心协调者的作用。通过依赖注入,Spring可以管理所有Bean的...