JavaBean--实例:注册验证

通过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>&nbsp;&nbsp;龄:<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>&nbsp;&nbsp;龄:<jsp:getProperty name="reg" property="age"/><br>
    E-MAIL:<jsp:getProperty name="reg" property="email"/><br>
</body>
</html>

 

总结:

1. 完全利用JavaBean的自动赋值以及request保存范围

2. JavaBean可以封装一些操作,此例不够好,以后慢慢深入

 

posted @ 2015-11-12 10:45  wujixing909  阅读(1575)  评论(0)    收藏  举报