过滤器

1.什么是过滤器?

就是一个java类,需要实现接口来进行交互(jsp和servlet之间的交互)

如:烟: 烟嘴 烟体

  过滤(尼古丁、焦油) 吸

  减少烟对人的危害


在程序中也需要过滤

  在游戏中骂人的时候,自动被屏蔽(****),过滤

  访问某些页面时,未登录时会有未登录提示,过滤

  浏览器向服务器发送请求时,过滤

2.过滤器的使用

  a.创建过滤器处理类

         普通的java类,实现Filter接口

  b.在web.xml文件中配置过滤器

 


完成:中文乱码处理的过滤

  


import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

/**

*过滤器处理类

 */

public class EncodingFilter implements Filter{

  private String encod;

  /**

  *销毁销毁过滤器(服务器关闭时)

  */
    public void destroy() {
    }

  /**
  * 过滤器的核心方法
  */

  public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain) throws IOException, ServletException {
      request.setCharacterEncoding(encod);
      chain.doFilter(request, response);
  }

/**
* 初始化过滤器(服务器开启时)
*/

  public void init(FilterConfig config) throws ServletException {
    encod = config.getInitParameter("encod");
  }

}

/*在web.xml中配置过滤器*/


<filter>
  <filter-name>encodingFilter</filter-name>
  <filter-class>com.zuxia.filter.EncodingFilter</filter-class>
  <init-param>
    <param-name>encod</param-name>
    <param-value>utf-8</param-value>
  </init-param>
</filter>

<filter-mapping>
  <filter-name>encodingFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

 

posted @ 2017-07-08 18:45  知~味~  阅读(95)  评论(0编辑  收藏  举报