servlet3.0部分新特性:@WebServlet、@WebInitParam、@WebFilter、@WebListener、@MultipartConf

来源:互联网 发布:东华软件java笔试题 编辑:程序博客网 时间:2024/06/05 14:56

引言:无意之间看到前辈配置德鲁伊监控的时候添加的servlet过滤器,才发现自己又一次的out了,于是查了一下,servlet3.0在2009年居然就出来了

@WebServlet

@WebServlet 用于将一个类声明为 Servlet,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为 Servlet。该注解具有下表给出的一些常用属性(以下所有属性均为可选属性,但是 vlaue 或者 urlPatterns 通常是必需的,且二者不能共存,如果同时指定,通常是忽略 value 的取值):

属性说明:

属性名 类型 描述 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 的显示名,通常配合工具使用,等价于 标签。

例:

@WebServlet(    urlPatterns = {"/simple"},     asyncSupported = true,     loadOnStartup = -1,     name = "SimpleServlet",     displayName = "ss",     initParams = {        @WebInitParam(name = "username", value = "tom")        @WebInitParam(name = "password", value = "123456")    } ) public class SimpleServlet extends HttpServlet{ … }

相同的web.xml配置:

<servlet>    <display-name>ss</display-name>    <servlet-name>SimpleServlet</servlet-name>    <servlet-class>footmark.servlet.SimpleServlet</servlet-class>    <load-on-startup>-1</load-on-startup>    <async-supported>true</async-supported>    <init-param>        <param-name>username</param-name>        <param-value>tom</param-value>    </init-param></servlet><servlet-mapping>    <servlet-name>SimpleServlet</servlet-name>    <url-pattern>/simple</url-pattern></servlet-mapping>

@WebInitParam

该注解通常不单独使用,而是配合 @WebServlet 或者 @WebFilter 使用。它的作用是为 Servlet 或者过滤器指定初始化参数,这等价于 web.xml 中 和 的 子标签。@WebInitParam 具有下表给出的一些常用属性:

属性说明:

属性名 类型 是否可选 描述 name String 否 指定参数的名字,等价于 。 value String 否 指定参数的值,等价于 。 description String 是 关于参数的描述,等价于 。

@WebFilter

@WebFilter 用于将一个类声明为过滤器,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为过滤器。该注解具有下表给出的一些常用属性 ( 以下所有属性均为可选属性,但是 value、urlPatterns、servletNames 三者必需至少包含一个,且 value 和 urlPatterns 不能共存,如果同时指定,通常忽略 value 的取值 ):

属性说明:

属性名 类型 描述 filterName 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 该过滤器的显示名,通常配合工具使用,等价于 标签。

例:

@WebFilter(    servletNames = {"SimpleServlet"},    filterName="SimpleFilter") public class LessThanSixFilter implements Filter{...}

相同的web.xml配置

<filter>     <filter-name>SimpleFilter</filter-name>     <filter-class>xxx</filter-class> </filter> <filter-mapping>     <filter-name>SimpleFilter</filter-name>     <servlet-name>SimpleServlet</servlet-name> </filter-mapping>

@WebListener

该注解用于将类声明为监听器,被 @WebListener 标注的类必须实现以下至少一个接口:

ServletContextListenerServletContextAttributeListenerServletRequestListenerServletRequestAttributeListenerHttpSessionListenerHttpSessionAttributeListener

该注解使用非常简单,其属性如下:

属性名 类型 是否可选 描述 value String 是 该监听器的描述信息。

例:

@WebListener("This is only a demo listener") public class SimpleListener implements ServletContextListener{    ...}

@MultipartConfig

该注解主要是为了辅助 Servlet 3.0 中 HttpServletRequest 提供的对上传文件的支持。该注解标注在 Servlet 上面,以表示该 Servlet 希望处理的请求的 MIME 类型是 multipart/form-data。另外,它还提供了若干属性用于简化对上传文件的处理。具体如下:

属性名 类型 是否可选 描述 fileSizeThreshold int 是 当数据量大于该值时,内容将被写入文件。 location String 是 存放生成的文件地址。 maxFileSize long 是 允许上传的文件最大值。默认值为 -1,表示没有限制。 maxRequestSize long 是 针对该 multipart/form-data 请求的最大数量,默认值为 -1,表示没有限制。

转自:https://www.ibm.com/developerworks/cn/java/j-lo-servlet30/ IBM

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 中天房车 中天门 吴中天 中天吾乡 中天钢铁 中天人力 少中天 中天门旅游 中天之世 st中天 新壶中天 st中天股吧 中天镇 中天城投 中天招聘 壶中天 中天电视 王中天 中天合创 中天贵金属 中天房地产 中天同花顺 下中天 皓月中天 中天建设集团有限公司 中天建设集团有限 中天建设集团 中天金融股吧 中天科技股吧 中天能源股吧 中天金融股票 中天人力资源网 中天人力资源 中天科技集团 河源中天赛鸽公棚 江苏中天科技股份有限公司 000540中天金融 中天盛祥科技有限公司 深圳中天精装股份有限公司 河源中天公棚 江苏中天科技