JavaBean在Jsp中的引用:
1.用<jsp:useBean>标记:
<jsp:useBean id="name" class="classname" scope="page|request|session|application"/>
id:代表jsp页面中的实例对象 通过这个对象引用类中的成员,如,id="wq", wq.成员();
class: 代表JavaBean类,如: class="com.Test",引用com包中的Test类
scope:指明了javabean的生存时间
2.用<jsp:setProperty>标记:
功能:将请求页面中的表单值赋值/或者自己想设置的值 给JavaBean中的属性赋值
<jsp:setProperty name="beanName" last_syntax />
1.name:表示 已经存在并且具有一定生存范围的JavaBean实例,例如上面的 wq。
2.last_syntax:表示了四种不同的语法:
(1)property="*" (2)property="propertyName"
(3)property="propertyName" param="parameterName"
(4)property="propertyName" value="value"
property:是一个很重要的属性,它指定想要设定值的 JavaBean 中的成员名,不建议使用*。
param:根据我的理解,他是请求页面的 表单中的 txt 属性名。
value:代表了直接赋值给 property的属性
3.<jsp:getProperty>标签 与<jsp:setProperty>功能相反,用法一样:
<jsp:getProperty name="BeanName" property="想要获取属性值的那个属性的名字">
JavaBean的生命周期
JSP中JavaBean是通过标签<jsp:useBean>来声明实现的,基本语法如下:<jsp:userBean id="beanName" class="className" scope="page/request/session/application></jsp:userBean>。JavaBean的生命通过scope属性来描述的,也就是JavaBean的实例id在JSP程序中存在的范围。下面看看具体的scope四个值的含义:
page-JavaBean对象保存在pageContext对象中,有page范围JavaBean实例只能在当前创建这个JavaBean的JSP文件中进行操作, 这个实例只有在请求返回给客户端后或者转移到另外的JSP页面后才会释放掉。page范围的JavaBean常用于进行一次性操作的JavaBean,这样的Bean用的最多,比如大部分表单提交,Bean的一些计算处理等都可以使用page范围的JavaBean。
request-JavaBean对象保存在request对象中,有request范围的JavaBean实例可以在处理请求所有JSP页面中都存在,这个对象只有在请求全部处理完毕后才会被释放掉,request范围的JavaBean常用于共享同一次请求的JSP页面中,比如判断用户登录功能,如果用户名密码合法就可以forward到一个合法页面中,否则就forward到一个出错页面,当然转移后的页面仍然能够得到用户的输入。
session-JavaBean对象是保存在session范围的JavaBean实例的生存周期是整个session,只有当session过期后才能释放掉,这样常用于共享同一session的JSP页面,比如购物车一般就是放在session中的或者登陆后的用户信息等也可以在session中,注意<%@page标签中不要设置session=false,否则在这个JSP页面中session将不会起作用,幸好JSP默认session=true,所以可以不必管它了。
application-JavaBean对象保存在application对象中,有application范围的JavaBean对象的生存周期是整个application。这就意味着这样的JavaBean的生存周期是整个应用程序,当web Server停掉才会消失掉。这样的常用于共享同一application的JSP程序中,比如程序中一些经常用到配置东西如数据库连接URL,全局的计数器或者是聊天室中人员信息等。