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的一些理解的更多相关文章

  1. Java Filter过滤器(拦截路径的配置+拦截方式的配置+生命周期+多个过滤器的先后执行顺序)

    Java Filter过滤器+Listen监听器 啥是过滤器 顾名思义即过滤掉一些东西,比如我们经历的高考中考都是过滤器,他过滤掉一些在学习这一方面不是很好的人,而那些成绩好的人则升入高中,大学. 但 ...

  2. Java语言的个人理解

    Java语言的个人理解(比价深层次吧) 大四的生活确实十分的奢靡,不锻炼,不读书,几乎就是当一天和尚撞一天钟的生活,太颓废了,还好自己不是这个样子,不过身体确实差了很多,昨天跑了一圈内环(4KM),今 ...

  3. Java常量字符串String理解

    Java常量字符串String理解 以前关于String的理解仅限于三点:1.String 是final类,不可继承2.String 类比较字符串相等时时不能用“ == ”,只能用  "eq ...

  4. java的final变量理解

    java的final变量理解 final基本类型是数值不能改变 final对象是引用不能改变,对象其自身是可以被修改的.

  5. 谈谈我对Java中CallBack的理解

    谈谈我对Java中CallBack的理解 http://www.cnblogs.com/codingmyworld/archive/2011/07/22/2113514.html CallBack是回 ...

  6. 【Java】「深入理解Java虚拟机」学习笔记(1) - Java语言发展趋势

    0.前言 从这篇随笔开始记录Java虚拟机的内容,以前只是对Java的应用,聚焦的是业务,了解的只是语言层面,现在想深入学习一下. 对JVM的学习肯定不是看一遍书就能掌握的,在今后的学习和实践中如果有 ...

  7. Java提高篇之理解java的三大特性——继承

    在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...

  8. 【转】java提高篇(二)-----理解java的三大特性之继承

    [转]java提高篇(二)-----理解java的三大特性之继承 原文地址:http://www.cnblogs.com/chenssy/p/3354884.html 在<Think in ja ...

  9. Java类加载机制的理解

    算上大学,尽管接触Java已经有4年时间并对基本的API算得上熟练应用,但是依旧觉得自己对于Java的特性依然是一知半解.要成为优秀的Java开发人员,需要深入了解Java平台的工作方式,其中类加载机 ...

随机推荐

  1. android常见错误-E/AndroidRuntime(13678): java.lang.NoClassDefFoundError:

    08-01 11:09:39.791: E/AndroidRuntime(13678): FATAL EXCEPTION: main 08-01 11:09:39.791: E/AndroidRunt ...

  2. alternatives命令使用方法

    alternatives命令使用方法 alternatives是Linux下的一个功能强大的命令.仅仅能在root权限下运行.如系统中有几个命令功能十分相似,却又不能任意删除,那么能够用 altern ...

  3. Asp.Net页面(母版页)加载顺序

    ASP.NET 母版页和内容页中的事件 母版页和内容页都可以包含控件的事件处理程序.对于控件而言,事件是在本地处理的,即内容页中的控件在内容页中引发事件,母版页中的控件在母版页中引发事件.控件事件不会 ...

  4. 在Zend Studio中为ThinkPHP添加代码自动提示功能

    身边很多朋友都使用ThinkPHP或CodeIgniter等开发框架为自己的项目提高开发效率. 在得力于这些优秀框架良好的设计结构的同时,也头疼于代码的自动完成提示功能没有纯PHP网站那么完善了.经常 ...

  5. android141 360 安装软件管理

                      主界面: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/andro ...

  6. C++之运算符重载(1)

    在前一节中曾提到过,C++中运行时的多态性主要是通过虚函数来实现的,而编译时的多态性是由函数重载和运算符重载来实现的.这一系列我将主要讲解C++中有关运算符重载方面的内容.在每一个系列讲解之前,都会有 ...

  7. Redis 有序集合(sorted set)

    Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过分数来为集合中的成员进行从小到大的排序. 有序 ...

  8. IOS横竖屏控制与事件处理

    公司App里面有个需求,即所有界面都是竖屏,且不允许横屏切换,唯独有一个图表界面允许横屏.那么,根据此需求处理如下: 首先,确保App本身应该允许转屏切换: 再次,我的App里面都是走UINaviga ...

  9. Window Pains

    http://poj.org/problem?id=2585 Window Pains Time Limit: 1000MS   Memory Limit: 65536K Total Submissi ...

  10. Android(java)学习笔记87:File类使用

    package cn.itcast_01; import java.io.File; /* * 我们要想实现IO的操作,就必须知道硬盘上文件的表现形式. * 而Java就提供了一个类File供我们使用 ...