ch2-7 Servlet 3新特性.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java EE应用开发 第2章 Servlet 3新特性 Servlet 3.0的Annotation 与以前的API相比,Servlet 3.0允许不在web.xml文件中配置组件,而是采用Annotation来配置组件。配置组件的Annotation有如下几个: – @WebServlet:用于修饰一个Servlet类,用于部署Servlet类。 – @WebInitParam:用于与@WebServlet或@WebFilter一起使用,为Servlet、Filter配置参数。 – @WebListener:用于修饰Listener类,用于部署Listener类。 – @WebFilter:用于修饰Filter类,用于部署Filter类。 – @MultipartConfig:用于修饰Servlet,指定该Servlet将会负责处理multipart/form-data类型的请求(主要用于文件上传)。 – @ServletSecurity:这是一个与JAAS有关的Annotation,修饰Servlet指定该Servlet的安全与授权控制。 – @HttpConstraint:用于与@ServletSecurity一起使用,用于指定该Servlet的安全与授权控制。 – @HttpMethodConstraint:用于与@ServletSecurity一起使用,用于指定该Servlet的安全与授权控制。 Servlet 3.0的Web模块支持 Servlet3.0为模块化开发提供了良好的支持,Servlet 3.0规范不再要求所有Web组件(如Servlet、Listener、Filter等)都部署在web.xml文件中,而是允许采用“Web模块”来部署、管理它们。 一个Web模块通常对应于一个JAR包,这个JAR包有如下文件结构: – webModule.jar——这是Web模块的JAR包,可以改变 –|-META-INF –| |-web-fragment.xml –|-Web模块所用的类文件、资源文件等。 web-fragment.xml与web.xml的作用、文档结构基本相似,都用于部署、管理各种Web组件。 web-fragment.xml还包含以下子元素: name…/:指定web模块的名称 ordering…/:用于指定加载当前web模块的相对顺序 Web模块的优势 Servlet3.0的Web模块支持为模块化开发、框架使用提供了巨大的方便,例如需要在Web应用中使用Web框架,这就只要将该框架的JAR包复制到Web应用中即可。因为这个JAR包的META-INF目录下可以通过web-fragment.xml文件来配置该框架所需的Servlet、Listener、Filter等,从而避免修改Web应用的web.xml文件。 Web模块支持对于模块化开发也有很大的帮助,开发者可以将不同模块的Web组件部署在不同的web-fragment.xml文件中,从而避免所有模块的配置、部署信息都写在web.xml文件中,这对以后的升级、维护将更加方便。 只须将Web模块拷贝到WEB-INF/lib下,完成Web应用的整合 Servlet 3.0提供的异步处理 Servlet 3.0的异步处理是通过AsyncContext类来处理的,Servlet可通过ServletRequest的如下两个方法开启异步调用、创建AsyncContext对象: – AsyncContext startAsync() – AsyncContext startAsync(ServletRequest, ServletResponse) 开启异步调用 对于希望启用异步调用的Servlet而言,开发者必须显式指定开启异步调用,为Servlet开启异步调用的有两种方式: – 为@WebServlet指定asyncSupported=true。 – 在web.xml文件的servlet.../元素中增加async-supported.../子元素。 异步监听器 当Servlet启用异步调用的线程之后,该线程的执行过程对开发者是透明的。但在有些情况下,开发者需要了解该异步线程的执行细节,并针对特定的执行结果进行针对性的处理,这可借助于Servlet 3.0提供的异步监听器来实现。 异步监听器需要实现AsyncListener接口,实现该接口的监听器类需要实现如下4个方法: – onStartAsync(AsyncEvent event):当异步调用开始时触发该方法。 – onComplete(AsyncEvent event):当异步调用完成时触发该方法。 – onError(AsyncEvent event):当异步调用出错时触发该

文档评论(0)

dart003 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档