`

Struts2day03Struts2.0提供的数据格式校验

 
阅读更多

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>
分享到:
评论

相关推荐

    struts2框架2016版资料day01

    5. **拦截器**:拦截器是Struts2的一大特色,它允许开发者在Action调用前后插入自定义逻辑,比如日志记录、权限验证、数据校验等。在day01的课程中,你可能会学习如何定义和使用拦截器,以及如何在配置文件中配置...

    黑马Struts2视频(day4)

    在"黑马Struts2视频(day4)"中,我们很可能会深入学习Struts2的核心概念和实际应用。 首先,我们来了解一下Struts2框架的基础知识。Struts2是Apache软件基金会的一个项目,它是对Struts1的升级,引入了许多新的...

    达内培训机密资料_struts2_day02(3)

    根据提供的文件信息,我们可以推断出这份材料是关于Struts2框架的学习资料,主要面向的是达内培训的学生。Struts2是一个开源的Web应用程序框架,它继承了Struts1的优点,并在此基础上进行了改进,提供了更为丰富的...

    Struts 2 + Spring 2 + JPA + AJAX 示例

    Struts 2 是一个流行的 MVC(Model-View-Controller)框架,它提供了强大的控制层结构,用于处理用户请求、数据校验和业务逻辑的调用。Struts 2 提供了丰富的拦截器、结果类型和插件,使得开发更加灵活和便捷。 ...

    JAVA Struts 框架 代码示例

    7. **数据校验**:ActionForm对象可以进行数据校验,确保输入的数据符合业务规则。 8. **集成其他技术**:Struts可以与Spring、Hibernate等其他框架无缝集成,构建更强大的企业级应用。 学习Struts框架,首先需要...

    达内Java web day12am代码

    此外,Struts2还引入了拦截器(Interceptor),这是一种强大的机制,允许在Action执行前后插入自定义的逻辑,比如日志记录、权限验证、数据校验等。通过在struts.xml中配置拦截器栈,可以实现复杂的应用场景。 在...

    java资源文件

    7. **拦截器(Interceptors)**:讲解Struts2中的拦截器机制,如何自定义拦截器,以及它们在处理请求、数据校验、日志记录等方面的应用。 8. **结果类型(Result Types)**:介绍各种内置的结果类型,如dispatcher...

    WEB框架0day漏洞的发掘及分析经验分享.pdf

    3. CSRF防护:框架如Yii和Struts2都有内置的CSRF防御机制,通过对比POST数据中的令牌和cookie中的随机数据来防止CSRF攻击。 4. 权限校验:框架通过访问控制过滤器和拦截器实现权限校验,比如在控制器(controller)...

    藏经阁WEB框架0day漏洞的发掘及分析经验分享.pdf

    2. XSS防护:框架提供了对输入数据的净化功能,如YII中的CHtmlPurifier,利用HTMLPurifier清除恶意脚本。 3. CSRF防护:通过设置随机Token来验证表单提交,例如YII的CSRF防范机制和Struts2的token机制。 4. 权限...

    拦截器下载

    2. **数据校验**:在Action执行前对用户提交的数据进行校验。 3. **日志记录**:记录用户请求信息和Action执行结果,便于追踪和调试。 4. **性能优化**:如缓存处理、结果集分页等。 Struts2_day4 的学习资料可能...

    传智168期 SSH网上商城笔记day41~day45

    以上就是传智168期SSH网上商城day41~day45的笔记中涵盖的主要知识点,结合实际的商城开发案例,我们可以看到SSH框架在Java Web开发中的广泛应用,以及在环境搭建、数据库设计、前端校验和浏览器兼容性等方面需要注意...

    网络招聘商管理系统管理系统

    它通过ActionForm对象收集用户输入的数据,确保了数据的校验和流转,使得业务逻辑与表现层分离,提高了代码的可维护性。 其次,Spring框架在系统中起到了核心协调者的作用。通过依赖注入,Spring可以管理所有Bean的...

Global site tag (gtag.js) - Google Analytics