Servlet3.0新特性WebFilter(Annotation Filter)详解

摘要:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值