jQuery easyui Session 超时返回登录页面
2015-05-05 10:21
309 查看
说明:测试设置失效时间为1分钟,登录成功后1分钟去点击操作处罚事件,执行①连接到com.lactec.framework.ac.filter.AuthFilter这个类判断执行的action操作。
判断session是否为空,超时就返回,我用的是ajax请求:如果是ajax请求响应头会有,x-requested-with;
设置: rep.setHeader("sessionstatus", "timeout");//在响应头设置session状态
rep.getWriter().print("登录超时!"); //打印一个返回值,没这一行,在tabs页中无法跳出(导航栏能跳出),具体原因不明
前台部分通过 XMLHttpRequest.getResponseHeader("sessionstatus"); //通过XMLHttpRequest取得响应头,给出提示 。
① web.XML部分配置代码
②java代码
③ JS代码部分
判断session是否为空,超时就返回,我用的是ajax请求:如果是ajax请求响应头会有,x-requested-with;
设置: rep.setHeader("sessionstatus", "timeout");//在响应头设置session状态
rep.getWriter().print("登录超时!"); //打印一个返回值,没这一行,在tabs页中无法跳出(导航栏能跳出),具体原因不明
前台部分通过 XMLHttpRequest.getResponseHeader("sessionstatus"); //通过XMLHttpRequest取得响应头,给出提示 。
① web.XML部分配置代码
<!-- filter 权限认证 只对amf请求过滤 --> <filter> <filter-name>authFilter</filter-name> <filter-class>com.lactec.framework.ac.filter.AuthFilter</filter-class> </filter> <filter-mapping> <filter-name>authFilter</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping> <!-- session失效时间是30分钟 --> <session-config> <session-timeout>30</session-timeout> </session-config>
②java代码
public class AuthFilter extends BaseAction implements Filter { public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException{ HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse rep = (HttpServletResponse) response; String uri = req.getRequestURI();//获取登录的action if(uri.indexOf("loginAction")>=0){ chain.doFilter(request, response);//跳转页面 }else{ //获取登录用户的Session --基础权限检查,用户没有登陆,被拦截或者session超时请重新登录 if(Utils.isNull(req.getSession()) || Utils.isNull(req.getSession().getAttribute("user")) ){ //如果是ajax请求响应头会有,x-requested-with; if (req.getHeader("x-requested-with") != null && req.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")){ rep.setHeader("sessionstatus", "timeout");//在响应头设置session状态 rep.getWriter().print("登录超时!"); //打印一个返回值,没这一行,在tabs页中无法跳出(导航栏能跳出),具体原因不明 } return; }else { chain.doFilter(request, response);//跳转页面 } } } }
③ JS代码部分
$.ajaxSetup({ error: function (XMLHttpRequest, textStatus, errorThrown){ if(XMLHttpRequest.status==403){ $.messager.alert('我的消息', '您没有权限访问此资源或进行此操作!', 'success'); return false; } }, complete:function(XMLHttpRequest,textStatus){ var sessionstatus=XMLHttpRequest.getResponseHeader("sessionstatus"); //通过XMLHttpRequest取得响应头,sessionstatus, if(sessionstatus=='timeout'){ //如果超时就处理 ,指定要跳转的页面 var top = getTopWinow(); //获取当前页面的顶层窗口对象 $.messager.alert('我的消息', '登录超时-请重新登录!', 'info'); top.location.href = "http://"+window.location.host+"/crm_web/login_new.html"; //跳转到登陆页面 对多服务器同样适用 } } }); /** * 在页面中任何嵌套层次的窗口中获取顶层窗口 * @return 当前页面的顶层窗口对象 */ function getTopWinow(){ var p = window; while(p != p.parent){ p = p.parent; } return p; }
相关文章推荐
- jQuery easyui Session 超时返回登录页面
- struts2拦截器实现session超时返回登录页面(iframe下跳转到其父页面)
- Struts2的Session超时返回登录页面
- 当 jquery 发送 ajax 请求的时候遇到服务端session过期超时返回 302 跳转登陆页面的时候怎么办的处理方法
- asp.net mvc cookie超时返回登录页面问题
- 重写 ajax 实现 session 超时跳转到登录页面实例代码
- 利用Spring自定义AOP进行Session超时自动跳转到登录页面
- springsecurity ajax超时返回登录页面
- jquery ajax方法调用在session超时以后如何跳转到登录页面?
- easyui 请求超时,如何重定向至登录页面
- session失效之后重新登录,点击失效之前的菜单依旧返回登录页面
- webix+springmvc session超时跳转登录页面
- 怎么设置session无响应超时时间并且自动返回登陆页面
- session失效后框架体系中不能返回登录页面
- session过期返回登录页面跳出frame
- 解决easyui在session过期后iframe跳转到登录页面的问题
- spring mvc session 超时重定向登录页面解决方法
- session过期 ajax访问不能返回登录页面问题
- strust2拦截器处理Session超时跳转登录页面
- jQuery登录界面,不用跳转页面即可提交post,可以从服务器端获取返回数据