JAVA_web_filter
JAVA_web_filter
天呀鲁哇 发表于3年前
JAVA_web_filter
  • 发表于 3年前
  • 阅读 138
  • 收藏 5
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

摘要: JAVA web filter 1,什么是filter 2,什么时候用 3,filter原理 4,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:



  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 8
博文 82
码字总数 42007
×
天呀鲁哇
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: