美文网首页
6.0.1 Filter过滤器

6.0.1 Filter过滤器

作者: RockyLuo_290f | 来源:发表于2019-03-06 01:35 被阅读0次

过滤器是用来拦截请求的,而不是处理请求的
当用户请求某个Servlet时,会先执行部署在这个请求上的filter, 如果filter放行,才会执行用户请求的servlet
即,当用户请求某个Servlet时,Tomcat会去执行注册在这个请求上的filter,然后再调用servlet,当执行完成Servlet皇后,还会执行filter后面的代码


image.png
<filter>
  <filter-name>helloFilter</filter-name>
  <filter-class>com.rl.filter.HelloFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>helloFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

生命周期:

init(FilterConfig): 服务器启动时创建filter实例,从此不再创建

doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
在每次访问目标资源时执行,需要放行,调用FilterChain的doFilter()方法,

destroy(), 会在服务器关闭时销毁Filter对象,

FilterConfig

功能与ServletConfig相似,与web.xml文件中的配置信息对应,下面是FilterConfig的功能介绍
ServletContext getServletContext(): 获取ServletContext的方法
String getFilterName(): 获取Filter的配置名称,与<filter-name>元素对应
String getInitParameter(String name) 获取Filter的初始化配置,与<init-param>元素对应
Enumeration getInitParameterNames() 获取所有初始化参数的名称

过滤器有四种拦截方式,REQUEST, FORWARD, INCLUDE,ERROR

REUQEST:直接访问目标资源时执行过滤器。包括:在地址栏中直接访问,表单提交,超链接,重定向等
FORWARD:转发访问执行过滤器。包括RequestDispatcher#forward()方法,<jsp:forward>标签都是转发访问
INCLUDE:包含访问执行过滤器。包括RequestDispatcher#include()方法,<jsp:include>标签
ERROR:当目标资源在web.xml中配置为<error-page>中时

//处理post请求乱码问题
request.setCharacterEncoding(this.encoder);
//post方式相应页面乱码处理
response.setCharacterEncoding(this.encoder);
response.setContentType("text/html;charset="+this.encoder);

相关文章

  • 6.0.1 Filter过滤器

    过滤器是用来拦截请求的,而不是处理请求的当用户请求某个Servlet时,会先执行部署在这个请求上的filter, ...

  • Spring系列之Filter and Interceptor

    一、Filter 过滤器 1. 什么是Filter 过滤器? Filter 的含义Filter 过滤器是一个对象 ...

  • java基础-day42-Filter、Listener和Bas

    Filter ,Listener和BaseServlet 1. Filter过滤器 1.1 Filter过滤器的配...

  • Spring Boot使用过滤器Filter

    Spring Boot使用过滤器Filter >> 过滤器Filter介绍Filter也称为过滤器,是处于客户端与...

  • Filter

    Java****中的****Filter****过滤器 Filter****简介 Filter也称之为过滤器,它是...

  • 22. 过滤器

    11 过滤器(Filter) 什么是过滤器(Filter) Filter:过滤器,用来过滤网站的数据; 处理中文乱...

  • Interceptor和Filter区别

    过滤器(Filter) Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的...

  • Filter 过滤器

    Filter过滤器 是什么 Filter过滤器 有什么用 拦截 数据处理 统一控制 Filter过滤器 如何用 使...

  • Filter&Listener

    Filter过滤器 概念 Filter表示过滤器,是JavaWeb的三大组件之一,Servlet、Filter、L...

  • 设计模式之过滤器模式详解(附源代码)

    过滤器模式(Filter Pattern) 过滤器模式(Filter Pattern)或标准模式(Criteria...

网友评论

      本文标题:6.0.1 Filter过滤器

      本文链接:https://www.haomeiwen.com/subject/vvyguqtx.html