过滤器Filter(17/4/8)

1:是JavaWeb三大组件之一:

Servlet、Lisener(2个感知监听器不需要配置)、Filter

:2:过滤器

它会在一组资源(jsp、servlet、css、html等等)的前面执行!

它可以让请求达到目标资源,也可以不让请求达到!

*过滤器有拦截请求的能力!相当于小区中的保安

3:过滤器的写法

写一个类实现Filter接口

在web.xml中进行配置

4:Filter 接口

void init(FilterConfig)

创建后马上执行;Filter在服务器启动时就创建

void destory()

销毁之前执行!在关闭服务器之前销毁

void doFilter(ServletRequest,ServletResponse,FilterChain)

每次过滤时都会执行

Filter是单例的!即只能实例化一次

5:web.xml中的配置

<filter>
    <filter-name>AFilter</filter-name>
    <filter-class>filter.AFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>AFilter</filter-name>
//这里可以是/web/*;或者是/AServlet  
<url-pattern>/AServlet</url-pattern>
</filter-mapping>

6:代码
	1)servlet
package servlet;

import java.io.IOException;

/**
 * Created by YuWenHui on 2017/4/8 0008.
 */
public class AServlet extends javax.servlet.http.HttpServlet {
    protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {

    }

    protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
        System.out.println("AServlet.....");
    }
}
	2)filter
package filter;

import javax.servlet.*;
import java.io.IOException;

/**
 * Created by YuWenHui on 2017/4/8 0008.
 */
public class AFilter implements Filter {
    public void destroy() {
        System.out.println("destroy。。。");
    }

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        System.out.println("doFilter。。。");
//这里将请求传递下去,如果不符合条件这另作处理
        chain.doFilter(req, resp);
    }

    public void init(FilterConfig config) throws ServletException {
        System.out.println("init。。。");
    }

}
	
3)配置文件	
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <filter>
        <filter-name>AFilter</filter-name>
        <filter-class>filter.AFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>AFilter</filter-name>
        <url-pattern>/AServlet</url-pattern>
    </filter-mapping>
    <servlet>
        <servlet-name>AServlet</servlet-name>
        <servlet-class>servlet.AServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>AServlet</servlet-name>
        <url-pattern>/AServlet</url-pattern>
    </servlet-mapping>
</web-app>







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值