问题1:
在jsp中如何得到服务器的所有session对象,注意,当你访问服务器的时候一般你得到的只是你自己的session对象,我查找了API但只找到得到自己的session对象,如何得到服务器的所有session对象。
问题2:
如何监听指定session的销毁及对象的销毁,如果该session过了web.xml的时间限制则服务器会自动销毁,如何监听销毁的这个时间,并在之前执行一段代码。
问题3:
大家都知道浏览器访问页面服务器会创建session,并给予客户端一个sessionID,如果客户端所有浏览器关闭是否证明该客户端sessionID销毁,再次登陆网站的时候服务器又会创建一个session并分配给客户端一个sessionID,如果不是服务器自己销毁session,是否只有到达时间限制后session在自动销毁。
本问题50分,另加本人的其他两张贴(每张贴100分)一直没结,所以一共250分,本贴问题答完后在另外两个贴随意回复既在结贴时给分!!
两张贴地址:
http://community.csdn.net/Expert/topic/5249/5249395.xml?temp=.774563
http://community.csdn.net/Expert/topic/5249/5249412.xml?temp=.8341944
在jsp中如何得到服务器的所有session对象,注意,当你访问服务器的时候一般你得到的只是你自己的session对象,我查找了API但只找到得到自己的session对象,如何得到服务器的所有session对象。
问题2:
如何监听指定session的销毁及对象的销毁,如果该session过了web.xml的时间限制则服务器会自动销毁,如何监听销毁的这个时间,并在之前执行一段代码。
问题3:
大家都知道浏览器访问页面服务器会创建session,并给予客户端一个sessionID,如果客户端所有浏览器关闭是否证明该客户端sessionID销毁,再次登陆网站的时候服务器又会创建一个session并分配给客户端一个sessionID,如果不是服务器自己销毁session,是否只有到达时间限制后session在自动销毁。
本问题50分,另加本人的其他两张贴(每张贴100分)一直没结,所以一共250分,本贴问题答完后在另外两个贴随意回复既在结贴时给分!!
两张贴地址:
http://community.csdn.net/Expert/topic/5249/5249395.xml?temp=.774563
http://community.csdn.net/Expert/topic/5249/5249412.xml?temp=.8341944
在web.xml注册这个listener
再定义一个静态变量
当sessionCreate的时候把session放进去
当sessionDestroy的时候把session移除
* @see javax.servlet.http.HttpSessionListener#sessionCreated(javax.servlet.http.HttpSessionEvent)
*/
public void sessionCreated(HttpSessionEvent arg0) {
// TODO 自动生成方法存根
} /* (非 Javadoc)
* @see javax.servlet.http.HttpSessionListener#sessionDestroyed(javax.servlet.http.HttpSessionEvent)
*/
public void sessionDestroyed(HttpSessionEvent event)
{
HttpSession session=event.getSession();
// TODO 自动生成方法存根
String id=session.getId();
try
{
........
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}}在web.xml <listener>
<listener-class>包名.SessionListen</listener-class>
</listener>
问题2:“如何监听销毁的这个时间,并在之前执行一段代码”这个是做不到的,因为销毁之前你根本就不能知道什么时候要销毁,但销毁了已经是之后的事了,但你可以这样试试,把session的值先传给一个变量,当监听到session销毁了,你还可以用这个变量来做你需要的事
问题3:要不手动(通过事件触发)销毁,要不就是超出时间自动销毁
在jsp中如何得到服务器的所有session对象,注意,当你访问服务器的时候一般你得到的只是你自己的session对象,我查找了API但只找到得到自己的session对象,如何得到服务器的所有session对象。---------------------------
好象没有这个方法问题2:
如何监听指定session的销毁及对象的销毁,如果该session过了web.xml的时间限制则服务器会自动销毁,如何监听销毁的这个时间,并在之前执行一段代码。
---------------------------
实现HttpSessionListener接口,其中的两个方法分别对应创建和销毁问题3:
大家都知道浏览器访问页面服务器会创建session,并给予客户端一个sessionID,如果客户端所有浏览器关闭是否证明该客户端sessionID销毁,再次登陆网站的时候服务器又会创建一个session并分配给客户端一个sessionID,如果不是服务器自己销毁session,是否只有到达时间限制后session在自动销毁。
---------------------------
是的
//private static int sessionCount;
private static java.util.Map<String,javax.servlet.http.HttpSession> sessionList = new java.util.HashMap<String,javax.servlet.http.HttpSession>();
public static int getSessionCount() {
return sessionList.size();
}
public static java.util.Map getSessionList() {
return sessionList;
}
public void sessionCreated(HttpSessionEvent arg0) {
javax.servlet.http.HttpSession session = arg0.getSession();
if(session != null) {
sessionList.put(session.getId(), session);
}
} public void sessionDestroyed(HttpSessionEvent arg0) {
javax.servlet.http.HttpSession session = arg0.getSession();
if(session != null) {
sessionList.remove(session.getId());
}
}
}
意思就是说客户端第一次访问后,再刷新页面,这时候客户端会提交sessionID对吧,在这个时候,如何监听,并且获取报头(其实我想要得就是在管理端监视用户现在正在访问的页面)