Java过滤器应用-对Ajax请求做Session失效判断
过滤器常用来对Session过期做判断
Layout.js
1.为ajax请求添加标识
2.无论ajax请求成功与否,complete函数终会执行
// 全局Ajax设置, 用于session过期后的跳转
function ajaxSetup() {
$.ajaxSetup({
timeout : 10000,
beforeSend : function(xhr) {
//添加ajax请求标识
xhr.setRequestHeader("ajaxReq", "ajax");
},
complete : function(xhr, ts) {
if (xhr.statusText == 'sessiontimeout' && xhr.status == 403) {
// 跳转
window.location.href = "login.jsp";
}
}
});
}
请求过滤器,Session过期则修改请求状态为403(或其他),设置过期标识sessionState为timeout,便于ajax回调函数判断。
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
String servletPath = req.getServletPath(); if(except.contains(req.getRequestURI())){
chain.doFilter(request, response);
} Object sessionObj = req.getSession().getAttribute(key);
if(sessionObj==null){
//如果是ajax请求
if(req.getHeader("ajaxReq")!=null && req.getHeader("ajaxReq").equals("ajax")){
res.setHeader("sessionState", "timeout");
res.setStatus(403);
return;
}else{
chain.doFilter(request, response);
String contextPath = req.getContextPath();
String redirect = servletPath + "?" + StringUtils.defaultString(req.getQueryString());
res.sendRedirect(contextPath + forward + "?redirect=" + URLEncoder.encode(redirect, "UTF-8"));
} }else{
// pass the request along the filter chain
chain.doFilter(request, response);
System.out.println("chain.do after");
} }
目前发现ajax全局设置对load函数无效。
Java过滤器应用-对Ajax请求做Session失效判断的更多相关文章
- Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求
Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求 >>>>>>>>>>>>>>&g ...
- Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求
Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求 Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求 java ...
- java Servlet Filter 拦截Ajax请求,统一处理session超时的问题
后台增加filter,注意不要把druid也屏蔽了 import java.io.IOException; import javax.servlet.Filter; import javax.serv ...
- ajax异步请求,session失效处理
后台拦截器代码: // 判断是否是AJAX请求 if (isAjaxRequest(request)) { log.info("AjaxRequest请求"); ActionCon ...
- ajax访问遇到Session失效问题
最近由于一个项目,模块切换为ajax请求数据,当Session失效后,ajax请 求后没有返回值,只有响应的html:<html><script type='text/javascr ...
- session失效,使用ajax请求数据被拦截,此时正常的处理逻辑是跳到登录界面,而不是界面没有变化(java推断是否是ajax请求)
在登录过滤器中.推断请求是ajax请求还是超链接或者地址栏变化的请求 if (httpServletReq.getHeader("x-requested-with") != nul ...
- java Servlet Filter 拦截Ajax请求
/** * 版权:Copyright 2016-2016 AudaqueTech. Co. Ltd. All Rights Reserved. * 描述: * 创建人:赵巍 * 创建时间:2016年1 ...
- spring security:ajax请求的session超时处理
当前端在用ajax请求时,如果没有设置session超时时间并且做跳转到登录界面的处理,那么只是靠后台是很难完成超时的一系列动作的:但是如果后台 没有封装一个ajax请求公共类,那么在ajax请求上下 ...
- 使用jquery-mockjax模拟ajax请求做前台測试
一般来说,我们做web开发的时候前后台是分开做的,这样带来的优点是前台的开发者能够安心的写前台代码而后台的小伙伴就安心研究后台就OK了. 可是这样带来一个问题.当后台的小伙伴被天灾军团带走了,那前台须 ...
随机推荐
- Windows服务安装异常:System.Security.SecurityException: 未找到源,但未能搜索某些或全部事件日志。不可 访问的日志: Security
Windows服务安装异常:System.Security.SecurityException: 未找到源,但未能搜索某些或全部事件日志.不可 访问的日志: Security 2种方法处理: 一.右键 ...
- Android 屏幕滑动事件
http://blog.csdn.net/iamfafa/article/details/6316062 Android里有两个类 android.view.GestureDetector andro ...
- javaWeb---Servlet
1.整个Servlet页面跳转访问流程: 1.1:依据form表单的action的值找到web.xml中servlet-mapping的url的值找到对应的java类,在根据form中的method属 ...
- kvm虚拟机virt-manager启动报错
安装kvm,用virt-manager启动时报错如下: Traceback (most recent call last): File "/usr/share/virt-manager/v ...
- SpringMVC整合TaskExecutor线程池的配置/使用
一.配置jdbc.properties添加: #------------ Task ------------ task.core_pool_size=5 task.max_pool_size=50 t ...
- spring.xml命名空间
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w ...
- Java String类中的intern()方法
今天在看一本书的时候注意到一个String的intern()方法,平常没用过,只是见过这个方法,也没去仔细看过这个方法.所以今天看了一下.个人觉得给String类中加入这个方法可能是为了提升一点点性能 ...
- 1.struts2开发流程
1下载struts包,下载地址为:http://archive.apache.org/dist/struts/library/ 2.解压后将lib下的这几个jar包放到自己写的web项目中 放到这 ...
- Microsoft Office 2013 Product Key
Microsoft Office 2013 Product Key ( Professional Plus ) PGD67-JN23K-JGVWW-KTHP4-GXR9G B9GN2-DXXQC-9D ...
- MySQL之对数据库库表的字符集的更改
数据字符集修改步骤: 对于已有的数据库想修改字符集不能直接通过 "alter database character set *"或 "alter table tablen ...