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

默认情况下第一次访问服务器,服务器端就会产生一个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>

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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值