DWR 控制请求session过期处理
2017-06-23 09:34
267 查看
摘自:http://m.blog.csdn.net/blog/wxiongcheng13/6587490
项目中使用DWR架构,默认情况下并不能监听到session过期,从而导致了session过期dwr的操作依然可以正常进行,下面了一套处理方案:1:web.xml配置dwr的servlet中添加参数:<init-param>
<param-name>crossDomainSessionSecurity</param-name>
<param-value>false</param-value>
</init-param>2:java中添加一个类继承 DefaultRemoter,实现 public Replies execute(Calls calls) ;方法例如:public class DWRSessionService extends DefaultRemoter {
public Replies execute(Calls calls) {
HttpSession session = WebContextFactory.get().getSession();
// session检查
if(!LoginUser.isLogin(session)){
logOut();
return super.execute(new Calls());
}
return super.execute(calls);
} @SuppressWarnings("deprecation")
private void logOut() {
System.out.println("dwr session过期");
WebContext wct = WebContextFactory.get();
Util utilThis = new Util(wct.getScriptSession());
utilThis.addScript(new ScriptBuffer("logout()")); } }
3:页面中添加一个公用的方法logoutfunction logout(){
alert("系统提示","由于您长时间未操作,为了保障您的账户安全系统SESSION已自动过期,请重新登陆!"} 通过以上3步骤就能实现了dwr session过期的处理。存在问题:1、如果你的登录页面也是dwr处理的,那就需要你自己再想办法来处理跳过登录页面2、不是dwr请求的当然,这个处理是无效的这两点是个人总结,如果有误请指出
项目中使用DWR架构,默认情况下并不能监听到session过期,从而导致了session过期dwr的操作依然可以正常进行,下面了一套处理方案:1:web.xml配置dwr的servlet中添加参数:<init-param>
<param-name>crossDomainSessionSecurity</param-name>
<param-value>false</param-value>
</init-param>2:java中添加一个类继承 DefaultRemoter,实现 public Replies execute(Calls calls) ;方法例如:public class DWRSessionService extends DefaultRemoter {
public Replies execute(Calls calls) {
HttpSession session = WebContextFactory.get().getSession();
// session检查
if(!LoginUser.isLogin(session)){
logOut();
return super.execute(new Calls());
}
return super.execute(calls);
} @SuppressWarnings("deprecation")
private void logOut() {
System.out.println("dwr session过期");
WebContext wct = WebContextFactory.get();
Util utilThis = new Util(wct.getScriptSession());
utilThis.addScript(new ScriptBuffer("logout()")); } }
3:页面中添加一个公用的方法logoutfunction logout(){
alert("系统提示","由于您长时间未操作,为了保障您的账户安全系统SESSION已自动过期,请重新登陆!"} 通过以上3步骤就能实现了dwr session过期的处理。存在问题:1、如果你的登录页面也是dwr处理的,那就需要你自己再想办法来处理跳过登录页面2、不是dwr请求的当然,这个处理是无效的这两点是个人总结,如果有误请指出
相关文章推荐
- Ajax 请求session过期的统一处理
- session失效时间设置、过期处理、ajax同步异步请求处理
- session过期,处理ajax请求,使其重新登录
- ajax前置处理实现异步请求session过期时跳转登录页面
- DWR的异常处理及session过期
- ajax请求 session过期跳转首页的两种处理方式
- 处理jquery的ajax请求session过期跳转到登录页面
- flask session session已过期,再发送ajax请求如何处理?
- 当 jquery 发送 ajax 请求的时候遇到服务端session过期超时返回 302 跳转登陆页面的时候怎么办的处理方法
- ajax请求 session过期跳转首页的两种处理方式
- SNF快速开发平台MVC-EasyUI3.9之-Session过期处理和页面请求筛选
- Ajax请求session过期处理
- ajax请求时session已过期处理方案
- shiro 拦截器实现session过期拦截ajax请求的处理
- js--Ajax的小知识(二):处理ajax的session过期的请求
- DWR的异常处理及session过期
- session过期,ajax请求处理
- dwr调用时session过期处理
- Session超时后,Ajax请求处理方式
- Tomcat请求处理控制结构