usebean中scope="session"时的问题

leonyuann 2005-03-06 11:04:43
我做了如下代码测试session、application、request的区别
test.jsp如下
<jsp:useBean id=”student” scope=”session” class=”mybean.student” />
<%=student.getName()%><br>
<% student.setName(“bbbb”); %>

student.java如下
package mybean;
public class student{
long classno;
String name;
public student(){
name=”aaaa”;
}
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
}
预期结果:
scope=session时运行test.jsp文件,name的初始值为"aaaa",但刷新后应为“bbbb”,只要不关闭此窗口,任何刷新或打开一个新窗口,都输出“bbbb”。直到关闭所有窗口,再运行test.jsp文件,输出才会为初始值”aaaa”。但我运行后无论怎么刷新还是打开新窗口都是"aaaa",为何?
scope=”request”时,新建一文件test1.jsp内容与test.jsp一样。先在浏览器中运行test.jsp文件,输出name的值为初始值”aaaa”。再在在浏览器中运行test1.jsp文件,此时应该输出为“bbbb”,因为它们算是相同的request,但我得到的结果始终是“bbbb”为何?

...全文
204 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
leonyuann 2005-03-20
  • 打赏
  • 举报
回复
<session-config>
<session-timeout>60</session-timeout>
</session-config>
ynsfsw 2005-03-09
  • 打赏
  • 举报
回复
看一看你的SESSION超时设置是不是太短了?
minisun2000 2005-03-08
  • 打赏
  • 举报
回复
scope=“session”表示在同一个session中只有一个BEAN的实例,所以你在刷新或打开一个新窗口(应该是用“文件”-“新建”-“窗口”方式吧),都输出“bbbb”,因为此时不在实例化BEAN了。但是重新打开浏览器再次访问test.jsp时不论时刷新还是打开新窗口都输出“aaaa”,我就不明白了,我用你的程序试了试,可是输出“bbbb”啊,不知道你那里怎么回事!
scope=“request”表示在同一个request中只有一个BEAN实例,再次在浏览器中运行test1.jsp文件时,它和你第一次运行的test1.jsp不是同一个request,并且也不是同一个session。所以你的页面才会输出“aaaa”,这个是对的!!
注意理解session和request的生命周期
leonyuann 2005-03-08
  • 打赏
  • 举报
回复
谁来帮我解决这个问题?
飞行的兔子 2005-03-06
  • 打赏
  • 举报
回复
你可以根据字面意思理解啊,其实就和字面意思差不多,
session在会话期间有效,会话结束后就失效了.
application在程序的整个运行环境中有效
request 在请求过程中有效
leonyuann 2005-03-06
  • 打赏
  • 举报
回复
说错了,request时候我始终得到“aaaa”

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧