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; } }
页面文件
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>
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>
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>