servlet3.0注解
servlet3.0的部署描述文件web.xml的顶层标签有一个metadata-complete属性,该属性指定当前的部署描述文件是否是完全的。如果设置为true,则容器在部署时将只依赖部署描述文件,忽略所有的注解;如果不配做该属性,或设置为false,则表示启用注解支持
@WebServlet
用于将一个类声明为servlet,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为servlet。
属性
属性名 | 类型 | 描述 |
---|---|---|
name | String | 指定servlet的name属性,如果没有指定,则为类的全限定名 |
value | String[] | 相当于urlPatterns的别名,二者不能同时使用 |
urlPatterns | String[] | 指定一组servlet的url匹配模式 |
loadOnStartup | int | 指定servlet的加载顺序 |
initParams | WebInitParam[] | 指定一组servlet初始化参数 |
asyncSupported | boolean | 声明servlet是否支持异步操作模式 |
description | String | 该servlet的描述信息 |
displayName | String | 该servlet的显示名,通常配合工具使用 |
@WebInitParam
该注解通常不单独使用,而是配合@WebServlet或者@WebFilter使用。它的作用是为servlet或者过滤器指定初始化参数,这等价于web.xml中的子标签
属性
属性名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
name | String | 是 | 指定参数的名称 |
value | String | 是 | 指定参数的值 |
description | String | 否 | 关于参数的描述 |
@WebFilter
用于将一个类声明为过滤器,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为过滤器
属性
属性名 | 类型 | 描述 |
---|---|---|
filerName | String | 指定过滤器的name属性 |
value | String[] | 相当于urlPatterns的别名,二者不能同时使用 |
urlPatterns | String[] | 指定一组过滤器的url匹配模式 |
servletNames | String[] | 指定过滤器将应用于哪些servlet 取值是@WebServlet中的name属性,或web.xml中的值 |
dispatcherTypes | DispatcherType | 指定过滤器的转发模式 取值包括:ASYNC、ERROR、FORWARD、INCLUDE、REQUEST |
initParams | WebInitParam[] | 指定一组过滤器的初始化参数 |
asyncSupported | boolean | 声明过滤器是否支持异步操作模式 |
description | String | 该过滤器的描述信息 |
displayName | String | 该过滤器的显示名,通常配合工具使用 |
@WebListener
该注解用于将类声明为监听器
被该注解标注的类必须实现以下至少一个接口
- ServletContextListener:用于监听web应用的启动和关闭
- ServletContextAttributeListener:用于监听servletContext范围内属性的改变
- ServletRequestListener:用于监听用户的请求
- ServletRequestAttributeListener:用于监听servletRequest范围内属性的改变
- HttpSessionListener:用于监听session的开始和结束
- HttpSessionAttributeListener:用于监听httpSession范围内属性的改变
属性
属性名 | 类型 | 描述 |
---|---|---|
value | String | 该监听器的描述信息 |
@MultipartConfig
该注解主要是为了辅助servlet3.0中HttpServletRequest提供的对文件上传的尺寸。该注解标注在servlet上,表示该servlet希望处理请求的MIME类型是multipart/form-data
属性
属性名 | 类型 | 描述 |
---|---|---|
fileSizeThreshold | int | 当数据量大于该值时,内容将被写入文件 |
location | String | 存放生成的文件地址 |
maxFileSize | long | 允许上传文件的最大值。默认值为-1,表示没有限制 |
maxRequestSize | long | 针对该multipart/form-data请求的最大数量,默认值为-1,表示没有限制 |
@HandlesTypes
为ServletContainerInitializer接口的实现类提供感兴趣的类
容器启动时会将指定的类型及其子类传递过来
通过onStartup方法的Set<Class<?>>参数获取
属性
属性名 | 类型 | 描述 |
---|---|---|
value | Class<?>[] | 感兴趣的类型 |
@ServletComponentScan
这是一个springboot新增的注解
作用:
- 在SpringBootApplication上使用@ServletComponentScan注解后,Servlet、Filter、Listener可以直接通过@WebServlet、@WebFilter、@WebListener注解自动注册,无需其他代码