java session过期问题
session过期前,判断session中某个值是不是为空,如果为空就跳转到A页面,不为空就跳转到B页面!谁知道怎么实现,求指教....我想拦截到session什么时候过...
session过期前,判断session中某个值是不是为空,如果为空就跳转到A页面,不为空就跳转到B页面!谁知道怎么实现,求指教....
我想拦截到session什么时候过期 展开
我想拦截到session什么时候过期 展开
7个回答
展开全部
1、Session是有生命周期的,生命周期结束,Session就会过期,Session 里面的信息就会丢失。
2、另外Session可能会因为其他原因导致session覆盖而过期;
3、下面举个小例子的原因解释说明Session因为覆盖而丢失(过期)
原因解释:
客户端(浏览器)基于cookie保存交互的session会话信息,但是cookie又是基于域来区分;
假如A_ 和 B_ 项目使用了同一个域,故其cookie所在层级一样,如果两个项目都是用默认的sessionCookieName的话就会导致session的相互覆盖致某一方session丢失(过期);
在 A_项目需要访问 B_项目中的某一个服务JSP,需要与B_服务器建立一个session会话(即生成一个sessionID),如果A_项目与B_项目属于不同的两个域或者是cookie所属不同层级,这个新生成的session和A_项目自身的session会话互不干扰。
2、另外Session可能会因为其他原因导致session覆盖而过期;
3、下面举个小例子的原因解释说明Session因为覆盖而丢失(过期)
原因解释:
客户端(浏览器)基于cookie保存交互的session会话信息,但是cookie又是基于域来区分;
假如A_ 和 B_ 项目使用了同一个域,故其cookie所在层级一样,如果两个项目都是用默认的sessionCookieName的话就会导致session的相互覆盖致某一方session丢失(过期);
在 A_项目需要访问 B_项目中的某一个服务JSP,需要与B_服务器建立一个session会话(即生成一个sessionID),如果A_项目与B_项目属于不同的两个域或者是cookie所属不同层级,这个新生成的session和A_项目自身的session会话互不干扰。
展开全部
我知道
可以使用
response.sendRedirect(url);
这种重定向,request与response会被重新赋值,就是说,最后的请求不是原来的那个请求
还有一种方法就是:
request.getRequestDispatcher(url).forward(request, response);
这种方式的请求与响应是与原来的一样。。
什么叫请求不一样:
例如,我在request里面,设置了一个attribute,如果使用第一种方法,则该attribute不能得到原来的数据(因为这个适合的request已经不是原来的那个request了),而第二种就可以
所以,看你是需要哪种情况吧
session什么时候过期,是可以设置的,有的默认为30分钟,如果它有重新发过请求给你,那么session就不过期了。。
其实你是想问怎么判断一个值是否过期,还是问如何跳转页面??说清楚点
可以使用
response.sendRedirect(url);
这种重定向,request与response会被重新赋值,就是说,最后的请求不是原来的那个请求
还有一种方法就是:
request.getRequestDispatcher(url).forward(request, response);
这种方式的请求与响应是与原来的一样。。
什么叫请求不一样:
例如,我在request里面,设置了一个attribute,如果使用第一种方法,则该attribute不能得到原来的数据(因为这个适合的request已经不是原来的那个request了),而第二种就可以
所以,看你是需要哪种情况吧
session什么时候过期,是可以设置的,有的默认为30分钟,如果它有重新发过请求给你,那么session就不过期了。。
其实你是想问怎么判断一个值是否过期,还是问如何跳转页面??说清楚点
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用重定向,在struts配置文件里配置SUCCESS和ERROR要跳转的页面
HttpSession session = request.getSession();
String value = session.getAttribute("变量名");
if (null != value && "".euqals(value)) {
return SUCCESS;
} else {
return ERROR;
}
HttpSession session = request.getSession();
String value = session.getAttribute("变量名");
if (null != value && "".euqals(value)) {
return SUCCESS;
} else {
return ERROR;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个如果是在js或者jsp里面的话,可以在函数中试试加上这句:
<%=Document.out.html.scope%>(这个是在js里面的);
<%=Document.out.html.scope%>(这个是在js里面的);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
实现 HttpSessionListener
追问
再怎么做?
追答
实现方法 public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
HttpSession session = httpSessionEvent.getSession(); //过期session
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询