Struts2输入校验之validate输入校验方式

一.在Web系统项目中有大量的视图页面需要用户自行输入很多数据。这些数据的类型有很多种。为了防止某些客户的恶意输入以及对Web项目的恶意破坏,必须引入输入校验,像Windows操作系统的防火墙一样把一些垃圾数据过滤掉,挡在Web系统之外。接下来就来介绍一下validate输入校验方式:

1.validate方法进行输入校验:这里直接附上一个简单的用户注册功能具体介绍利用validate方法对数字、字符串、日期等类型数据进行输入校验方式介绍:

(1).首先,新建一个Struts2项目InputValidate,项目结构图如下:

(2).新建一个注册页面,register.jsp页面,用于输入校验的输入数据,代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ taglib uri="/struts-tags" prefix="s"%><%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP 'register.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!–<link rel="stylesheet" type="text/css" href="styles.css">–></head><body><s:form action="register" namespace="/"><s:textfield name="username" label="用户名"></s:textfield><s:password name="password" label="密码"></s:password><s:password name="password1" label="密码确认"></s:password><s:textfield name="birthday" label="生日"></s:textfield><s:textfield name="mobile" label="手机号码"></s:textfield><s:textfield name="age" label="年龄"></s:textfield><s:submit value="注册"></s:submit></s:form></body></html>

(3).新建一个Action类,RegisterAction类,代码如下:

package com.gk.action;import java.util.Date;import com.opensymphony.xwork2.ActionSupport;public class RegisterAction extends ActionSupport {private String username;private String password;private String password1;private Date birthday;private String mobile;private int age;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;}public String getPassword1() {return password1;}public void setPassword1(String password1) {this.password1 = password1;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public String getMobile() {return mobile;}public void setMobile(String mobile) {this.mobile = mobile;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String execute() {return SUCCESS;}public void validate() {if (getUsername() == null || getUsername().trim().equals("")) {addFieldError("username", "请输入用户名");}if (getPassword() == null || getPassword().trim().equals("")) {addFieldError("password", "请输入密码");}if (getPassword1() == null || getPassword1().trim().equals("")) {addFieldError("password1", "请输入确认密码");}if (!getPassword().equals(getPassword1())) {addFieldError("password", "密码和输入密码不一致");}if (getBirthday() == null) {addFieldError("birthday", "请输入生日日期");} else if (getBirthday().after(new Date())) {addFieldError("birthday", "请不要输入未来日期");}if (getMobile().length() != 11) {addFieldError("mobile", "请输入正确的手机号码");}if (getAge() < 1 || getAge() > 120) {addFieldError("age", "请输入正确年龄");}}}

(4).接着配置一下struts.xml文件,成功跳转success.jsp页面,代码如下:

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"""><struts><constant name="struts.enable.DynamicMethodInvocation" value="true"></constant><constant name="struts.devMode" value="true"></constant><package name="input" namespace="/" extends="struts-default"><action name="register" class="com.gk.action.RegisterAction"><result name="success">/success.jsp</result><result name="input">/register.jsp</result></action></package></struts>

用最多的梦面对未来

Struts2输入校验之validate输入校验方式

相关文章:

你感兴趣的文章:

标签云: