第9章 JavaBeans
9.3 useBean动作
一共有三个动作:useBean,getProperty和setProperty。useBean动作是用来生成JavaBeans对象的。
useBean动作的动作如下:
<jsp:useBean class="webbook.chapter9.Book" id="book" scope="page" />
class属性用来指定JavaBeans的类型,Id用于指定生成的JavaBeans对象的名称,JavaBeans对象成为Servlet中的一个对象。在执行的时候,Web容器会检查这个JavaBeans的对象是否已经存在,如果存在就使用存在的JavaBeans对象;反之生成一个新的JavaBeans对象。Scope属性指定JavaBeans对象的有效范围,默认的有效范围为Page。
9.4 setPorperty动作:
setProperty动作用于给JavaBeans的属性设定数值,完整的语法如下:
<jsp:setPorperty name="book" property="name" value="javase应用程序设计">
name属性说明需要使用哪个JavaBeans对象.
property属性说明需要对JavaBeans的哪个属性赋值。
value的值就是所赋的值。
如果property属性设定为“*”,表示将自动对应JavaBeans属性的赋值方法进行赋值。
9.5 getProperty动作:
getProperty动作用来输出JavaBeans对象的属性值。
使用getProperty动作的代码片段:
<jsp:getProperty name="book" property="name" />
name属性说明需要使用哪个JavaBeans对象。
property属性说明需要读取JavaBeans对象的哪个属性的值。
9.6 JavaBeans对象的作用范围:
scope属性进行作用范围的设置,四种作用范围:page,request,session和application。默认的JavaBeans对象的作用范围是page。
9.6.1 page Scope
如果JavaBeans的作用范围设置成page,这个JavaBeans的作用范围当前这个JSP页面:
<jsp:useBean id="book" scope="page" class="webbook,chapter9.Book" />
9.6.2 requestScope
当JavaBeans对象的作用范围设置成request,表示这个对象在同一个request处理期间可以被共享使用(包括用<jsp:forward>动作转到其他JSP页面),并且保证线程安全。
<jsp:useBean id="book" scope="request" class="webbook,chapter9.Book">
9.6.3 sessionScope
session设定JavaBeans对象则限于同一次会话内,JavaBeans对象可以被该应用的不同页面所共享。
<jsp:useBean id="book" scope="session" class="webbook.chapter9.Book" />
9.7 使用JavaBeans的好处:
同时JSP网页中使用可以方便的通过<jspUseBean>,<jsp:setProperty>和<jsp:getProperty>动作操作JavaBeans对象。但是页面中还是有少量的Java代码出现。如果要将革命进行到底,让页面中基本不出现Java代码,就需要使用后两章要讲解的EL表达式和定制标记库的内容。
这个JavaBean的所有属性赋值,所以使用了property="*",它会自动匹配方法对JavaBeans的属性进行赋值,就是表单参数名和JavaBean的setter方法名的后半段(去掉set后的部分,首字母改为小写)进行匹配。这种匹配是通过使用Java反射机制来实现的,先根据表单参数名构造setter方法名,再通过反射机制查找并调用JavaBean对象上的相应成员方法,如果找不到也不抛出异常。
9.3 useBean动作
一共有三个动作:useBean,getProperty和setProperty。useBean动作是用来生成JavaBeans对象的。
useBean动作的动作如下:
<jsp:useBean class="webbook.chapter9.Book" id="book" scope="page" />
class属性用来指定JavaBeans的类型,Id用于指定生成的JavaBeans对象的名称,JavaBeans对象成为Servlet中的一个对象。在执行的时候,Web容器会检查这个JavaBeans的对象是否已经存在,如果存在就使用存在的JavaBeans对象;反之生成一个新的JavaBeans对象。Scope属性指定JavaBeans对象的有效范围,默认的有效范围为Page。
9.4 setPorperty动作:
setProperty动作用于给JavaBeans的属性设定数值,完整的语法如下:
<jsp:setPorperty name="book" property="name" value="javase应用程序设计">
name属性说明需要使用哪个JavaBeans对象.
property属性说明需要对JavaBeans的哪个属性赋值。
value的值就是所赋的值。
如果property属性设定为“*”,表示将自动对应JavaBeans属性的赋值方法进行赋值。
9.5 getProperty动作:
getProperty动作用来输出JavaBeans对象的属性值。
使用getProperty动作的代码片段:
<jsp:getProperty name="book" property="name" />
name属性说明需要使用哪个JavaBeans对象。
property属性说明需要读取JavaBeans对象的哪个属性的值。
9.6 JavaBeans对象的作用范围:
scope属性进行作用范围的设置,四种作用范围:page,request,session和application。默认的JavaBeans对象的作用范围是page。
9.6.1 page Scope
如果JavaBeans的作用范围设置成page,这个JavaBeans的作用范围当前这个JSP页面:
<jsp:useBean id="book" scope="page" class="webbook,chapter9.Book" />
9.6.2 requestScope
当JavaBeans对象的作用范围设置成request,表示这个对象在同一个request处理期间可以被共享使用(包括用<jsp:forward>动作转到其他JSP页面),并且保证线程安全。
<jsp:useBean id="book" scope="request" class="webbook,chapter9.Book">
9.6.3 sessionScope
session设定JavaBeans对象则限于同一次会话内,JavaBeans对象可以被该应用的不同页面所共享。
<jsp:useBean id="book" scope="session" class="webbook.chapter9.Book" />
9.7 使用JavaBeans的好处:
同时JSP网页中使用可以方便的通过<jspUseBean>,<jsp:setProperty>和<jsp:getProperty>动作操作JavaBeans对象。但是页面中还是有少量的Java代码出现。如果要将革命进行到底,让页面中基本不出现Java代码,就需要使用后两章要讲解的EL表达式和定制标记库的内容。
这个JavaBean的所有属性赋值,所以使用了property="*",它会自动匹配方法对JavaBeans的属性进行赋值,就是表单参数名和JavaBean的setter方法名的后半段(去掉set后的部分,首字母改为小写)进行匹配。这种匹配是通过使用Java反射机制来实现的,先根据表单参数名构造setter方法名,再通过反射机制查找并调用JavaBean对象上的相应成员方法,如果找不到也不抛出异常。