过滤器(Fileter)执行流程

原创 2015年11月18日 09:01:00

Servlet过滤器的概念

  • Servlet过滤器是在 java Servlet 2.3 中定义的,它能够对Servlet容器中的请求和响应对象,进行检查和修改
  • Servlet过滤器并不会生成request和response对象,它只起到过滤的作用
  • Servlet过滤器会在请求还未到Servlet之前检查request对象,修改 Request Header 和 Request 内容;在Servlet被调用后检查Response对象,修改 Response Header 和 Response 内容
  • Servlet过滤器可以过滤 Servlet , JSP , HTML 等web组件(JSP最终也是转换为Servlet的)


定义一个Servlet过滤器(Fileter)

要想让一个类成为过滤器类,必须

  • 实现 java.servlet.Filter接口 
  • 实现三个方法:
    • init(FilterConfig filterConfig) - - -初始化  在Servlet容器创建过滤器实例的时候就会调用该方法(也就是服务器刚启动时会创建实例,该方法得到调用) , 这个方法可以读取web.xml文件中Servlet过滤器的初始化参数                                                                         
    • doFilter(ServletRequest request,ServletResponse response,FilterChain chain)   - - - 完成实际的过滤操作  这个方法得到调用后,里面重要的一点是要调用chain.doFilter(request,response)方法,来完成对下一个过滤器doFilterServletRequest request,ServletResponse response,FilterChain chain))方法的调用,如果没有下一个过滤器,则把客户请求传给相应的web组件                                                                                               
    • destroy()  - - -过滤器销毁阶段  Servlet容器在销毁过滤器实例之前该方法得到调用,以释放占用的资源


对web.xml文件进行配置 (以下配置信息要在Servlet程序的配置信息之前):

[html] view plaincopy
  1. <span style="font-size:18px;">  <filter>  
  2.     <filter-name>FilterServlet2</filter-name>  
  3.     <filter-class>com.servlet.filter.FilterServlet2</filter-class>  
  4.     <init-param>  
  5.         <param-name>hello</param-name>  
  6.         <param-value>123</param-value>  
  7.     </init-param>  
  8.   </filter>  
  9.   
  10.     
  11.   <filter-mapping>  
  12.     <filter-name>FilterServlet2</filter-name>  
  13.     <url-pattern>/InfoServlet</url-pattern>  
  14.   </filter-mapping></span>  

<url-pattern>/InfoServlet</url-pattern>

/InfoServlet 是过滤路径,而不是通过地址栏访问的,不像Servlet程序那样


Servlet过滤器(Fileter)执行流程





过滤器(Fileter)执行流程

Servlet过滤器的概念: Servlet过滤器是在 java Servlet 2.3 中定义的,它能够对Servlet容器中的请求和响应对象,进行检查和修改 Servlet过滤器并不会...

过滤器(Fileter)执行流程

Servlet过滤器的概念: Servlet过滤器是在 java Servlet 2.3 中定义的,它能够对Servlet容器中的请求和响应对象,进行检查和修改 Servlet过滤器并不会...

Web应用过滤器Fileter

在Web应用开发中,我们经常使用过滤器截取从客户端发来的请求,做出相应的处理。过滤器可以说是外部进入网站的第一道关卡。 我们可以利用这道关卡做很多事,例如:对数据进行编码;判断用户是否来自可信任的网...

elasticsearc-内部过滤器执行流程

内部过滤器的操作编辑 在内部,Elasticsearch 会在运行非评分查询的时执行多个操作: 查找匹配文档. term 查询在倒排索引中查找 XHDK-A-1293-#fJ3 然后获取...

struts2的执行原理(执行流程,过滤器和拦截器)

一个请求在Struts2框架中的处理大概分为以下几个步骤: 1 客户端发送请求; 2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp...
  • singgel
  • singgel
  • 2017年03月17日 09:06
  • 170

Filter(过滤器)以及工作流程

Servlet过滤器是在Java Servlet 规范2.3中定义的,它能够对Servlet容器的请求和响应对象进行检查和修改。 Servlet过滤器本身并不生成请求和响应,他只不过提供过滤作作...

SSM + Shiro 整合 (5)- 自定义过滤器及权限解析器、介绍权限匹配流程

关于 Shiro 的权限匹配器和过滤器上一节,我们实现了自定义的 Realm,方式是继承 AuthorizingRealm 这个抽象类,分别实现认证的方法和授权的方法。这一节实现的代码的执行顺序 1...

CAS Java客户端登录相关过滤器的处理流程

首先了解一下CAS登录原理:CAS结构中一般包含CAS服务器、应用服务器、客户端三个部分。客户端向应用服务器发出请求,由于未登录,会被跳转到CAS服务器登录。登录成功后跳转回应用服务器的登录前的URL...

Fileter struts2 starting Exception异常的解决方法总结

第一部分:Error filterStart异常的详细堆栈信息--à错误信息 五月 14, 2014 4:26:58 下午 org.apache.catalina.core.Sta...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:过滤器(Fileter)执行流程
举报原因:
原因补充:

(最多只允许输入30个字)