jsp:bean标签中scope属性的四种属性值理解

来源:互联网 发布:加油站销售软件 编辑:程序博客网 时间:2024/06/05 08:02

如下程序:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<jsp:useBean id="myDate" scope="page" class="java.util.Date">
  这是一个标签体 
 </jsp:useBean>

这四个属性依次是:page,request,session,application(默认属性值是page)

这四个属性值所不同的就是usebean的生命周期。其中个人感觉而言page和request区别不大,下面来简要谈谈page、application、session的区别。

1、page的生命周期是创建对象开始,到本页执行结束。当下次在执行本页时(比如刷新操作)又重新创建,执行结束后有,这个对象所占的资源被释放。

2、session的生命周期是创建对象开始,到本次会话结束。什么是会话?可以说就是从第一次运行这个程序,到关闭服务器这段时间。打个形象的比方,当你打开浏览器,在地址栏输入:http:\\localhost:8080\......时,就好比要要会话的两个人见面了,不过在这儿,这两个人一个是tomcat服务器,一个是浏览器。因为运行JSP程序无非就是和tomcat服务器之间进行信息交流,所以第一次运行这个jsp:bean所在的文件,就相当于两个人进行了第一次交流。只有当这个浏览器关闭,相当于一方转身,这次会话才算结束,直到此时,对象资源才会被释放。

3、application的生命周期是服务器其停止间的时间。

理解了上面这些,就不那么理解下面这个现象:如下程序所示:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<jsp:useBean id="myDate" scope="page" class="java.util.Date">
  这是一个标签体
</jsp:useBean>

当时page、request属性时,每次刷新都会有 “这是一个标签体”出现。

当时session属性时,执行第一次有 “这是一个标签体”,刷新之后就没有了。要想重新出现,要将浏览器重启一次。

当时session属性时,执行第一次有 “这是一个标签体”,刷新之后就没有了。要想重新出现,要将tomcat服务器重启一次。

 

 

原创粉丝点击