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


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

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

    结果现在又犯了老错误~

    情况如下:

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

     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 }

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

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

    过滤器中加入如下代码:

    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地址。

    因此,前端 jQuery实现的ajax没有正常工作。

    因此在过滤器中加入对  js 文件的判断,

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

    ~问题解决了

  • 相关阅读:
    C结构体
    读书笔记之:C语言深度剖析
    stdin、stdout、stderr
    There is an error while getting planid. No Free partitions available
    LeetCode刷题笔录Add Binary
    UVA
    谷歌google搜索打不开、谷歌gmail邮箱及相关服务无法登录的解决的方法
    C/C++中各种类型int、long、double、char表示范围(最大最小值)
    使用java进行文件编码转换
    懂,你的App生,不懂,死!
  • 原文地址:https://www.cnblogs.com/mumu122GIS/p/9984175.html
Copyright © 2020-2023  润新知