/** * 拦截用户是否登录跳转到登录页 * 页面请求和ajax异步请求都能跳转 */ @Component public class SessionInterceptor extends AbstractInterceptor { private static String APPLICATION_JSON = "application/json"; private static String SESSION_DESTROYED = "{\"destroyed\":true}"; private static final Log logger = LogFactory.getLog(SessionInterceptor.class); private static final long serialVersionUID = -6541521429930621158L; @Override public String intercept(ActionInvocation invocation) throws Exception { User user = (User) ActionContext.getContext().getSession().get(SessionConstants.SESSION_USER_KEY); if ((null == user)) { logger.info("session is invalid"); if (isJsonRequest()) { try { //异步请求返回过session过期标识,ajax通用方法中统一跳转 ServletActionContext.getResponse().getOutputStream().write(SESSION_DESTROYED.getBytes("utf-8")); } catch (Exception e) { logger.error("ajax output exception", e); } return null; } //同步请求跳转 return "login"; } else { return invocation.invoke(); } } /** * 通过头信息判断是否为ajax json异步请求 */ private boolean isJsonRequest() { HttpServletRequest request = ServletActionContext.getRequest(); String accept = request.getHeader("accept"); if(logger.isInfoEnabled()){ logger.info("accept:" + accept); } if (StringUtils.contains(accept, APPLICATION_JSON)) { return true; } return false; } }
$.ajax( { url : url+'?randomCode='+(Math.random()), data : param, cache : cacheType, type : postType, dataType : dataType, processData : processData , async : async, timeout : timeout, success : function(data){ //session销毁,跳转 if(data.destroyed){ utils.locationHref(sys.sysdomain + "/login.html"); }else{ if(successCB){ successCB(data); } } }, error : function(errorObj){ if(errorCB){ errorCB(errorObj); }else{ alert("请求数据失败,请稍候再试。("+errorObj['statusText']+")"); } }, beforeSend : function(jqXHR, settings){ } });
相关推荐
ext中session失效,页面跳转到登陆页的实现
一同事求援:后台系统的登录成功了,但不能成功登进系统,仍然跳转到登录页,但同一套代码另一个环境却没有问题。 背景 经了解,他对同一个项目使用tomcat部署了两个环境,一个在开发服务器上,一个在他本机,两个...
最近由于一个项目,模块切换为ajax请求数据,当Session失效后,ajax请求后没有返回值,只有响应的html:<html>[removed]window.open(‘http://192.168.0.118:8080/welcomeAction/loginUI.do’,’_top’);...
主要介绍了Ajax Session失效跳转登录页面的方法,非常不错具有参考借鉴价值,感兴趣的朋友一起看下吧
IFrame中Session丢失的解决办法
本篇文章主要介绍了springmvc控制登录用户session失效后跳转登录页面,session一旦失效就需要重新登陆,有兴趣的同学可以了解一下。
在使用spingMVC的拦截器来处理用户session失效的问题时,当用户session失效会返回一串javascript字符串强制用户浏览器跳转至登录页面。然而当使用Ajax请求数据时,在验证失败后只会响应一串字符串,JavaScript并不会...
最近由于一个项目,模块切换为ajax请求数据,当Session失效后,ajax请求后没有返回值,只有响应的html: <html> [removed]window.open('http://192.168.0.118:8080/welcomeAction/loginUI.do','_top'); ...
配置会话过期跳转过期页面,web.xml 配置过滤文件,及过滤文件方法的编写有详细注释
thinkphp开发的一个项目,登录成功后又跳转到登录页面,在提交信息后输出session都是正常的,没有问题,但是页面跳转后,session出现丢失现象,无法正常完成登陆。 通过查找资料,发现原来是bom头的原因。受COOKIE送...
登陆jsp采用jquery.cooki.js脚本在项目根目录下生成cookie,用来控制一个浏览器只能登陆一个用户,用户退出时清空cookie,关闭浏览器cookie自动清空,用户非正常退出下,需等待20分的session失效时间后方可正常登陆...
PC端监听二维码session状态接口,目前定义状态:0 二维码生成成功 ,1 手机端扫码成功 2手机端确认登录 -1 sessionId过期失效 二维码扫描通知,手机端扫描成功会调用此接口,发送session通知 手机端确认通知,手机端...
我们在用C#开发程序的时候经常会遇到Session很不稳定,老是数据丢失。下面就是Session数据丢失的解决办法希望对您有好处。 1、在WEB.CONFIG文件中修改SESSION状态保存模式,如:<sessionState mode=’StateServer’ ...
7) 退出登录:当用户点击退出登录时跳转到登录页面并使当前session失效。 8) 天气预报与日期显示:通过网络在前端页面中即可显示出来。 9) 文件上传:可以在注册时上传用户的头像,登录时在前端页面显示出来。 10...
里我们是介绍一个网站管理后台三个框架页面当我们的jsp定义的session变量超时时用户点击时自动退出框架页面并跳到登录页面去了,下面我来给大家演示一个实例
主要介绍了Django Session和Cookie分别实现记住用户登录状态操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
Vue设置长时间未操作登录以后自动到期返回登录页 首先我们写在main.js文件中 import routerUtil from "@/utils/routerutil";...sessionUtil.setSession("userInfo", '2'); 在routerutil.js文件中 import sessi
gwfSecurity 浏览器安全认证默认配置 ...默认的手机验证码登录请求处理url: /authentication/mobile 当请求需要身份认证时,默认跳转的url: /authentication/form ...验证图片验证码时,http...session失效默认的跳转地址: /
-------------升级说明------------ 新增批量确认提现的功能 新增商城订单佣金可修改 添加淘宝授权自助获取 增加前台会员修改信息成功提示 ...去掉聚划算商品直接跳转到聚划算页面的功能(容易引发丢单)