Filter 过滤器
它是Servlet技术中非常重要的技术之一,web开发人员可以通过使用Filter技术,可管理web服务器上的所有wen资源
Filter尽管与Servlet有很多相似之处,但也有不同 区别在于FIlter可以产生一个Http相应。
Filter能够在一个请求到达Servlet之前预处理用户请求 也可以离开Servlet时处理Http响应
归纳:Filter可完成的工作
1 在执行Servlet之前,首先执行Filter程序,并为之做一些预处理工作
2 根据程序需要修改请求与响应
3 在Servllet执行之后 截获Servlet的执行
Filter执行过程
当客户端发出web资源的请求时,web服务器根据应用程序配置文件的设置 进行过滤和检查 ,若客户请求满足过滤规则,则对客户请求/响应进行拦截,对请求头和请求数据进行检查或改动,并依次通过过滤器链(FilterChain),最后把请求/响应交给请求的web资源处理。
请求信息可以在过滤链中被修改,也可以根据条件让请求不发往资源处理器,并直接向客户机发挥一个响应。
web服务器在调用doFilter时,会传递一个FilterChain()对象进来,filterChain对象是ilter接口中重要的一个对象,它也提供了一个doFilter方法,开发人员可以根据需求决定是否调用此方法,若调用,则web服务器会调用web资源的service方法
下面是一个简单的例子
1、编写CharacterEncodingFilter类
2、在web.xml中配置