javaBean
是使用java语言开发的一个可重用的组件,在jsp中的开发可以使用javaBean减少重复代码
优点:
1、可将
HTML和java代码分离,这主要是为了日后维护的方便。
2、可利用javaBean的优点。将
常用的程序写成javaBean组件,不用再写相同
程序。
要求:
1.所有的类必须放在一个包中,在WEB中没有包的是不存在的;
2.所有的类必须声明为public class,这样才能够被外部所访问;
3.类中的所有属性都必须封装,即:使用private声明;
4.封装的属性如果需要被外部所操作,则必须编写对应的setter,getter方法;
5.一个javaBean中至少存在一个无参构造方法,此为jsp的标签所用。
简单名词:
1.VO:值对象,存放所有的传递数据的操作上;
2.POJO:简单java对象;
3.TO:传输对象,一个类必须实现serializable接口后才称为传输对象;
使用
指令
主要属性:
。id:表示实例化对象的名称
。scope:表示此对象保存的范围,一共有四种范围:page,request,session,application。
设置:
标签可以完成所有请求参数的设置,自动调用javabean中的setter()方法,标签语法如下:
1.
:表示操作指定javabean中的属性,里面定义了两个属性
name:表示使用javabean中的id的定义
property:表示的是设置里面的内容,如果为*则表示自动匹配,与表单想匹配。
2.
3.
例:
<%request.setCharacterEncoding("GBK"); %>
:<%=nm.getName() %>
年龄:<%=nm.getAge() %>
获取:
会自动调用JavaBean中的getter()方法。只有一种语法形式:
page:只在一个页面创建对象,离开这个页面,对象就消失
request:可以在服务器端跳转
session:可以在一个浏览器中生存,浏览器关闭,对象将消失
application:在服务器生存,服务器重启后,对象将消失
删除:
1.删除page范围的javabean可以使用
pageContext.removeAttribute(javabean名称)
2.删除request范围的javabean可以使用
request.removeAttribute(javabean名称)
3.删除session范围的javabean可以使用
session.removeAttribute(javabean名称)
4.删除application范围的javabean可以使用
application.removeAttribute(javabean名称)
例:session.removeAttribute("con");删除con对象
package com.demo;
import java.util.HashMap;
import java.util.Map;
public
class Register {
private String name;
private String age;
private String email;
private Maperrors = null;
public Register(){
this.errors = new HashMap();
this.age="";
this.email="";
this.name="";
}
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", "输入的邮件地址不合法。");
}
if(!this.age.matches("\\d+")){
flag = false;
this.age= "";
this.errors.put("errage", "年龄只能是数字。");
}
return flag;
}
public String getErrorMsg(String key){
String value = this.errors.get(key);
return value==null?"":value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String