慕莱坞1654752
修心光
我爱孙佳怡
我爱孙佳怡
你可以看一下jsp的九大内置对象(在servlet中有对应的对象)的范围,这样就可以根据功能需要来决定需要把变量存储在什么对象内
淋雨明天
每次登录都是一次请求,所以用request对象,session没法统计每一次的请求
wukai001
贴下代码哦,不看代码咋知道哪里没写对。
初步感觉你应该是没注册监听器吧,用的是servlet3.0的话,不需要在web.xml里注册;在自建的监听器类ListenerClass里加上@WebListener就行了
qq_我有一个方丈师兄_0
requestListener的实现是更进一步功能的实现。不仅可以看到在线用户,还可以看到在线用户的相关信息,比如定义中的IP
灬乱世烟花丶盛世繁华灬
贴代码
shady_jin
web的全局变量对象是单例的。例如:启动tomcat只初始化一次
Catalina7
这里获取的是在线人数的集合。
街边七号
老师的说法是因为需要request来获取并显示用户的客户端IP
qq_何足道_1
我用IDER,初始值直接是3,用一个加1是真的
不脱发的小Java
判断当前用户之前是否已经放入ArrayList集合里面,如果已经有就取出来返回。如果没有就返回null
moummm
attribute 没有获取到
qq_谜离_03319966
如果想用IDEA默认启动浏览器,应该怎么解决这个问题呢?还有为什么会出现这个问题啊?麻烦各位大佬解释一下
精慕门0015259
界面关闭从新打开保存一下就OK了
慕仔1575412
zhangyan123
session有一定的销毁时间延迟,可以通过session中有一个方法设置销毁时间,具体哪个方法忘记了
慕老板
httpsession的有效期只在本次会话,而在线人数是需要统计所有回话,举个例子,如果A访问了服务器,就会创建一个与A的会话,B访问了服务器,就创建一个B的会话,放在Session里只有A的用户或者B的用户能访问到自己的Session会话信息,就没有办法统计了
月下背影
为什么使用静态页面呢,应该只能使用动态页面才能展示吧
杨文鑫
因为ServletSessionListener 中获取不到用户的具体信息,比如说id地址,所以要到ServletRequestListener中获取,ServletRequestListener中可以得到HttpServletRequest对象,然后用request.getRemoteAddr()方法获取到ip地址等信息
慕粉1640368217
Lion_ssg
导包没
1sos1
在requestInitialized方法中通过ServletRequestEvent参数可以获得request对象,从而获得用户IP地址,而sessionCreated中不能获得request对象,没法获得用户IP地址。
1sos1
session是有一个超时时间的,浏览器关闭其实对于web服务器来说是不知道的,所以他需要等待超时时间到了之后自动销毁,上面关闭浏览器之后只所以没有促发sessionDesroyed,就是因为默认的超时时间没到。
默认超时时间太长了,所以在sessionCreated中添加如下代码,改小超时时间:
arg0.getSession().setMaxInactiveInterval(5);
这样只要用浏览器访问该站点,然后5s不刷新之后,sessionDestroyed就会被自动调用了。
丶子非鱼
MyServletRequest这个类没有监听
丶子非鱼
IDEA是什么?
慕粉3647701
System.out.println(“”sessionCreated”);
多了引号
慕粉3291149
单一原则,
莨菽菽
arrayList就相当于一个数组啊,存放user对象。session是每个用户都会创建一个。而application是所有用户共享一个。所以要存放在Context里面吧。我认为是这样。