java filter的一些理解
java filter即 java中的过滤器:
一、
* web项目中只有三个组件
* 过滤器filter ↓ 级 别
* 监听器 ↓ 级 别
* servlet ↓ 级 别
*/
/*
二、
*使用 需要配置web.xml
*filter拥有 三个声明周期
* init,destory,doFilter(执行过滤任务),用户请求时每次都执行doFilter()方法
* 而init,destory只会执行一次init在tomcat启动服务时就加载,在tomcat终止时,执行destory
*/、
三、
/*
* 过滤器的九大功能
* 1:过虑或是设置字符集。最最基本的[功能简单,很容易学会。]。对post有效。
2:过虑关键字如。
3:在拦截的过程中修改request(包装、代理)以实现程序要求。
如通过get方式可能获取中文字符。
4:设置对某些页面缓存或是对某些页面不缓存。
5:验证用户是否是有效的用户。即已经登录了的用户。
6:自动登录[复习cookie,]。
7:对输出的数据进行压缩。或是对全站进行压缩。
8:用过虑器来管理事务,OSIV模式,与使用代理管理事务对比与分析。
9:实现权限过虑器。-综合示例。相对比较复杂。
*/
四、
4.1 //tomcat 将所有的servlet listener filter 变成单例 每次访问不重新新建一个servlet 默认单例,除非服务终止,否则不会销毁!
4.2 //在一个过滤器执行结束,如果还有过滤器将继续执行过滤器,没有则执行相对应的servlet
4.3 //执行这句话就是 放行,继续向下执行程序, 不执行就是阻止。
public void doFilter(res,req,chain){
chain.doFilter(request, response);}
4.4 在filter的init方法中config可以在初始化过滤器的时候读取到在web.xml中配置的参数
//FilterConfig config初始化从web.xml中读取初始化数据
五、
url-pattern的设置:
/* = 对所有url都请求这个servlet。| 都被这个filter过虑.
/ = 只可以给servlet。 - 所有其他的servlet不处理的url都由这个url所指定的servlet处理。默认servlet。
*.jspx = 所有以jspx结束都请求到这个Servlet或是被某个Filter拦截。如http://local:8080/proj/abc.jspx
/jsps/* = 所有路径中以/jsps/开头的都请求到这个servlet或是被某个filter拦截到。
/jsps/*.jspx 错误的:SUN规定*两边不可以同时出现字符。
六、
过滤器链
根据web.xml中的顺序 进行过滤
每次dofilter 放行 进行下一个过滤
filter-mapping 在前先执行\
《!一个过滤器只干一个活!--》
七、
可以通过实现过滤器的接口创建一个过滤器:
实现一个过滤器的方法 :implements Filter
添加三个函数init();destory();doFilter();创建,销毁,运行。三个方法
创建完过滤器要配置相应的web.xml文件:
<filter>
<filter-name>filter</filter-name>
<filter-class>cn.it.Filter1</filter-class>
</filter>
<filter-mapping>
<filter-name>filter</filter-name>
<url-pattern>/*</url-pattern>
<servlet-name>servlet.hello</servlet-name>
</filter-mapping>
基本想的起来的filter的东西就这么多吧,具体的一些实现会在后面的随笔中加一些filter的实际应用
java filter的一些理解的更多相关文章
- Java Filter过滤器(拦截路径的配置+拦截方式的配置+生命周期+多个过滤器的先后执行顺序)
Java Filter过滤器+Listen监听器 啥是过滤器 顾名思义即过滤掉一些东西,比如我们经历的高考中考都是过滤器,他过滤掉一些在学习这一方面不是很好的人,而那些成绩好的人则升入高中,大学. 但 ...
- Java语言的个人理解
Java语言的个人理解(比价深层次吧) 大四的生活确实十分的奢靡,不锻炼,不读书,几乎就是当一天和尚撞一天钟的生活,太颓废了,还好自己不是这个样子,不过身体确实差了很多,昨天跑了一圈内环(4KM),今 ...
- Java常量字符串String理解
Java常量字符串String理解 以前关于String的理解仅限于三点:1.String 是final类,不可继承2.String 类比较字符串相等时时不能用“ == ”,只能用 "eq ...
- java的final变量理解
java的final变量理解 final基本类型是数值不能改变 final对象是引用不能改变,对象其自身是可以被修改的.
- 谈谈我对Java中CallBack的理解
谈谈我对Java中CallBack的理解 http://www.cnblogs.com/codingmyworld/archive/2011/07/22/2113514.html CallBack是回 ...
- 【Java】「深入理解Java虚拟机」学习笔记(1) - Java语言发展趋势
0.前言 从这篇随笔开始记录Java虚拟机的内容,以前只是对Java的应用,聚焦的是业务,了解的只是语言层面,现在想深入学习一下. 对JVM的学习肯定不是看一遍书就能掌握的,在今后的学习和实践中如果有 ...
- Java提高篇之理解java的三大特性——继承
在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...
- 【转】java提高篇(二)-----理解java的三大特性之继承
[转]java提高篇(二)-----理解java的三大特性之继承 原文地址:http://www.cnblogs.com/chenssy/p/3354884.html 在<Think in ja ...
- Java类加载机制的理解
算上大学,尽管接触Java已经有4年时间并对基本的API算得上熟练应用,但是依旧觉得自己对于Java的特性依然是一知半解.要成为优秀的Java开发人员,需要深入了解Java平台的工作方式,其中类加载机 ...
随机推荐
- WCF与WebService之间的异同
下面我们来详细讨论一下二者的区别.Web Service和WCF的到底有什么区别. 1,Web Service:严格来说是行业标准,也就是Web Service 规范,也称作WS-*规范,既不是框架, ...
- C# Process 类的思考
在这里,我先给自己留个印象 下面我们用C#实现一个调用Dos命令的小程序,让大家对系统进程能有个直观的了解.要使用Process类,首先要引入System.Diagnostic命名空间,然后定义一个新 ...
- cocos2d(3.0)一些基础的东西
1.创建项目后环境配置: 附加文件夹:加入 $(EngineRoot) $(EngineRoot)cocos $(EngineRoot)cocos\editor-support $(EngineRoo ...
- 整型数组与vector对象之间的相互初始化
#include<iostream> #include<vector> #include<string> using namespace std; int main ...
- Linux 内核Coding Style整理
转载:http://www.cnblogs.com/wang_yb/p/3532349.html 总结linux内核开发的coding style, 便于以后写代码时参考. 下面只是罗列一些规则, 具 ...
- BootStrap2学习日记1--网格系统
在BoootStrap2的版本中采用的布局方式是12栏网格布局(把浏览器的Width分12栏,布局中使用每个元素所占格数的不同来达到各种布局),包括(固定)网格布局(Grid System)和流式网格 ...
- Modified LCS
Input Output Sample Input 3 5 3 4 15 3 1 10 2 2 7 3 3 100 1 1 100 1 2 Sample Output 4 3 50超时代码,因为K很大 ...
- Android快速开发框架ZBLibrary源码分享
坐标标准库ZBLibrary,是一个MVP架构的Android快速开发框架,提供一套开发标准(UI,Data,Listener)以及模板和工具类并规范代码. 封装层级少,简单高效兼容性好.Androi ...
- CSS skills: 4) goto page head script
//返回顶部 $(document).on('click', '.backTop', function (e) { $('html, body').animate({scrollTop: 0}, 50 ...
- Yii2高级版本复制新项目出现问题解决(转)
引用于 http://www.linuxidc.com/Linux/2015-02/114116.htm Yii2高级版本复制新项目会遇到下面的报错信息: exception 'yii\base\In ...