关于添加用户时为什么是在requestInitialized而不是sessionCreate中这个问题:因为request才能获取到ip,设置用户ip;在requestInitialized进行了sessionId的判断,所以每个session也只添加了一次
2016-09-23
第一遍听,确实比较难懂。首先,你要明白几个知识点,就好懂多了:
目的:获取在线(用户数量)+打印(用户列表)。用户列表需包含三个信息(1、sessionId 2、ip 3、firstTime)。
原理:服务器会为每个用户创建一个session,而一个用户在这个session生命周期中,可以多次访问浏览器(即,多个request)。
注意事项一:用户列表中的ip只能从request中获取,所以添加用户信息需要在request的init方法中操作
注意事项二:如原理所说,只有当session销毁时,才能说明用户已经下线。所以需要在session的destroy方法中减去用户。
目的:获取在线(用户数量)+打印(用户列表)。用户列表需包含三个信息(1、sessionId 2、ip 3、firstTime)。
原理:服务器会为每个用户创建一个session,而一个用户在这个session生命周期中,可以多次访问浏览器(即,多个request)。
注意事项一:用户列表中的ip只能从request中获取,所以添加用户信息需要在request的init方法中操作
注意事项二:如原理所说,只有当session销毁时,才能说明用户已经下线。所以需要在session的destroy方法中减去用户。
2016-09-15
添加用户时为什么是在requestInitialized而不是sessionCreate中?一个用户不是对应一个session吗?新手勿喷
2016-09-12
说下,一,在MyServletRequestListener中如果能够通过sessionId获取User对象时才需要重新将userList放入application,避免数据未改动做不必要的操作。二,您在此方法中将用户从userList中剔除,却没有重新放入application中,这是一个疏忽;其次,sessionDestroyed方法是在session销毁时调用,关闭页面时并不会导致session被销毁,所以sessionDestroyed方法貌似不会被调用,即使用户关闭页面,仍不会改变application中的数据。。。
2016-09-07
servletcontextevent.getServletContext() 老师说获取当前应用的什么对象?(2分50处)
2016-09-06