servlet3.0注解

servlet3.0注解

起男 1,417 2020-08-12

servlet3.0注解

servlet3.0的部署描述文件web.xml的顶层标签有一个metadata-complete属性,该属性指定当前的部署描述文件是否是完全的。如果设置为true,则容器在部署时将只依赖部署描述文件,忽略所有的注解;如果不配做该属性,或设置为false,则表示启用注解支持

@WebServlet

用于将一个类声明为servlet,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为servlet。

属性

属性名类型描述
nameString指定servlet的name属性,如果没有指定,则为类的全限定名
valueString[]相当于urlPatterns的别名,二者不能同时使用
urlPatternsString[]指定一组servlet的url匹配模式
loadOnStartupint指定servlet的加载顺序
initParamsWebInitParam[]指定一组servlet初始化参数
asyncSupportedboolean声明servlet是否支持异步操作模式
descriptionString该servlet的描述信息
displayNameString该servlet的显示名,通常配合工具使用

@WebInitParam

该注解通常不单独使用,而是配合@WebServlet或者@WebFilter使用。它的作用是为servlet或者过滤器指定初始化参数,这等价于web.xml中的子标签

属性

属性名类型是否必填描述
nameString指定参数的名称
valueString指定参数的值
descriptionString关于参数的描述

@WebFilter

用于将一个类声明为过滤器,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为过滤器

属性

属性名类型描述
filerNameString指定过滤器的name属性
valueString[]相当于urlPatterns的别名,二者不能同时使用
urlPatternsString[]指定一组过滤器的url匹配模式
servletNamesString[]指定过滤器将应用于哪些servlet
取值是@WebServlet中的name属性,或web.xml中的值
dispatcherTypesDispatcherType指定过滤器的转发模式
取值包括:ASYNC、ERROR、FORWARD、INCLUDE、REQUEST
initParamsWebInitParam[]指定一组过滤器的初始化参数
asyncSupportedboolean声明过滤器是否支持异步操作模式
descriptionString该过滤器的描述信息
displayNameString该过滤器的显示名,通常配合工具使用

@WebListener

该注解用于将类声明为监听器

被该注解标注的类必须实现以下至少一个接口

  • ServletContextListener:用于监听web应用的启动和关闭
  • ServletContextAttributeListener:用于监听servletContext范围内属性的改变
  • ServletRequestListener:用于监听用户的请求
  • ServletRequestAttributeListener:用于监听servletRequest范围内属性的改变
  • HttpSessionListener:用于监听session的开始和结束
  • HttpSessionAttributeListener:用于监听httpSession范围内属性的改变

属性

属性名类型描述
valueString该监听器的描述信息

@MultipartConfig

该注解主要是为了辅助servlet3.0中HttpServletRequest提供的对文件上传的尺寸。该注解标注在servlet上,表示该servlet希望处理请求的MIME类型是multipart/form-data

属性

属性名类型描述
fileSizeThresholdint当数据量大于该值时,内容将被写入文件
locationString存放生成的文件地址
maxFileSizelong允许上传文件的最大值。默认值为-1,表示没有限制
maxRequestSizelong针对该multipart/form-data请求的最大数量,默认值为-1,表示没有限制

@HandlesTypes

为ServletContainerInitializer接口的实现类提供感兴趣的类

容器启动时会将指定的类型及其子类传递过来

通过onStartup方法的Set<Class<?>>参数获取

属性

属性名类型描述
valueClass<?>[]感兴趣的类型

@ServletComponentScan

这是一个springboot新增的注解

作用:

  • 在SpringBootApplication上使用@ServletComponentScan注解后,Servlet、Filter、Listener可以直接通过@WebServlet、@WebFilter、@WebListener注解自动注册,无需其他代码