- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Servlet30新特性
概述 Servlet 是 Java EE 规范体系的重要组成部分,也是 Java 开发人员必须具备的基础技能, Servlet 3.0 引入的若干重要新特性,包括异步处理、新增的注解支持、可插性支持等,为读者顺利向新版本过渡扫清障碍。 Tomcat 支持servlet版本 Servlet版本 Tomcat版本 Jdk最小版本 JAVA EE版本 Servlet 2.5 Tomcat 6 1.5 Java EE5 Servlet 3.0 Tomcat7 1.6 Java EE6 servlet3.0 的新特性包括如下方面?: 异步处理支持:有了该特性,Servlet 线程不再需要一直阻塞,直到业务处理完毕才能再输出响应,最后才结束该 Servlet 线程。在接收到请求之后,Servlet 线程可以将耗时的操作委派给另一个线程来完成,自己在不生成响应的情况下返回至容器。针对业务处理较耗时的情况,这将大大减少服务器资源的占用,并且提高并发处理速度。 新增的注解支持:该版本新增了若干注解,用于简化 Servlet、过滤器(Filter)和监听器(Listener)的声明,这使得 web.xml 部署描述文件从该版本开始不再是必选的了。 可插性支持:开发者可以通过插件的方式很方便的扩充已有 Web 应用的功能,而不需要修改原有的应用。 异步处理支持 异步处理特性可以应用于 Servlet 和过滤器两种组件,由于异步处理的工作模式和普通工作模式在实现上有着本质的区别,因此默认情况下,Servlet 和过滤器并没有开启异步处理特性。 异步处理关键是在于将复杂业务处理另外开一个线程,而Servlet将执行好的业务先送往jsp输出,等到耗时业务做完后再送往JSP页面,即先显示一部分,好事业务处理完后再显示一部分。 对于使用传统的部署描述文件 (web.xml) 配置 Servlet 和过滤器的情况,Servlet 3.0 为 servlet 和 filter 标签增加了 async-supported 子标签,该标签的默认取值为 false,要启用异步处理支持,则将其设为 true 即可。以 Servlet 为例,其配置方式如下所示: servlet servlet-nameDemoServlet/servlet-name servlet-classfootmark.servlet.Demo Servlet/servlet-class async-supportedtrue/async-supported /servlet 对于使用 Servlet 3.0 提供的 @WebServlet 和 @WebFilter 进行 Servlet 或过滤器配置的情况,这两个注解都提供了 asyncSupported 属性,默认该属性的取值为 false,要启用异步处理支持,只需将该属性设置为 true 即可。以 @WebFilter 为例,其配置方式如下所示: @WebFilter(urlPatterns = /demo,asyncSupported = true) public class DemoFilter implements Filter{...} 同步情况例子: @WebServlet(name = syncServlet1, urlPatterns = /sync1) public class SyncServlet1 extends HttpServlet { @Override protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException { resp.setHeader(Connection, Keep-Alive); resp.setHeader(Proxy-Connection, Keep-Alive); resp.setContentType(text/html;charset=utf-8); PrintWriter out = resp.getWriter(); out.write(hello sync); out.write(br/); out.flush(); //假设是个耗时任务,此时必须等待 try { Thread.sleep(2L * 1000); } ca
文档评论(0)