Servlet 常用注解
本文最后更新于:2024年3月18日 凌晨
Servlet 常用注解
@WebServlet
- 在servlet3.0以后,我们可以不用再web.xml里面配置servlet,只需要加上@WebServlet注解就可以修改该servlet的属性了。
- 下面是@WebServlet的属性列表。
属性名 |
类型 |
描述 |
name |
String |
指定Servlet 的 name 属性,等价于 ,如果没有显式指定,则该 Servlet 的取值即为类的全限定名, |
value |
String[] |
该属性等价于 urlPatterns 属性,两个属性不能同时使用, |
urlPatterns |
String[] |
指定一组 Servlet 的 URL 匹配模式,等价于标签, |
loadOnStartup |
int |
指定 Servlet 的加载顺序,等价于 标签, |
initParams |
WebInitParam[] |
指定一组 Servlet 初始化参数,等价于标签, |
asyncSupported |
boolean |
声明 Servlet 是否支持异步操作模式,等价于 标签, |
description |
String |
该 Servlet 的描述信息,等价于 标签, |
displayName |
String |
该 Servlet 的显示名,通常配合工具使用,等价于 标签, |
- 从上表可见,web.xml可以配置的servlet属性,在@WebServlet中都可以配置。
@WebFilter
- @WebFilter 用于将一个类声明为过滤器,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为过滤器,该注解具有下表给出的一些常用属性。
- 注意:以下所有属性均为可选属性,但是 value,urlPatterns,servletNames 三者必需至少包含一个,且 value 和 urlPatterns 不能共存,如果同时指定,通常忽略 value 的取值。
属性 |
类型 |
是否必需 |
说明 |
asyncSupported |
boolean |
否 |
指定Filter是否支持异步模式 |
dispatcherTypes |
DispatcherType[] |
否 |
指定Filter对哪种方式的请求进行过滤,支持的属性:ASYNC,ERROR,FORWARD,INCLUDE,REQUEST;默认过滤所有方式的请求 |
filterName |
String |
否 |
Filter名称 |
initParams |
WebInitParam[] |
否 |
配置参数 |
displayName |
String |
否 |
Filter显示名 |
servletNames |
String[] |
否 |
指定对哪些Servlet进行过滤 |
urlPatterns/value |
String[] |
否 |
两个属性作用相同,指定拦截的路径 |
- 自定义过滤器,实现javax.servlet.Filter接口,通过注解方式配置,拦截所有的请求,放行登录页面,登录操作请求,其余请求需要在登录后才可访问,同时配置参数,指定要放行的路径和请求的字符集。
@WebInitParam
- 放在
@WebServlet
或@WebFilter
注解的initParams
属性中。
- 等同于
web.xml
中的<init>
标签。
1 2 3 4 5 6
| @WebServlet( name = "WebInitParamExample", urlPatterns = {"/hello"} ,initParams = { @WebInitParam(name= "Site :", value="http://test.net"), @WebInitParam(name= "Rose", value= "India"), }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>servletAnnotationExample</display-name> <servlet> <servlet-name>WebInitParamExample</servlet-name> <servlet-class>roseindia.net.WebInitParamExample</servlet-class> <init-param> <param-name>Site :</param-name> <param-value>http://test.net</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>WebInitParamExample</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app>
|