过滤器会拦截 前端页面加载 js文件的请求

学艺不精啊.....以前就总结过博客:css

JAVA中解决Filter过滤掉css,js,图片文件等问题

结果如今又犯了老错误~html

状况以下:前端

index.jsp 页面的验证码输入栏绑定了异步验证(jQurey实现),当输入内容发生变化时,异步去后台验证输入是否正确。jquery

 

 1 $(function(){  2 
 3   
 4 
 5    $("#a").bind('input propertychange',function () {  6 
 7       var registName=this.value;  8 
 9       var param={"method":"checkRegistName","registName":registName}; 10 
11       $.get("User.do",param,function(data){ 12 
13          if(data!="1"){ 14 
15             $(this).parent().children("span").html("用户名能够使用"); 16 
17          }else{ 18 
19             $(this).parent().children("span").html("用户名已被占用"); 20 
21  } 22 
23       }.bind(this)) 24 
25       //ajax中的回调函数直接用this不灵,解决办法是使用bind(this)绑定this到当前事件。
26 
27  }); 28 
29 }

 

可是当项目加入了登陆验证(过滤器)后,发现这个验证失效了。ajax

通过检查发现,过滤器会拦截 页面对  js文件的请求。异步

过滤器中加入以下代码:jsp

1 System.out.println( "登陆验证过滤器  loginFilter" ); 2 
3 String url = httpRequest.getServletPath(); 4 
5 System.out.println("通过过滤器的请求url为 "+url);

 

访问页面,工做台输出以下:函数

 

1 登陆验证过滤器 loginFilter 2 通过过滤器的请求url为 /index.jsp 3 登陆验证过滤器 loginFilter 4 通过过滤器的请求url为 /js/jquery.js 5 登陆验证过滤器 loginFilter 6 通过过滤器的请求url为 /yanzheng

 

其中 “index.jsp” 为访问的页面, “/js/jquery.js”为index.jsp 中加载的js文件,“/yanzheng”是验证码图片获取时访问的后台severlet地址。this

所以,前端 jQuery实现的ajax没有正常工做。url

所以在过滤器中加入对  js 文件的判断,

1 if("/index.jsp".equals(url) |"/yanzheng".equals(url)|"/js/jquery.js".equals(url)){ 2 
3  chain.doFilter(request, response); 4 
5 }

 

~问题解决了

相关文章
相关标签/搜索