为了解决JSP中编写java代码的可读性差和重用性差的问题,sun在web应用开发中推出使用JSP+javabean技术,这种模式称为JSP1。由于JSP1模式只适合系统规模小,业务简单的web应用开发,为了解决这一问题,sun在java web开发中引入了MVC架构模式,这种模式就是JSP2模式。这种模式综合的利用servlet,JSP和javabean特点。
一个标准的javabean组件具有一下几个特征:
1.javabean类必须是一个公共的类,并将属性设置为public。
2.javabean类必须有一个空的构造函数。
3.一个javabean类不应该公共的实例变量,类变量都应该是private。
4.javabean应该是可序列化(serializable),即实现java.io.Serializable接口
为了能在JSP页面中使用javabean,SUN在JSP规范中提供了三种标准动作:
1.JSP2模式特征之< jsp:userBean>动作
要在JSP页面中使用标准动作与javabean实例通讯,首先要使用< jsp:userBean>动作实例话和使用bean:
格式:
- < jsp:userBean id="beanName" scope="page|request|session|application" class="className"/>
id:代表引用名,在其他地方,通过这个引用来访问bean的实例。这个id在一个页面中必须是一个唯一值。
class:指定javabean的包名及类名,容器可以在WEB-INF/class下去找到它。
scope:指定javabean生存的作用域,有4个可选值。默认是page(注意:他现在request范围内查找是否有id=“user”这个user属性,如果有则直接使用,如果没有就新建一个)
-page:bean的实例在当前页面中可用,页面完成后就删除实例。
-request:bean的实例保存在request作用域中,公用一个request作用域的多个JSP或者servlet可以共享这个bean的实例。
-session:bean的实例保存在session作用域中,用户在整个会话周期内就可以都可以使用这个对象。
-application:对当前的所有用户来说都可以使用这个javabean实例。
type:id引用的数据类型,默认情况下,它与class的类型相同。
beanName:使用java.beans.Beans.instantiate()方法从类文件中实例化Bean,不能与class属性同时使用。
2.JSP2模式特征之< jsp:getProperty>动作
允许JSP页面查询javabean的给定属性,可以把javabean的某一个属性取出来,并且在页面显示出来。通常和
< jsp:userName>动作一起使用。
语法格式:< jsp:getProperty name="beanName" property="propertyName">
name:是指在< jsp:userName>动作中指定的id名。
property:是返回javabean中相对应的属性名。
3.JSP2模式特征之< jsp:setProperty>动作