摘要:

Servlet3.0作为J2EE 6规范一部分,并随J2EE6一起发布,WeFilter是过滤器注解,是Servlet3.0的新特性,不需要在web.xml进行配置,简化了配置。

Name

Type

Required

Description

filterName

String

Optional

Name of the filter.

value

or

urlPatterns

String[]

Required

Specify one or more URL patterns to which the filter applies. Either of attribute can be used, but not both.

dispatcherTypes

DispatcherType[]

Optional

Specify types of dispatcher to which the filter applies. Default isjavax.servlet.DispatcherType.REQUEST

servletNames

String[]

Optional

Specify names of servlets to which the filter applies.

displayName

String

Optional

Display name of the filter.

description

String

Optional

Description of the filter.

asyncSupported

boolean

Optional

Specify whether the filter supports asynchronous operation mode. Default is false.

initParams

WebInitParam[]

Optional

Specify one or more initialization parameters of the filter. Each parameter is specified by@WebInitParamannotation type.

smallIcon

String

Optional

Specify name of the small icon of the filter.

largeIcon

String

Optional

Specify name of the large icon of the filter.

OneFilter:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package com.what21.servlet.webfilter;
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;
@WebFilter("/*")
public class OneFilter implements Filter {
    @Override
    public void init(FilterConfig config) throws ServletException {
    }
    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        System.out.println("OneFilter doFilter()");
        chain.doFilter(request, response);
    }
    @Override
    public void destroy() {
    }
}

TwoFilter:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package com.what21.servlet.webfilter;
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;
@WebFilter(servletNames = "MyFourServlet")
public class TwoFilter implements Filter {
    @Override
    public void init(FilterConfig config) throws ServletException {
    }
    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        System.out.println("TwoFilter doFilter()");
        chain.doFilter(request, response);
    }
    @Override
    public void destroy() {
    }
}

ThreeFilter:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package com.what21.servlet.webfilter;
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;
@WebFilter(servletNames = {"MyFourServlet", "MyFiveServlet"})
public class ThreeFilter implements Filter {
    @Override
    public void init(FilterConfig config) throws ServletException {
    }
    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        System.out.println("ThreeFilter doFilter()");
        chain.doFilter(request, response);
    }
    @Override
    public void destroy() {
    }
}

FourFilter:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package com.what21.servlet.webfilter;
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;
@WebFilter({"/one","/two"})
public class FourFilter implements Filter {
    @Override
    public void init(FilterConfig config) throws ServletException {
    }
    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        System.out.println("FourFilter doFilter()");
        chain.doFilter(request, response);
    }
    @Override
    public void destroy() {
    }
}

FiveFilter:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package com.what21.servlet.webfilter;
import java.io.IOException;
import javax.servlet.DispatcherType;
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;
import javax.servlet.annotation.WebInitParam;
@WebFilter(
    urlPatterns = "/five",
    filterName = "FiveFilter",
    initParams = {
        @WebInitParam(name = "name", value = "username"),
        @WebInitParam(name = "value", value = "password")
    },
    description = "MyFiveFilter",
    dispatcherTypes = {DispatcherType.REQUEST, DispatcherType.FORWARD}
)
public class FiveFilter implements Filter {
    @Override
    public void init(FilterConfig config) throws ServletException {
        String name = config.getInitParameter("name");
        String value = config.getInitParameter("value");
        System.out.println("name = " + name);
        System.out.println("value = " + value);
        System.out.println("init().....");
    }
    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        System.out.println("FiveFilter doFilter()");
    }
    @Override
    public void destroy() {
    }
}

转载于:https://www.cnblogs.com/xingzc/p/7519507.html

Servlet3.0新特性WebFilter(Annotation Filter)详解相关推荐

  1. Java基础加强-(注解,动态代理,类加载器,servlet3.0新特性)

    1.   Annotation注解 1.1.  Annotation概述 Annotation是JDK 5.0以后提供对元数据的支持,可以在编译.加载和运行时被读取,并执行相应的处理.所谓Annota ...

  2. servlet3.0新特性_查看Servlet 3.0的新增功能

    servlet3.0新特性 随着JEE6规范上市,在企业应用程序领域中如何开发应用程序方面发生了一些重大变化. 在本文中,我将介绍有关Web应用程序开发的一些更改. 首先,请告别web.xml部署描述 ...

  3. Java-Web 基础加强之泛型、注解和Servlet3.0新特性

    目录 一.泛型 1.泛型类 2.泛型方法 3.继承(实现)泛型类(接口) 4.通配符 (1)通配符概述 (2)通配符的缺点 (3)通配符的限制 (4)带有下边界的通配符 (5)带有下边界的通配符 (6 ...

  4. 【Servlet3.0新特性】第03节_文件上传

    这是一个Web Project 首先是web.xml <?xml version="1.0" encoding="UTF-8"?> <web- ...

  5. Spark 3.2.0 版本新特性 push-based shuffle 论文详解(一)概要和介绍

    前言 本文隶属于专栏<大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见大数据技术体系 目录 Spark 3.2.0 ...

  6. Spark 3.2.0 版本新特性 push-based shuffle 论文详解(二)背景和动机

    前言 本文隶属于专栏<大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见大数据技术体系 目录 Spark 3.2.0 ...

  7. 【java8新特性】——Stream API详解(二)

    一.简介 java8新添加了一个特性:流Stream.Stream让开发者能够以一种声明的方式处理数据源(集合.数组等),它专注于对数据源进行各种高效的聚合操作(aggregate operation ...

  8. Java自学手记——servlet3.0新特性

    servlet3.0出来已经很久了,但市场上尚未普遍应用,servlet3.0有三个比较重要的新特性:使用注解来代替配置文件,异步处理以及上传组件支持. 支持servlet3.0的要求:MyEclip ...

  9. Servlet3.0新特性全解

    tomcat 7以上的版本都支持Servlet 3.0 Servlet 3.0 新增特性 注解支持:Servlet.Filter.Listener无需在web.xml中进行配置,可以通过对应注解进行配 ...

最新文章

  1. 算法导论笔记- 二叉查找树问题
  2. 我的世界局域网联机找不到服务器,我的世界局域网联机显示无效的会话和搜不到主机...
  3. eof怎么结束输入_西门子S71500数字量输入模块如何编址?
  4. oracle的工具cmd,数据库命令行工具DBCLI
  5. Python+sklearn使用朴素贝叶斯算法识别中文垃圾邮件
  6. PHP的 Warning: Cannot modify header information - headers already sent by警告
  7. matlab 声明多个变量,Matlab for 多个变量循环能不能这样啊 ,求教高手!!!!...
  8. 虚拟机安装BackTrack 5 的教程详解!
  9. PDF虚拟打印机怎么虚拟打印
  10. SWAT模型学习(三)
  11. 关于 cdn、回源等问题一网打尽
  12. python程序设计实用教程答案_Python程序设计实用教程
  13. TIBCO中间件 介绍与部署
  14. OpenLayers汇总目录
  15. 小米手机怎么录制视频 手机录制视频的方法
  16. SimpleDateFormat大写Y和小写y的区别
  17. 当我精通vue2的源码dep和watcher的关系时
  18. 详解申请微信h5支付方法,开通微信h5网页支付接口(转)
  19. 预防甲型流感病毒的注意事项和方法
  20. 微信公众号商城是否需要云服务器,云商城公众号绑定、微信支付配置文档

热门文章

  1. asp 取数据 计算_地学数据 | 地理空间数据获取方式汇总
  2. c和python的区别动图_C语言与Python 对程序员的差别到底在哪?
  3. php表单确认密码,jQuery表单验证之密码确认实例详解
  4. 安装VMware Tools 灰色解决办法
  5. @RequestBody注解分析
  6. java forEach使用
  7. python360百科_python抓取360百科踩过的坑!
  8. linux 页面内容输出,Node.js 一个简单的页面输出
  9. linux 安装centos7,linux CentOs7 安装 Autojump 方便高效省事-Go语言中文社区
  10. Apache Flink 零基础入门(十八)Flink Table APISQL