【过滤器篇】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文件下注册这个过滤器,注册过滤器有两部分,分别是过滤器的名字和过滤器的资源路径。

  代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <display-name></display-name>	
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
    <filter>
        <filter-name>FirstFilter</filter-name>
        <filter-class>com.filter.FirstFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>FirstFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

4.运行项目

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值