Servlet 3.0 您所在的位置:网站首页 vscode打war包 Servlet 3.0

Servlet 3.0

#Servlet 3.0| 来源: 网络整理| 查看: 265

一、新特性

    1、增加新注解 @WebServlet、@WebFilter、@WebListener

    2、异步支持: 在注解中或web.xml部署描述符声明的Servlet、Filer中声明async-supported为true即可,默认async-supported为false

    3、可支持性插件:不修改已有Web,只需按一定格式(即:jar包的META-INFO目录下有web-fragment.xml文件)打成jar包,放到WAR包WEB-INFO\lib目录下,即可实现新功能的扩充。

          注:1、可插拔jar包中的 @WebServlet、@WebFilter、@WebListener不起作用,Servlet、Filter、Listener必须显示声明到web-fragment.xml中,或者在ServletContainerInitializer子类动态注册,或者在ServletContextListener的contexInitialized方法中动态注册

                 2、web-fragment.xml中可用name和order标签指定加载顺序

                 3、WAR包中web.xml必须设置metadata-complete为true才支持可插拔特性,默认为false

4、ServletContext增强动态注册功能:不在部署描述符或web-fragment.xml中声明Servlet、Filter、Listener,动态注入三者

              注:1、 动态注册只能在ServletContainerInitializer的onStarup方法或ServletContextListener的contexInitialized中使用

                     2、不可在ServletContextListener中再次注入ServletContextListener的实现类

5、HttpServletRequest对文件上传的支持:

                      1、@MultipartConfig支持MIME类型是multipart/form-data

                      2、HttpServletRequest新增 Part getPart(String name)、Collection getParts()两个方法对文件处理

6、ServletContainerInitializer

                       1、子类可以用@HandlesTypes标注,也可以不用

                       2、可以一个应用有多个子类实现

                       3、用户代替web.xml,可以完成容器初试化时的一些操作,如:注册Servlet、Filter、Listener

                       4、实现子类必须在WAR包的META-INF\services下的 javax.servlet.ServletContainerInitializer文件中写入全子类名

                       5、子类可以在web-fragment模块中

                       7、使用@HandlesTypes机制,可使servlet与自定义程序解耦



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有