过滤器会拦截 前端页面加载 js文件的请求
学艺不精啊.....之前就总结过博客:
JAVA中解决Filter过滤掉css,js,图片文件等问题
结果现在又犯了老错误~
情况如下:
index.jsp 页面的验证码输入栏绑定了异步验证(jQurey实现),当输入内容发生变化时,异步去后台验证输入是否正确。
- $(function(){
- $("#a").bind('input propertychange',function () {
- var registName=this.value;
- var param={"method":"checkRegistName","registName":registName};
- $.get("User.do",param,function(data){
- if(data!="1"){
- $(this).parent().children("span").html("用户名可以使用");
- }else{
- $(this).parent().children("span").html("用户名已被占用");
- }
- }.bind(this))
- //ajax中的回调函数直接用this不灵,解决办法是使用bind(this)绑定this到当前事件。
- });
- }
但是当项目加入了登录验证(过滤器)后,发现这个验证失效了。
经过检查发现,过滤器会拦截 页面对 js文件的请求。
过滤器中加入如下代码:
- System.out.println( "登录验证过滤器 loginFilter" );
- String url = httpRequest.getServletPath();
- System.out.println("经过过滤器的请求url为 "+url);
访问页面,工作台输出如下:
- 登录验证过滤器 loginFilter
- 经过过滤器的请求url为 /index.jsp
- 登录验证过滤器 loginFilter
- 经过过滤器的请求url为 /js/jquery.js
- 登录验证过滤器 loginFilter
- 经过过滤器的请求url为 /yanzheng
其中 “index.jsp” 为访问的页面, “/js/jquery.js”为index.jsp 中加载的js文件,“/yanzheng”是验证码图片获取时访问的后台severlet地址。
因此,前端 jQuery实现的ajax没有正常工作。
因此在过滤器中加入对 js 文件的判断,
- if("/index.jsp".equals(url) |"/yanzheng".equals(url)|"/js/jquery.js".equals(url)){
- chain.doFilter(request, response);
- }
~问题解决了
过滤器会拦截 前端页面加载 js文件的请求的更多相关文章
- 在HTML页面中加载js文件和css文件的方法
1.在HTML页面加载js文件的方法: function loadScriptFile(filePath){ var script = document.createElement("scr ...
- 网页加载速度优化2--先加载css,然后再加载js文件。
网页加载时,是按从上到下,从左到右的顺序加载的.所以一定要先加载css文件(不要让用户看到一个杂乱无章的页面),最后再加载js文件,js一般都是处理功能的,所以不需要提前加载.先给用户观感,再给用户上 ...
- 如何动态加载js文件,$.getScript()方法的使用
有时候我们需要动态在页面中加载js文件,jquery封装了getScript()方法,不用自己再创建标签了. 写法: $.getScript("name.js",function( ...
- 网页性能优化之异步加载js文件
一个网页的有很多地方可以进行性能优化,比较常见的一种方式就是异步加载js脚本文件.在谈异步加载之前,先来看看浏览器加载js文件的原理. 浏览器加载 JavaScript 脚本,主要通过<scri ...
- 动态加载js文件
由于最近在弄echarts,关于地图类的效果,但是全国地图整体的js文件太大了,加载很耗费资源,所以要根据不同省份加载不同地区的js地图, 于是就想的比较简单, var script = docume ...
- 动态加载JS文件,并根据JS文件的加载状态来执行自己的回调函数
动态加载JS文件,并根据JS文件的加载状态来执行自己的回调函数, 在很多场景下,我们需要在动态加载JS文件的时候,根据加载的状态来进行后续的操作,需要在JS加载成功后,执行另一方法,这个方法是依托在加 ...
- ExtJS4.x动态加载js文件
动态加载js文件是ext4.x的一个新特性,可以有效的减少浏览器的压力,提高渲染速度.如动态加载自定义组件 1.在js/extjs/ux目录下,建立自定义组件的js文件. 2.编写MyWindow.j ...
- Ext JS学习第十天 Ext基础之动态加载JS文件(补充)
此文用来记录学习笔记: •Ext4.x版本提供的一大亮点就是Ext.Loader这个类的动态加载机制!只要遵循路径规范,即可动态加载js文件,方便把自己扩展组件动态加载进来,并且减轻浏览器的压力. • ...
- angularLoad(用以异步加载js文件)
angularLoad(用以异步加载js文件) 使用方法: 1.执行命令 下载 lib npm install angular-load --save 2.index.html引用js <scr ...
随机推荐
- ES6,Array.from()函数的用法
ES6为Array增加了from函数用来将其他对象转换成数组. 当然,其他对象也是有要求,也不是所有的,可以将两种对象转换成数组. 1.部署了Iterator接口的对象,比如:Set,Map,Arra ...
- (转)Linux服务器磁盘空间占满问题
转自:https://www.cnblogs.com/cindy-cindy/p/6796684.html 下面我们一起来看一篇关于Linux服务器磁盘占满问题解决(/dev/sda3 满了),希望碰 ...
- error C3861: “xxxx”: 找不到标识符
问题出现背景:c++静态类库中主函数里包含子函数 解决办法:先声明子函数再写主函数.
- RTMP之后,SRT与QUIC
RTMP协议存在累计延迟与加密方面的问题,为适应互联网视频低延时,高质量的要求,以UDP为核心,具有创造性的SRT,QUIC等流媒体视频方式将成为新的选择 RTMP协议最初是由Macromedia为通 ...
- Mysql系列三:Centos6下安装Mysql和Mysql主从复制的搭建
一.Centos6下安装Mysql 检测下系统有没有自带的mysql:yum list installed | grep mysql, 如果已经有的话执行命令yum -y remove mysql-l ...
- HashMap,Hashtable,ConcurrentHashMap 和 synchronized Map 的原理和区别
HashMap 是否是线程安全的,如何在线程安全的前提下使用 HashMap,其实也就是HashMap,Hashtable,ConcurrentHashMap 和 synchronized Map 的 ...
- 转自ruby迷: 使用Net::SSH和Net::SCP编写Linux服务器管理脚本
试了一下perl下安装ssh模块,整了半天linux/window上都装不上,各依赖模块的版本总是匹配不上,后改了一下思路,用ruby吧 Net::SSH和Net::SCP是两个Ruby操作SSH的g ...
- OSG描边特效osgFX::Outline的修改
对一个三维场景中的物体实现描边特效,可以参考osg范例osgoutline 这个描边特效使用了模板缓存Stencil来实现,参见源代码osgFX/Outline.cpp 使用了两个Pass 第一个Pa ...
- cube-ui修改按钮颜色
首先,当我们按照脚手架一步一步创建完项目以后 $ vue init cube-ui/cube-template projectname $ sudo npm install $ npm start 主 ...
- Kubernetes – Ingress
用户在 Kubernetes 上部署的服务一般运行于私有网络,Pod和Service 提供了 hostPort,NodePort等参数用于暴露这些服务端口到K8S节点上,供使用者访问.这样的方法有明显 ...