JAVA_web_filter
什么是filter?
filter 翻译为过滤器;在处理一个事物的时候进行提前处理一些事情;
什么时候用filter?
在client request service的时候对request做预处理;
在service response client的时候对response坐处理;
filter原理:
当web容器收到请求的时候会在我们配置的web.xml中查找 lister(另外一篇介绍)- filter;
如果我们配置了filter,那么会按照配置顺序形成一个filter链;可以理解一个净水器 从水进入---到粗颗粒过滤器-----明矾过滤器----活性炭过滤器------矿物质过滤器----纯净水
filter实现:
1,在web.xml配置
<filter> <filter-name>encodingFilter</filter-name> <filter-class> org.springframework.web.filter.CharacterEncodingFilter </filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
2,写Filter类
package com.yhy.app.basic; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebFilter; /** * Servlet Filter implementation class MyFilter */ @WebFilter("/MyFilter") public class MyFilter implements Filter { /** * Default constructor. */ public MyFilter() { // TODO Auto-generated constructor stub } /** * @see Filter#destroy() */ public void destroy() { // TODO Auto-generated method stub } /** * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain) */ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // TODO Auto-generated method stub // place your code here // pass the request along the filter chain chain.doFilter(request, response); } /** * @see Filter#init(FilterConfig) */ public void init(FilterConfig fConfig) throws ServletException { // TODO Auto-generated method stub } }
说明:1,案例的web.xml配置是spring的的字符集过滤器和struts的过滤器 他们两个filter组成了一个FilterChain(过滤链)
2,是一个空得实现了Filter接口的类;里面具体的方法功能都能看出来;如果看不出来 就查API 如果不会查那就别学JAVA了(嘿嘿 查API是最基本的 学习方式)
这个很重要 struts域servlet的分离就是通过filter实现的
来来来看API:
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。