对于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来统计访问次数。 首先,让我们深入了解一下JavaBean。JavaBean遵循以下规范: 1. 是一个公共类,且非抽象。 2. 有一个无参数的构造器...
在提供的课件中,有三个关于JavaBean的PPT文件: 1. **第五章 JavaBean1.ppt**:可能涵盖了JavaBean的基本概念、创建过程和基本操作。 2. **第五章 JavaBean3.ppt**:可能深入讲解了JavaBean的属性、方法以及在JSP中...
- **会话作用域 (session scope)**:JavaBean 在用户会话期间有效,直到用户关闭浏览器或超时。 - **应用程序作用域 (application scope)**:JavaBean 在整个 Web 应用程序的生命周期内有效。 #### 六、JavaBean ...
其中,id 代表 JSP 页面中的实例对象,class 代表 JavaBean 类,scope 代表 JavaBean 的生命周期。 2. `<jsp:setProperty>` 标记: ```jsp *" /> ``` 其中,name 代表已经存在并且具有一定生存范围的 JavaBean ...
javabean表现与实现分离 在JSP中使用JavaBean JavaBean的Scope属性 在Web服务器上部署JavaBean
<jsp:useBean id="user" class="com.example.User" scope="session"/> ``` 在现代Web开发中,虽然JavaBean的概念仍然适用,但常常被更高级的框架如Spring MVC所替代。在Spring框架中,JavaBean(称为`@...
- `scope`: 设置JavaBean的作用域,可以取值为`page`、`request`、`session`或`application`。默认值为`page`。 - `class`: 指定JavaBean的完整类名,不能与`beanName`属性同时存在。 - `beanName`: 指定JavaBean的...
这里的`id`属性指定了JavaBean在页面中的引用名,`scope`决定了JavaBean的作用范围,可以是`page`、`request`、`session`或`application`。`jsp:setProperty`和`jsp:getProperty`分别用于设置和获取属性值,`...
<jsp:useBean id="db" scope="request" class="dbbean" /> ``` 这会在指定范围内(如request、session、application)创建或查找名为"db"的JavaBean实例。 2. `<jsp:setProperty>` 该标签用于为JavaBean的属性...
这里的`id`属性定义了JavaBean在页面作用域内的引用名,`class`属性指定了JavaBean的全限定类名,`scope`属性定义了JavaBean的作用范围,可以是page、request、session或application。 当JSP遇到`<jsp:useBean>`...
<jsp:useBean id="myBean" class="com.example.MyBean" scope="session"/> ``` 这行代码会在指定的范围内(如`page`、`request`、`session`或`application`)创建或查找`MyBean`对象,并将其绑定到`myBean`变量。...
<jsp:useBean id="userBean" class="com.example.UserBean" scope="session"/> ``` 3. **数据库连接**:JavaBean需要连接到SQL Server数据库。这通常通过JDBC(Java Database Connectivity)实现。我们需要...
<jsp:useBean id="goodsbean" scope="application" class="sale.goodsbean" /> goodsbean.setProduct("clock"); goodsbean.setPrice(17); %> 使用方法1: 产品:()%> 税率:()%> ``` 在这个JSP页面中: - `...
<jsp:useBean id="s1" scope="page" class="com.jsp.Sum"> 初值:<jsp:getProperty name="s1" property="start"><br> 末值:<jsp:getProperty name="s1" property="end"><br> 累加结果: ``` 在提交...
【JSP+JavaBean】是Web开发中一种常见的技术组合,用于构建动态、数据驱动的网页。JavaBean是一种可重用的Java组件,通常用于封装业务逻辑,而JSP(JavaServer Pages)则是一个用于创建动态网页的服务器端技术。在...
根据给定的文件信息,我们可以总结出以下关于“使用javabean创建您的网上日历本”的相关知识点: ### 一、项目概述 本项目旨在利用JavaBean技术开发一个基于Web的日历应用程序。该项目通过JSP(JavaServer Pages)...
- 在这里,`id`属性定义了JavaBean在JSP页面上的引用名,`class`属性指定了JavaBean的全限定类名,`scope`属性指定了JavaBean的作用范围,可以是`page`, `request`, `session`或`application`。 2. **设置和获取...
- `jsp:useBean`标签用于实例化和查找JavaBean,例如:`<jsp:useBean id="cart" class="com.example.ShoppingCart" scope="session"/>`,这里创建了一个名为`cart`的JavaBean对象,并将其绑定到会话范围。...
### JavaBean 在 JSP 中的应用 #### 一、JavaBean 的基本概念 JavaBean 是一种遵循特定编写规范的 Java 类,通常用于封装数据或业务逻辑。在 Web 开发中,尤其是 JSP 技术栈中,JavaBean 常被用作数据传输对象...