【过滤器篇】1.一个简单的过滤器demo

1.工程介绍

  我们要实现一个过滤器,这个过滤器能够过滤我们指定的资源路径,然后做出相应的操作。

  在这个demo中,主要介绍如何在过程中创建一个过滤器以及过滤器在过滤一个资源时的生命周期是怎样的。

  工程的下载地址

2.创建过滤器

  创建一个class:FirstFilter.java,该类实现java.servlet包下的Filter接口。然后它会自动生成接口中的三个方法,分别是初始化,doFilter和销毁方法。为了演示过滤器生命周期的执行过程,在对应方法中添加控制台的输出信息。

  具体代码如下:

package com.filter;

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;

/*
 * 2018.5.3 Dragon
 * 过滤器生命周期的demo
 */
public class FirstFilter implements Filter {

	@Override
	public void destroy()
	{
		System.out.println("destroy");
	}

	@Override
	public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
			FilterChain filterChain) throws IOException, ServletException {
		System.out.println("start----------doFilter");
		filterChain.doFilter(servletRequest, servletResponse);
		System.out.println("end------------doFilter");
	}

	@Override
	public void init(FilterConfig arg0) throws ServletException 
	{
		System.out.println("init");
	}

}

3.注册过滤器

  然后需要我们在web.xml文件下注册这个过滤器,注册过滤器有两部分,分别是过滤器的名字和过滤器的资源路径。

  代码如下:



  	
  
    index.jsp
  
    
        FirstFilter
        com.filter.FirstFilter
    
    
        FirstFilter
        /*
    


4.运行项目

  ok,这些都做好了,然后就是将我们的工程部署到服务器,然后跑起来。

  由控制器的打印结果可以看出来:
     当我们启动tomcat的时候,初始化方法就已经执行了;
     其次我们访问我们的工程,这个时候doFilter执行;
     在doFilter方法执行的时候,先过滤对应的网页,然后返回相应信息
     最后,我们关闭tomcat的时候,会执行destroy方法
     以上,可以看出一个过滤器的生命周期

     实例化,初始化,执行,销毁四个阶段

注意:过滤器能够改变用户请求的web资源:比如访问某一页面需要检测用户是否登录过
              但是过滤器不能直接返回数据给用户

你可能感兴趣的:(====JavaWeb,学习笔记====,过滤器,JavaWeb学习)