您的位置:首页 > 编程语言 > Java开发

struts2拦截器判断用户是否为ajax请求

2011-05-11 20:24 573 查看
现在的网站,应该绝大多数用jquery作为基础类库了。假设有这样的需求,在用struts2做权限管理的时候,我们可以拦截用户请求的资源,然后判断该用户是否有相应资源的权限。如果没有就返回一个字符串,让其跳转相应的页面,问题来了。如果是ajax请求呢,用户是不会跳转的,虽然用户的操作被拦截,但是用户却不知道。所以我们可以在拦截成功的时候,响应一个字符,但是必须先判断出,用户的当前请求是否ajax请求。

这段代码只是针对jquery的ajax请求。 如果经常用firebug进行调试的话,会发现jquery的ajax都会向后退发送一个X-Requested-With报头,其值为XMLHttpRequest。所以我们可以利用这个特点来判断。

private boolean isAjaxRequest(HttpServletRequest request) {
	String header = request.getHeader("X-Requested-With");
	if (header != null && "XMLHttpRequest".equals(header))
		return true;
	else
		return false;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: