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页面访问。也就是所有用户都可以使用。