Servlet 3.0

一、新特性

    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<Part> 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与自定义程序解耦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值