通过JSP+JavaBean完成一个注册用户的验证功能:
index.jsp: 注册信息填写页,同时对错误数据进行错误提示
check.jsp:将输入表单数据自动赋值给JavaBean,同时验证,失败返回index
success.jsp:成功页,显示用户注册成功信息
Register.java:注册使用的JavaBean,可以接受参数,同时判断,返回错误结果
注意:由于错误不固定,所以使用Map接口保存所有的错误信息。
Register.java:
package cn.mldn.lxh.demo ; import java.util.HashMap ; import java.util.Map ; public class Register { private String name ; private String age ; // 这种接收参数的时候如果是用户自己输入的情况下,就是使用String private String email ; private Map<String,String> errors = null ; public Register(){ this.name = "" ; this.age = "" ; this.email = "" ; this.errors = new HashMap<String,String>() ; } public boolean isValidate(){ boolean flag = true ; if(!this.name.matches("\w{6,15}")){ flag = false ; this.name = "" ; // 清空原本的name内容 this.errors.put("errname","用户名是6~15位的字母或数字。") ; } if(!this.email.matches("\w+@\w+\.\w+\.?\w*")){ flag = false ; this.email = "" ; // 清空原本的name内容 this.errors.put("erremail","输入的email地址不合法。") ; } if(!this.age.matches("\d+")){ flag = false ; this.age = "" ; // 清空原本的name内容 this.errors.put("errage","年龄只能是数字。") ; } return flag ; } public String getErrorMsg(String key){ String value = this.errors.get(key) ; return value==null?"":value ; } public void setName(String name){ this.name = name ; } public void setAge(String age){ this.age = age ; } public void setEmail(String email){ this.email = email ; } public String getName(){ return this.name ; } public String getAge(){ return this.age ; } public String getEmail(){ return this.email ; } }
index.jsp:
<%@ page contentType="text/html" pageEncoding="GBK"%> <html> <head><title>www.mldnjava.cn,MLDN高端Java培训</title></head> <% request.setCharacterEncoding("GBK") ; %> <jsp:useBean id="reg" scope="request" class="cn.mldn.lxh.demo.Register"/> <body> <form action="check.jsp" method="post"> 用户名:<input type="text" name="name" value="<jsp:getProperty name="reg" property="name"/>"/><%=reg.getErrorMsg("errname")%><br> 年 龄:<input type="text" name="age" value="<jsp:getProperty name="reg" property="age"/>"/><%=reg.getErrorMsg("errage")%><br> E-MAIL:<input type="text" name="email" value="<jsp:getProperty name="reg" property="email"/>"/><%=reg.getErrorMsg("erremail")%><br> <input type="submit" value="注册"> <input type="reset" value="重置"> </form> </body> </html>
check.jsp:
<%@ page contentType="text/html" pageEncoding="GBK"%> <html> <head><title>www.mldnjava.cn,MLDN高端Java培训</title></head> <% request.setCharacterEncoding("GBK") ; %> <jsp:useBean id="reg" scope="request" class="cn.mldn.lxh.demo.Register"/> <jsp:setProperty name="reg" property="*"/> <body> <% if(reg.isValidate()){ %> <jsp:forward page="success.jsp"/> <% } else { %> <jsp:forward page="index.jsp"/> <% } %> </body> </html>
success.jsp:
<%@ page contentType="text/html" pageEncoding="GBK"%> <html> <head><title>www.mldnjava.cn,MLDN高端Java培训</title></head> <% request.setCharacterEncoding("GBK") ; %> <jsp:useBean id="reg" scope="request" class="cn.mldn.lxh.demo.Register"/> <body> 用户名:<jsp:getProperty name="reg" property="name"/><br> 年 龄:<jsp:getProperty name="reg" property="age"/><br> E-MAIL:<jsp:getProperty name="reg" property="email"/><br> </body> </html>
总结:
1. 完全利用JavaBean的自动赋值以及request保存范围
2. JavaBean可以封装一些操作,此例不够好,以后慢慢深入