过滤器会拦截 前端页面加载 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 ...
随机推荐
- 《CLR via C#》读书笔记 之 泛型
第十二章 泛型 2014-06-15 初始泛型 12.3 泛型基础结构 12.3.1 开放类型与封闭类型 12.3.2 泛型类型和继承 12.3.3 泛型类型同一性 12.3.4 代码爆炸 12.6 ...
- Ubuntu 卸载重装 IntelliJ Idea Community
参考: https://stackoverflow.com/questions/22983101/how-to-uninstall-intellij-idea-on-ubuntu-13-10 @SLH ...
- Android开发(十八)——头部、中部、底部布局技巧
头部.中部.尾部布局涉及到布局内容自适应,总结两个技巧: 第一种相对布局: <?xml version="1.0" encoding="utf-8"?&g ...
- 【GMT43智能液晶模块】例程五:IWDG看门狗实验——复位ARM
实验原理: STM32内部包含独立看门狗,通过看门狗可以监控程序运行,程序运行 错误时,未在规定时间喂狗,自动复位ARM.本实验通过UI界面中按钮按下 停止喂狗,制造程序运行错误,从而产生复位. 示例 ...
- VMware Workstation Pro 14.1.1 正式版
VMware是功能最强大的虚拟机软件,用户可以在虚拟机同时运行各种操作系统,进行开发.测试.演示和部署软件,虚拟机中复制服务器.台式机和平板环境,每个虚拟机可分配多个处理器核心.主内存和显存. 更新日 ...
- src引入js时添加时间戳参数方法
代码如下: <script>document.write('<script src="js/judgeLogin.js?t=' + new Date().getTime() ...
- Java中创建线程的三种方式以及区别
在java中如果要创建线程的话,一般有3种方法: 继承Thread类: 实现Runnable接口: 使用Callable和Future创建线程. 1. 继承Thread类 继承Thread类的话,必须 ...
- python使用requests发送multipart/form-data请求数据
def client_post_mutipart_formdata_requests(request_url,requestdict): #功能说明:发送以多部分表单数据格式(它要求post的消息体分 ...
- 《精通Python网络爬虫》
抓包工具 Fiddler 爬虫的浏览器伪装技术 Python Scrapy 框架
- sonar-scanner的执行流程和对ClassLoader,动态代理的使用
最近项目上使用了sonarqube来提供静态代码检查的服务,在看sonar-scanner的源码的时候,发现sonar-scanner用来分析的jar包是从sonar的服务器上下载下来的,使用自定义的 ...