JavaBean
将功能封装到java类的方法中,在jsp中定义此类,并调用其方法,这样的一个类叫做JavaBean。
作用
- 减轻jsp的复杂度
- 提高代码复用(同一段代码,在不同的地方用,而不是在不同的地方有相同的代码实现同一功能)
定义
JavaBean是一个java类。
- 类被public修饰,有一个被public修饰的无参构造器。
- 所有属性都被private修饰,但是有相应的set/get方法(boolean可以用is方法)
分类
- 封装业务逻辑的JavaBean(逻辑类:login.java)
- 封装数据的JavaBean(实体类:student.java)
用法
创建javabean
jsp文件中可以写java代码,所以可以向在java文件中那样创建java对象,这里说的是用jsp的方式创建java对象。如下
<jsp:useBean id = "对象名" class = "包名.类名" scope = "对象的有效范围">
</jsp:useBean>
这样,我们就创建了一个javabean对象,其中scope的参数有session(会话期间有效)、request(请求时有效,不同的请求beans是不同的)、application(服务器开启一直有效,所有用户共享这个beans)。
为了能使用javabean,需要将java文件编译后,放到WEB-INF/classes(如果没有自行创建)文件夹下与它所属package同名的文件夹下。
获取和修改beans的属性
创建完javabean对象,可以在java代码中使用,当然,也可以通过jsp的标签给属性赋值或者获取属性值。
getProperty标签:
获得属性值
<jsp:getProperty name = "Beans的名字" property = "Beans的属性"/>
/*或*/
<jsp:getProperty name = "Beans的名字" property = "Beans的属性">
</jsp:getProperty>
这样相当于调用了Beans的getXXX()方法并输出(property的参数一定是属性的名字,不要画蛇添足在后面加上括号)
setProperty标签:
设置属性值
//设置为一个表达式的值
<jsp:setProperty name = "Beans的名字" property = "Beans的属性" value = "<%=expression%> />
//设置为一个字符串
<jsp:setProperty name = "Beans的名字" property = "Beans的属性" value = 字符串 />
如果是第一种方式,表达式的类型必须和属性的类型相同。
如果是第二种方式,字符串会被自动转化成与beans属性相同的类型(如果可以)。
通过html表单设置beans的属性:
<jsp:setProperty name = "Beans的名字" property = "*"/>
// * 是通配符,选择全部的意思
注意点:
- 要求表单参数名字必须与Beans属性的名字相同
- JSP引擎会自动将字符串转换为Beans属性的类型
- 该标签不用在具体指定Beans属性的值将对应表单中哪个参数指定的值,系统会自动根据名字进行匹配对应。