`
g535879
  • 浏览: 2679 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

关于JavaBean的scope

    博客分类:
  • jsp
阅读更多
对于JSP 程序而言,使用JavaBeans  组件不仅可以封装许多信息,而且还可以将一些

数据处理的逻辑隐藏到JavaBeans  的内部,除此之外,我们还可以设定JavaBeans  的Scope

属性,使得JavaBeans  组件对于不同的任务具有不同的生命周期和不同的使用范围。在

前面我们已经提到过Scope属性具有四个可能的值分别是application 、session 、request、

page分别代表JavaBeans  的四种不同的生命周期和四种不同的使用范围。bean只有在它定义的范围里才能使用,在它的活动范围外将无法访问到它。JSP为它设定的范围有:

page:  bean的缺省使用范围

request:作用于任何相同请求的JSP文件中,直到页面执行完毕向客户端发回响应或在此这之前已通过某种方式(如重定向、链接等方式)转到另一个文件为止。还可通过使用    Request对象访问bean,如request.getAttribute(beanName)

session:作用于整个session的生存周期内,在session的生存周期内,对此bean属性的任何改动,都会影响到在此session内的另一page、另一request里对此bean的调用。但必须在创建此bean的文件里事先用page指令指定了session=true。

application:作用于整个application的生存周期内,在application周期内,对此bean属性的任何改动,都会影响到此application内另一page、另一request以及另一session里对此bean的调用。

下面我们用一个最为简单的例子来搞明白它了。

例子很简单,Bean的功能为取当前时间,其代码为Common.java,其源程序如下:

package example3;

import java.util.Date;

import java.text.*;

public class Common

{

Date d=new Date();

public String now(String s)

{

SimpleDateFormat formatter = newSimpleDateFormat(s);

return formatter.format(d);

}

}

测试页面的代码为:

date.jsp

<jsp:useBeanscope="page" id="dt" class="example.Common"/>

<%

out.print(dt.now("yyyy-mm-dd"));

%>

输出结果:



总结:

1、当scope=application时,我们浏览date.jsp,这时显示出了系统时间。可是不管我们怎么刷新,重新打开一次浏览器,甚至换台机器,它显示的时间始终不变,都是当初的时间(即bean刚创建时得到的系统时间),因为scope=application,所以Bean的实例在内存中只有一份,此时只要不重新启动WEB服务,输出不会变化。

2、当scope=session时,浏览date.jsp,刷新时显示也不会变化。可是当我们重新打开一浏览器,即一个新的session,系统便再次创建Bean的实例,取得当前系统时间,这时将得到正确的时间。同样,再次刷新新打开的页面(新的session),显示也不会变化。

3、当scope=page/request(它们的区别只在于包含静态文件时,此处无区别)时,不断刷新页面将不断得到当前系统时间。

以上可以看出不同的scope,Bean有不同的作用域。使用时一定注意,不要将得到经常变动的Bean的scope设为application或session,那将得到不正确的结果.
分享到:
评论

相关推荐

    jsp获取javaBean数据+scope获取访问次数

    在这个场景下,我们将探讨如何在JSP页面中获取JavaBean的数据以及如何利用scope来统计访问次数。 首先,让我们深入了解一下JavaBean。JavaBean遵循以下规范: 1. 是一个公共类,且非抽象。 2. 有一个无参数的构造器...

    JSP课件-javabean的使用教程

    在提供的课件中,有三个关于JavaBean的PPT文件: 1. **第五章 JavaBean1.ppt**:可能涵盖了JavaBean的基本概念、创建过程和基本操作。 2. **第五章 JavaBean3.ppt**:可能深入讲解了JavaBean的属性、方法以及在JSP中...

    javabean 学习(适合初学者)

    - **会话作用域 (session scope)**:JavaBean 在用户会话期间有效,直到用户关闭浏览器或超时。 - **应用程序作用域 (application scope)**:JavaBean 在整个 Web 应用程序的生命周期内有效。 #### 六、JavaBean ...

    javaBean的详细介绍

    其中,id 代表 JSP 页面中的实例对象,class 代表 JavaBean 类,scope 代表 JavaBean 的生命周期。 2. `&lt;jsp:setProperty&gt;` 标记: ```jsp *" /&gt; ``` 其中,name 代表已经存在并且具有一定生存范围的 JavaBean ...

    javabean表现与实现分离

    javabean表现与实现分离 在JSP中使用JavaBean JavaBean的Scope属性 在Web服务器上部署JavaBean

    javaBean简介.doc

    &lt;jsp:useBean id="user" class="com.example.User" scope="session"/&gt; ``` 在现代Web开发中,虽然JavaBean的概念仍然适用,但常常被更高级的框架如Spring MVC所替代。在Spring框架中,JavaBean(称为`@...

    JavaBean技术

    - `scope`: 设置JavaBean的作用域,可以取值为`page`、`request`、`session`或`application`。默认值为`page`。 - `class`: 指定JavaBean的完整类名,不能与`beanName`属性同时存在。 - `beanName`: 指定JavaBean的...

    JavaBean组件程序设计

    这里的`id`属性指定了JavaBean在页面中的引用名,`scope`决定了JavaBean的作用范围,可以是`page`、`request`、`session`或`application`。`jsp:setProperty`和`jsp:getProperty`分别用于设置和获取属性值,`...

    JavaBean总结

    &lt;jsp:useBean id="db" scope="request" class="dbbean" /&gt; ``` 这会在指定范围内(如request、session、application)创建或查找名为"db"的JavaBean实例。 2. `&lt;jsp:setProperty&gt;` 该标签用于为JavaBean的属性...

    jsp调用javabean的问题

    这里的`id`属性定义了JavaBean在页面作用域内的引用名,`class`属性指定了JavaBean的全限定类名,`scope`属性定义了JavaBean的作用范围,可以是page、request、session或application。 当JSP遇到`&lt;jsp:useBean&gt;`...

    JavaBean学习资料

    &lt;jsp:useBean id="myBean" class="com.example.MyBean" scope="session"/&gt; ``` 这行代码会在指定的范围内(如`page`、`request`、`session`或`application`)创建或查找`MyBean`对象,并将其绑定到`myBean`变量。...

    JSP+javabean登陆

    &lt;jsp:useBean id="userBean" class="com.example.UserBean" scope="session"/&gt; ``` 3. **数据库连接**:JavaBean需要连接到SQL Server数据库。这通常通过JDBC(Java Database Connectivity)实现。我们需要...

    jsp调用javabean实例

    &lt;jsp:useBean id="goodsbean" scope="application" class="sale.goodsbean" /&gt; goodsbean.setProduct("clock"); goodsbean.setPrice(17); %&gt; 使用方法1: 产品:()%&gt; 税率:()%&gt; ``` 在这个JSP页面中: - `...

    JavaBean累加求和.doc

    &lt;jsp:useBean id="s1" scope="page" class="com.jsp.Sum"&gt; 初值:&lt;jsp:getProperty name="s1" property="start"&gt;&lt;br&gt; 末值:&lt;jsp:getProperty name="s1" property="end"&gt;&lt;br&gt; 累加结果: ``` 在提交...

    jsp+javabean

    【JSP+JavaBean】是Web开发中一种常见的技术组合,用于构建动态、数据驱动的网页。JavaBean是一种可重用的Java组件,通常用于封装业务逻辑,而JSP(JavaServer Pages)则是一个用于创建动态网页的服务器端技术。在...

    使用javabean创建您的网上日历本(1)_jsp实例

    根据给定的文件信息,我们可以总结出以下关于“使用javabean创建您的网上日历本”的相关知识点: ### 一、项目概述 本项目旨在利用JavaBean技术开发一个基于Web的日历应用程序。该项目通过JSP(JavaServer Pages)...

    JavaBean在JSP中的典型应用

    - 在这里,`id`属性定义了JavaBean在JSP页面上的引用名,`class`属性指定了JavaBean的全限定类名,`scope`属性指定了JavaBean的作用范围,可以是`page`, `request`, `session`或`application`。 2. **设置和获取...

    Jsp+JavaBean实现简单的在线购物车

    - `jsp:useBean`标签用于实例化和查找JavaBean,例如:`&lt;jsp:useBean id="cart" class="com.example.ShoppingCart" scope="session"/&gt;`,这里创建了一个名为`cart`的JavaBean对象,并将其绑定到会话范围。...

    JavaBean_使用

    ### JavaBean 在 JSP 中的应用 #### 一、JavaBean 的基本概念 JavaBean 是一种遵循特定编写规范的 Java 类,通常用于封装数据或业务逻辑。在 Web 开发中,尤其是 JSP 技术栈中,JavaBean 常被用作数据传输对象...

Global site tag (gtag.js) - Google Analytics