已采纳回答 / 渴望飞翔的猪
request.getSession().getServletContext().setAttribute("","");设置servlet上下文中具有指定名字的对象.request.getSession() 中request是个对象,对象调用它的getSession() 方法以此类推request.getSession().getServletContext() 中request.getSession()返回一个HttpSession对象,HttpSession对象调用它的getServletConte...
2016-10-06
EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。
因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。
假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。
因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。
假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。
2016-10-04
关于添加用户时为什么是在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