javabean 中的scope取值
首先,什么是java bean?
JavaBean是JAVA语言写成的可重用软件组件,是一个java类,通过封装属性和方法成为具有某种功能或者处理某种业务的对象
提供可以调用的方法、提供的可读写的属性,可向外部发送的或从外部接收的事件
java bean 的编写及使用
1、定义bean,简单例子
public class PC {
private String pinpai,xinghao,riqi;
public String getPinpai() {
return pinpai; }
public void setPinpai(String pinpai) { //定义setters和getters
this.pinpai = pinpai;
}
public String getXinghao() {
return xinghao;
}
public void setXinghao(String xinghao) {
this.xinghao = xinghao;
}
public String getRiqi() {
return riqi;
}
public void setRiqi(String riqi) {
this.riqi = riqi;
}
}
2、调用bean
<jsp:useBean> 标签可以在JSP中声明一个JavaBean,然后使用。声明后,JavaBean对象就成了脚本变量,可以通过脚本元素或其他自定义标签来访问。在 <jsp:useBean> 标签主体中使用 <jsp:getProperty/> 动作标记来调用 getter 方法,使用 <jsp:setProperty/> 动作标记来调用 setter 方法
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="com.jspDemo.PC" %>
<jsp:useBean id="computer" class="com.jspDemo.PC" scope="request"></jsp:useBean>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>inputAndShow</title>
</head>
<body>
<form action="" method="post">
<span>计算机品牌:</span><input type="text" name=pinpai><br>
<span>计算机型号:</span><input type="text" name=xinghao><br>
<span>生产日期:</span><input type="text" name=riqi><br>
<input type="submit" value="提交">
</form>
<jsp:setProperty property="*" name="computer"/>
<table>
<tr>
<th>计算机品牌</th>
<th>计算机型号</th>
<th>生产日期</th>
</tr>
<tr>
<td><jsp:getProperty property="pinpai" name="computer"/></td>
<td><jsp:getProperty property="xinghao" name="computer"/></td>
<td><jsp:getProperty property="riqi" name="computer"/></td>
</tr>
</table>
</body>
</html>
java bean 的useBean 标记中scope的取值
<jsp:useBean id="idName" class="javaBean的路径" scope="scope的取值(page/request/session/application)"></jsp:useBean>
不同的取值意味着bean的生命周期是不同的
(1)page(有效期限是当前页面,页面关闭即失效)表示将JavaBean实例对象存储在PageContext对象中,作用范围是当前JSP页面有效。
(2)request (
有效期限是request期间,当request被响应后便结束,对之后的请求没影响)表示将JavaBean实例对象存储在Servlet Request对象中,存储在
request对象中的JavaBean对象可以被属于同一个请求的所有Servlet和JSP页面访问。
(3)session (有效期限是用户会话期间,也就是session的生命周期结束后才结束,不同用户的session间不会相互影响)表示将JavaBean实例对象存储在HttpSession对象中,存储在HttpSession对象中的JavaBean对象可以被属于同一个会话的所有Servlet和JSP页面访问,此设置要求当前JSP页面支持Session,即没有将page指令的session属性设置为false。也就是对一个特定用户有效,一个http会话。
(4)application(有效期限是最长的,服务器关闭有限期限才结束,可以在不同用户间共享)表示将JavaBean实例对象存储在ServletContext对象中,存储在ServletContext对象中的JavaBean对象可以被同一个Web应用程序中的所有Servlet和JSP页面访问。也就是所有用户都可以使用。