范例操作:注册验证
实例操作:注册验证
本章目标
通过JSP + JavaBean完成一个注册用户的验证功能。
package cn.demo2; import java.util.HashMap; import java.util.Map; public class Register {//本类用于完成提交信息的验证 private String name;//定义name属性 private String age;//定义age属性,定义为String可以方便地使用正则验证 private String email;//定义Email属性 private Map<String,String> errors=null;//声明一个保存全部错误信息的Map集合 public Register(){//构造方法中初始化属性 this.name="";//初始化name属性 this.age="";//初始化age属性 this.email="";//初始化email属性 this.errors=new HashMap<String, String>();//实例化Map对象,保存错误信息 } public boolean isValidate(){//数据验证操作 boolean flag=true; if(!this.name.matches("\\w{6,15}")){//验证name的内容是否合法 flag=false;//修改标志位 this.name="";//将不合法的内容清除 errors.put("errname","用户名是6~15位的字母或数字。");//保存错误信息 } if(!this.email.matches("\\w+@\\w+\\.\\w+\\.?\\w")){//验证email的内容是否合法 flag=false;//修改标志位 this.email="";//将不合法的内容清除 errors.put("erremail","输入的email地址不合法");//保存错误信息 } if(!this.age.matches("\\d+")){//验证age的内容是否合法 flag=false;//修改标志位 this.age="";//将不合法的内容清除 errors.put("errage","年龄只能是数字");//保存错误信息 } return flag;//返回标志位 } public String getErrorMsg(String key){//取出对应的错误信息 String value=this.errors.get(key);//从Map中根据key取得对应的value return value==null?"":value;//返回value对应的内容 } /* * 封装方法 * */ public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }
运行效果 —— 填写注册信息
<%@ page language="java" contentType="text/html" pageEncoding="utf-8"%> <html> <head> <title>注册表单页</title> </head> <% request.setCharacterEncoding("utf-8"); //解决中文乱码 %> <jsp:useBean id="reg" scope="request" class="cn.demo2.Register" /><!-- request 范围的javaBean --> <body> <form action="check.jsp" method="post"> 用户名:<input type="text" name="name" value="<jsp:getProperty property="name" name="reg"/>"> <%=reg.getErrorMsg("errname") %><br /> 年 龄:<input type="text" name="age" value="<jsp:getProperty property="age" name="reg"/>"> <%=reg.getErrorMsg("errage") %><br /> E-Mail:<input type="text" name="email" value="<jsp:getProperty property="email" name="reg"/>"> <%=reg.getErrorMsg("erremail") %><br /> <input type="submit" value="注册"><input type="reset" value="重置"> </form> </body> </html>
效果图:
运行效果 —— 用户填写正确
<%@ page language="java" contentType="text/html" pageEncoding="utf-8"%> <html> <head> <title>信息验证页</title> </head> <% request.setCharacterEncoding("utf-8"); //解决中文乱码 %> <jsp:useBean id="reg" scope="request" class="cn.demo2.Register" /><!-- request 范围的javaBean --> <jsp:setProperty property="*" name="reg"/><!-- 为属性自动赋值 --> <body> <% if(reg.isValidate()){//进行验证 %> <jsp:forward page="success.jsp"></jsp:forward><!-- 跳转到成功页 --> <% }else{//验证失败 %> <jsp:forward page="index.jsp"></jsp:forward><!-- 跳转到注册页 --> <% } %> </body> </html>
效果图:
运行效果 —— 用户名和email填写不正确
<%@ page language="java" contentType="text/html" pageEncoding="utf-8"%> <html> <head> <title>信息验证页</title> </head> <% request.setCharacterEncoding("utf-8"); //解决中文乱码 %> <jsp:useBean id="reg" scope="request" class="cn.demo2.Register" /><!-- request 范围的javaBean --> <body> 用户名:<jsp:getProperty property="name" name="reg"/> 年 龄:<jsp:getProperty property="age" name="reg"/> E-mail:<jsp:getProperty property="email" name="reg"/> </body> </html>
效果图:
程序完成需要的页面
小结
本程序演示了一个简单的程序操作,JavaBean负责验证,JSP负责显示;
通过JavaBean可以进行一些操作的封装