JSP-JavaBean

在JSP开发过程中有两张开发模型可供选择:
  • JSP与JavaBean相结合,这种方式称为Model1
  • JSP,JavaBean与Servlet相结合,这种方式称为Model2
JavaBean简介
JavaBean是用于封装某种业务逻辑或对象的Java类,此类具有特定的功能,即它是一个可重用的Java软件组件模型。由于这些组建模型都具有特定的功能,将其进行合理的组织后,可以快速生成一个全新的程序,实现代码的重用。JavaBean的功能是没有任何限制的,对于任何可以使用Java代码实现的部分或需求的对象,都可以使用JavaBean进行封装。
JavaBean分为可视化JavaBean和不可视化JavaBean,主要采用非可视化JavaBean。
在JSP中,可以通过JSP提供的动态标签来操作JavaBean对象。常用如下:
  • <jsp:useBean> 用于在JSP页面中创建一个JavaBean的实例,并通过属性的设置将此实例存放到JSP指定的范围内。
  • <jsp:setPorperty>用于对JavaBean属性进行赋值,与<jsp:useBean>配合使用,但要求该属性提供set方法。
  • <jsp:getProperty>用于获取JavaBean中的属性值,但要求该属性必须有相对应的get方法
<jsp:useBean> 
语法格式:
    
    
<jsp:useBean id="变量名"
scope="page|request|session}application"
{ class="完整类名|type="数据类型"|class="完整类名”type="数据类型"|BeanName="完整类名" type="数据类型"}
/>
scope设置JavaBean作用域,默认为page。 class属性与BeanName属性不同时存在。{}内为选择内容
用法:创建JavaBean后,在.jsp页面中加入
<jsp:useBean id="自定义实例化的变量名" class="com.jsoft.JavaBean类名></jsp:useBean>
<jsp:setPorperty>
语法格式如下:
   
   
<jsp:setPorperty
name="实例名"
{ property = "*" | property = "属性名" | property = "属性名" param = "参数名" | property = "属性名" value = "值"
}/>
实例名=<jsp:useBean>标签中的id设置的变量名。property属性取值有两种:"*"和JavaBean的属性名称
用法:在 <jsp:useBean id="自定义实例化的变量名" class="com.jsoft.JavaBean类名/>创建完实例化对象之后,对该实例化对象的属性进行赋值。
<jsp:useBean id="user" class="com.jsoft.User"/>
<jsp:setProperty  name="user"  property="username" value="zoe"/>
同时可以通过<%=user.getUsername()%>来显示该属性的值。
<jsp:getProperty>
语法格式如下:
   
   
<jsp:getProperty name="实例名" property="属性名"/>
<jsp:useBean id="user" class="com.jsoft.User"/>
<jsp:setProperty  name="user"  property="username" value="zoe"/>
<jsp:getProperty name="user"  property="username"/>可输出username的值
JavaBean的作用域
  • page范围:与当前页面相对应,JavaBean的生命周期存在一个页面中,当页面关闭时,JavaBean被注销。
  • request:与JSP的request对象生命周期相对应,当request对象销毁时JavaBean被销毁。
  • session:与JSP的session对象生命周期相对应,当session对象销毁时JavaBean被销毁。
  • application:与JSP的application对象生命周期相对应,在各个用户与服务器之间共享,当服务器关闭时JavaBean被销毁。
例:JavaBean在session范围内与application范围的比较
    
    
package com.jsoft.util;
 
public class Counter {
private int count=0;//访问数量
public int getCount(){
return ++count;
}
}
     
     
<body>
<jsp:useBean id="counter_session" class="com.jsoft.util.Counter" scope="session"/>
<jsp:useBean id="counter_application" class="com.jsoft.util.Counter" scope="application"/>
<table align="center" width="350" border="1">
<tr>
<td colspan="2" align="center"><br><h1>JavaBean</h1></td>
</tr>
<tr>
<td align="right" width="30%">session</td>
<td ><jsp:getProperty property="count" name="counter_session"/></td>
</tr>
<tr>
<td align="right">application</td>
<td ><jsp:getProperty property="count" name="counter_application"/></td>
</tr>
</table>
</body>

运行结果:刷新页面值不断增加。开启一个新的浏览器窗口时,session生命周期结束与之对应的 Counter对象销毁 ,而application范围中的Counter对象仍然存在。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值