scope取默认,page,request,session,application的区别

原文网址:http://blog.sina.com.cn/s/blog_4b66675d0100fmdi.html

 

自己做实验讨论一下javabean中scope的不同取值的区别和其默认值问题。

1,先讨论request,session与application的区别,俩文件如下:

Trick.java

package trick;

import java.io.*;

public class Trick

{        int i=1;

         public int getI()

         { i++;

           return i;

         }

}

trick.jsp

<%@ page contentType="text/html;charset=GB2312" %>

<%@ page import="trick.Trick"%>

<HTML><BODY>

         <jsp:useBean id="trick" class="trick.Trick" scope="request/session/application" />

         <jsp:getProperty name="trick" property="i" />

</BODY><HTML>


运行trick.jsp

Request: 刷新页面3次屏幕显示2,重启浏览器屏幕显示2;

Session: 刷新页面3次数字从2开始递增至4,重启浏览器屏幕重新从2开始递增;

Application: 刷新页面3次数字从2开始递增4,重启浏览器从4开始递增。

 

结论:

应用范围大小比较:request<session<application

Request: 请求期间有效

Session: 会话期间有效

Application: 服务器运行期间有效

 

2,因为page纯JSP自己弄出来的一范围,所以单独讨论。

新增一个页面:

trick1.jsp

<%@ page contentType="text/html;charset=GB2312" %>

<%@ page import="trick.Trick"%>

<HTML><BODY>

         <jsp:useBean id="trick" class="trick.Trick" scope="request" />

         <jsp:getProperty name="trick" property="i" />

         <jsp:forward page="trick.jsp" />

</BODY><HTML>

 

运行trick1.jsp

Trick1.jsp,trick.jsp中同取scope=”request”: 屏幕显示3;

Trick1.jsp,trick.jsp中同取scope=”page”:屏幕显示2;

结论:

应用范围大小:page<request

Page:当前页面有效


3,scope不赋值的情况下的默认值。

trick1.jsp中scope=”request” ;

trick.jsp中去掉scope;

运行trick1.jsp,屏幕显示2,与scope=”page”时结果相同,故理论上默认值应为page。


看过一些文献里说默认值为request,可能是版本问题,有待考证。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以回答这个问题。首先需要了解这些变量的作用以及如何在Java中设置它们的值。 1. Page变量:它表示当前页面的对象,可以在JSP页面中通过pageContext对象来获。在JSP页面中设置page变量的值,可以使用JSP脚本语言或JSP自定义标签库。 例如,使用JSP脚本语言设置page变量的值: ``` <% pageContext.setAttribute("pageVariable", "This is a page variable."); %> ``` 2. Request变量:它表示当前请求的对象,可以在JSP页面中通过request对象来获。在JSP页面中设置request变量的值,可以使用JSP脚本语言或JSP自定义标签库。 例如,使用JSP脚本语言设置request变量的值: ``` <% request.setAttribute("requestVariable", "This is a request variable."); %> ``` 3. Session变量:它表示当前会话的对象,可以在JSP页面中通过session对象来获。在JSP页面中设置session变量的值,可以使用JSP脚本语言或JSP自定义标签库。 例如,使用JSP脚本语言设置session变量的值: ``` <% session.setAttribute("sessionVariable", "This is a session variable."); %> ``` 4. Application变量:它表示当前应用程序的对象,可以在JSP页面中通过application对象来获。在JSP页面中设置application变量的值,可以使用JSP脚本语言或JSP自定义标签库。 例如,使用JSP脚本语言设置application变量的值: ``` <% application.setAttribute("applicationVariable", "This is an application variable."); %> ``` 5. Cookie变量:它表示当前请求的Cookie对象,可以在JSP页面中通过request对象来获。在JSP页面中设置cookie变量的值,可以使用JSP脚本语言或JSP自定义标签库。 例如,使用JSP脚本语言设置cookie变量的值: ``` <% Cookie cookie = new Cookie("cookieVariable", "This is a cookie variable."); response.addCookie(cookie); %> ``` 在以上的代码中,我们通过response对象来添加一个名为cookieVariable值为"This is a cookie variable."的Cookie变量。 接下来,我们可以使用EL表达式在页面中输出这些变量的值。 例如,在JSP页面中输出pagerequestsessionapplication以及cookie变量的值: ``` Page Variable: ${pageContext.pageVariable} Request Variable: ${requestScope.requestVariable} Session Variable: ${sessionScope.sessionVariable} Application Variable: ${applicationScope.applicationVariable} Cookie Variable: ${cookie.cookieVariable.value} ``` 在以上的代码中,我们使用EL表达式分别输出了pagerequestsessionapplication以及cookie变量的值。注意,cookie变量的值需要通过value属性来获

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值