过滤器简介
WEB过滤器是一个服务器端的组件,它可以截取用户端的请求与相应信息,并对这些信息过滤。
过滤器的工作原理和生命周期
在没有Web过滤器的情况下,用户直接访问服务器上的Web资源。但是如果存在过滤器,用户就不可以直接访问过滤器了。
Web容器启动的时候过滤器就已经启动了,用户的请求到达过滤器,过滤器判断用户的请求是否符合过滤规则,如果符合规则则将用户的请求发送给Web资源,Web资源将响应信息发送给过滤器,过滤器将Web资源的响应发送给用户。工作原理如下图所示:
过滤器的生命周期:
其中实例化方法在Web容器开始装载的时候就执行,初始化方法配置一些初始化参数,Web容器卸载(服务器关闭)的时候执行销毁方法。过滤方**执行多次,其他方法只会执行一次。
第一个过滤器
1.创建一个类实现javax.servlet.Filter接口。需要实现该接口中的3个方法。
1 package filter; 2 3 import java.io.IOException; 4 5 import javax.servlet.Filter; 6 import javax.servlet.FilterChain; 7 import javax.servlet.FilterConfig; 8 import javax.servlet.ServletException; 9 import javax.servlet.ServletRequest;10 import javax.servlet.ServletResponse;11 12 public class FirstFilter implements Filter {13 14 public void destroy() {15 System.out.println("执行过滤器的销毁方法!");16 17 }18 19 public void doFilter(ServletRequest request, ServletResponse response,20 FilterChain filterChain) throws IOException, ServletException {21 System.out.println("开始执行过滤器的doFilter方法。");22 filterChain.doFilter(request, response);23 System.out.println("结束执行过滤器的doFilter方法。");24 }25 26 public void init(FilterConfig arg0) throws ServletException {27 System.out.println("执行过滤器的初始化方法。");28 29 }30 31 }
FirstFilter.java
- init(FilterConfig ):过滤器的初始化方法,Web容器创建过滤器之后将调用这个方法,在这个方法中可以读取web.
- doFilter(ServletRequest,ServletResponse,FilterChain):完成实际的过滤操作,是过滤器的核心方法。当用户请求访问与过滤器相关联的URL的时候,Web容器将先调用过滤器的doFilter方法。FilterChain参数可以调用chain.doFilter方法,将请求传送给下一个过滤器(或者目标资源),或利用转发、重定向将请求转发给其他资源。
- destroy():Web容器在销毁过滤器实例前调用该方法,在这个方法中可以释放过滤器占用的资源。【大多数情况下用不到】
2.在web.
在MyEclipse中提供了可视化的配置web.
1 <??> 2 <web-app version="2.5" 3 ="http://java.sun.com/ 4 ="http://www.w3.org/2001/ 5 xsi:schemaLocation="http://java.sun.com/ 6 http://java.sun.com/> 7 <display-name></display-name> 8 <welcome-file-list> 9 <welcome-file>index.jsp</welcome-file>10 </welcome-file-list>11 12 <!-- 配置过滤器开始 -->13 <filter>14 <filter-name>FirstFilter</filter-name>15 <filter-class>filter.FirstFilter</filter-class>16 </filter>17 <filter-mapping>18 <filter-name>FirstFilter</filter-name>19 <url-pattern>/*</url-pattern>20 </filter-mapping>21 <!-- 配置过滤器结束 -->22 23 </web-app>
web.
原标题:JavaWeb——过滤器
关键词:JAVA