文档章节

JAVA_web_filter

天呀鲁哇
 天呀鲁哇
发布于 2015/02/10 14:43
字数 456
阅读 140
收藏 5

    什么是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:



© 著作权归作者所有

共有 人打赏支持
上一篇: java_web_Log4j
天呀鲁哇
粉丝 8
博文 98
码字总数 42007
作品 0
长宁
程序员
私信 提问
JA-SIG(CAS)学习笔记1

实验背景: 系统环境: Windows XP | SUN JDK1.6U4 | Tomcat6.0.14 | CAS Server 3.1.1 + CAS Client 2.1.1 主机完整名称: Linly 浏览器: FireFox V2.0.0.11 实验步骤: STEP 1,搭建Java ......

张xtpgyaps
2011/06/30
0
1
CKEditor和CKFinder整合实现上传下载功能

事先说明:此整合的是java版本的, 用到的有:jsp + ckeditor + ckfinder (没有servlet 及其它框架技术) 一.需要的资源: 用到的网站,文件自己下载: a) ckeditor_3.6.2 (解压) download...

jxlgzwh
2013/03/06
0
0
logback MDC(Mapped Diagnostic Context)与分布式系统的跟踪系统

logback MDC(Mapped Diagnostic Context)与分布式系统的跟踪系统 logback官方文档中第8章Mapped Diagnostic Context给我们提供了一些分布式系统的跟踪系统实现的方法。 logback设计的一个目标...

Beaver_
2015/07/29
1K
0
在Eclipse下 Ant打包报错

这个是build.xml源文件 java:comp/UserTransaction C:\\tmp C:\\EDI_SHDG_HOME_VAR C:\\EDI_RECEIVE_VAR C:\\EDI_SHDG_TRANS_HOME_VAR C:\\EDI_DOC_UIF_HOME_VAR C:\\EDI_LCL_BKG_UIF_HOME_......

時間會抹平那些皺褶遺
2015/08/11
907
1
SSI的困惑,求解。

web.xml如下: Java代码 struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 *.action struts2 *.jsp org.springframework.web.context.ContextLoader......

姜虎
2010/10/11
588
10

没有更多内容

加载失败,请刷新页面

加载更多

React SSR样式及SEO的实践

前一篇主要记录了一下SSR配置以及结合Redux的使用。这里简单说一下React SSR中样式处理和更优雅的SEO SSR样式 在React客户端渲染,添加样式很容易。写一个css样式文件,在对应组件中引用。标...

前端小攻略
24分钟前
3
0
华为手机太猛!余承东吹的牛今天都实现了

华为是世界上少有的在2B和2C领域同时取得成功公司。如今,华为消费者业务的营收,已经在华为总营收中占据“半壁江山”。 12月27日,华为董事长郭平在新年致辞中披露,预计2018年华为预计实现...

linux-tao
35分钟前
4
0
JSP的Model2模式

整体可以看做是 Request > Control > ( Service > DAO > POJO ) > Response POJO是数据实体类,最佳实践是与数据库物理表相对应,方便用工具进行生成,也易于理解。由于直接与物理表相对应...

max佩恩
43分钟前
2
0
rabbitMQ的使用

RabbitMQ介绍 RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种。 AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间...

狼王黄师傅
48分钟前
1
0
面向对象继承

第1章 面向对象 1.1 知识回顾 1.Java中的数据类型 2.引用数据类型String中的方法 3.IO流_读写文件 1.2 面向对象概念回顾 什么叫面向对象编程?有人是这么理解的 也有人说不对,面向对象编程是你...

stars永恒
55分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部