牛骨文教育服务平台(让学习变的简单)
博文笔记

java中监听器和session的一个练习

创建时间:2017-03-11 投稿人: 浏览次数:489

默认情况下第一次访问服务器,服务器端就会产生一个session对象,再会话期内,这个对象一直存在。

但是可以通过修改一些配置来设置浏览器每次请求访问的时候不产生session对象。

(有什么不对的,大家可以指出来啊,自己对session的理解不是很到位。)


在做这个例子的时候,无论如何我都获取不到EL表达式的值,想了半天终于知道了。


首先我在运行代码的时候,浏览器一直在运行着,所以session对象已经有了,当我访问我项目的index.jsp页面时,根本不会触发myhttpSessionListener方法中的created函数,也就是根本不会将num的值放到上下文对象中,因此index。jsp页面中无法获取到num的值。

下边来看源代码

MyHttpSessionListener代码

@WebListener
public class myHttpSessionListener implements  HttpSessionListener{
private int num=0;
@Override
public void sessionCreated(HttpSessionEvent se) {
num++;
se.getSession().getServletContext().setAttribute("num", num);
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
num--;
se.getSession().getServletContext().setAttribute("num", num);
}
}
index.jsp代码(这里只展示body部分)

<body>
 当前在线人数:${num}
  </body>

知道自己错误的原因后,我只在心里默默地骂了我自己三声,你是笨蛋,你是笨蛋,你是笨蛋。

我待代码如初恋,代码虐我千百遍。

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。