JavaBean简单实例二:注册页面

JavaBean简单实例

简单注册页面

项目结构:

src
   com
       register
              Register.java WebContent     jsp
       register
              check.jsp
              index.jsp
              success.jsp

知识点:

JavaBean 是一种JAVA语言写成的可重用组件,是一个普通的java类。

编写Java类时,只需在类的方法命名上遵守以下规则就是一个JavaBean:

  • 如果类的成员变量的名字是xxx,那么为了更改或获取成员变量的值,即更改或获取属性,在类中可以使用两个方法:
    getXxx(),用来获取属性xxx。
    setXxx(),用来修改属性xxx.。
  • 对于boolean类型的成员变量,即布尔逻辑类型的属性,允许使用"is"代替上面的"get"和"set"。 
  • 类中方法的访问属性都必须是public的。 
  • 类中如果有构造方法,那么这个构造方法也是public的并且是无参数的。

在JSP页面使用JavaBean即用<jsp:useBean />标准动作:

<jsp:useBean id="personcount" class="com.javabeandemo.CountBean" scope="session"/>  
  • id:给一个JavaBean类设置一个ID并作为整个jsp页面的唯一标记;
  • class:要引用的JavaBean类的完整Java类名(一定要包括包名)。
  • type:指定要引用的JavaBean类需要实现一个Java接口或者JavaBean需要扩展的一个超类,type属性不是必须添加,可不要。
  • scope:指定这个JavaBean的使用范围,该属性可以取下面的4个值之一:page,request,session,application;这4个范围是依次变大的 

      page表示该JavaBean只有在当前页面内可用(保存在当前页面的PageContext内);

      request表示该JavaBean在当前的客户请求内有效(保存在ServletRequest对象内);

      session表示该JavaBean对当前httpSession内的所有页面都有效;

      application表示该JavaBean在整个应用内都有效。

 

使用<jsp:getProperty >用来获取指定的JavaBean属性值 

<jsp:getProperty name="personcount" property="count"/>
  • name:指定JavaBean的名称;
  • property:指定获取JavaBean中的哪个属性值。

 

Register.java

package com.register;
import java.util.HashMap;
import java.util.Map;

public class Register {
    private String name;
    private String age;
    private String email;
    private Map<String, String> errors=null;
    
    public Register()
    {
        this.name="";
        this.age="";
        this.email="";
        this.errors=new HashMap<String,String>();
    }
    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;  
    }  
    public boolean isValidate()
    {
        boolean flag = true;  
        if(!this.name.matches("\\w{6,15}")){  
            flag = false;  
            this.name = "";  
            this.errors.put("errname", "用户名是6~15位的字母或数字.");  
        }  
        if(!this.email.matches("\\w+@\\w+.\\w+\\.?\\w*")){  
            flag = false;  
            this.email = "";  
            this.errors.put("erremail", "输入的email地址不合法.");  
        }  
        if(!this.age.matches("\\d+")){  
            flag = false;  
            this.age = "";  
            this.errors.put("errage", "年龄只能是数字.");  
        }  
        return flag;  
    }
    public String getErrorMsg(String key)
    {
        String valueString=this.errors.get(key);
        return valueString==null?"":valueString;
    }
}
View Code

 

页面文件

index.jsp

 1 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
 2     pageEncoding="ISO-8859-1"%>
 3 <jsp:useBean id="reg" scope="request" class="com.register.Register" />
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 8 <title>register</title>
 9 </head>
10 <% request.setCharacterEncoding("GBK"); %>
11 <body>
12 <form action="check.jsp" method="post">  
13     name:<input type="text" name="name" value="<jsp:getProperty name="reg" property="name"/>"/><%=reg.getErrorMsg("errname")%><br>  
14     age:<input type="text" name="age" value="<jsp:getProperty name="reg" property="age"/>"/><%=reg.getErrorMsg("errage")%><br>  
15     email:<input type="text" name="email" value="<jsp:getProperty name="reg" property="email"/>"/><%=reg.getErrorMsg("erremail")%><br>  
16     <input type="submit" value="regist">  
17     <input type="reset" value="clear">  
18 </form>
19 </body>
20 </html>
View Code

check.jsp

 1 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
 2     pageEncoding="ISO-8859-1"%>
 3 <jsp:useBean id="reg" scope="request" class="com.register.Register" />
 4 <<jsp:setProperty property="*" name="reg"/>
 5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 6 <html>
 7 <head>
 8 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 9 <title>check</title>
10 </head>
11 <% request.setCharacterEncoding("GBK"); %>
12 <body>
13 <%
14     if(reg.isValidate()){
15 %>
16     <jsp:forward page="success.jsp"></jsp:forward>
17 <% }else{ %>
18     <jsp:forward page="index.jsp"></jsp:forward>
19 <% } %>
20 </body>
21 </html>
View Code

success.jsp

 1 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
 2     pageEncoding="ISO-8859-1"%>
 3 <jsp:useBean id="reg" scope="request" class="com.register.Register" />
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 8 <title>success</title>
 9 </head>
10 <% request.setCharacterEncoding("GBK"); %>
11 <body>
12 name: <jsp:getProperty property="name" name="reg"/>
13 age: <jsp:getProperty property="age" name="reg"/>
14 email: <jsp:getProperty property="email" name="reg"/>
15 </body>
16 </html>
View Code

 

posted @ 2016-04-28 14:38  undefined?  阅读(1118)  评论(0编辑  收藏  举报