摘要:
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() {
}
}
|