参考:
http://blog.csdn.net/xiazdong/article/details/7208316
http://tomcat.apache.org/tomcat-7.0-doc/servletapi/index.html
1 支持Annotation
支持Annotation,简化甚至离开web.xml
1.1 设置方法
- Servlet类 @WebServlet
- Filter类 @WebFilter
- Listener类 @WebListener
1.2 参数初始化方式
- 注解里面的initParam参数
- @WebInitParam注解
1.3 支持其它注解
- 安全相关的注解 如 @DeclareRoles 和 @RolesAllowed
- 使用EJB的注解 如 @EJB 和 @EJBs
- 资源注入相关的注解 如 @Resource 和 @Resources
- 使用JPA的注解 @PersistenceContexts, @PersistenceUnit, 和 @PersistenceUnits, 如 @PersistenceContext
- 生命周期的注解 如 @PostConstruct和 @PreDestroy
- 提供WebService引用的注解 如 @WebServiceRef and @WebServiceRefs
- web.xml和注解选择 根据web.xml的metadata-complete来选择,如果其为true,则不处理注解
1.4 web.xml和注解选择
根据web.xml的metadata-complete来选择,如果其为true,则不处理注解
2 简化web.xml
可以将每个Servlet、Filter、Listener打成jar包,然后放在WEB-INF\lib中;注意各自的模块都有各自的配置文件,这个配置文件的名称为 web-fragment.xml
2.1 制作一个Servlet模块的步骤
- 1.编写Servlet,并编译;
- 2.将此编译class文件及所在包通过jar包命令打成jar包;
- 3.将此jar包用winrar打开,并将其中的META-INF中的manifest删除并添加 web-fragment.xml;
- 4.将此jar包放入WEB-INF\lib中即可;
2.2 多个web-fragment之间顺序
- 1 绝对指定 web.xml中使用:<absolute-ordering>
- 2 相对指定 Web-fragment.xml中使用:<ordering>
3 异步处理
使用步骤:
- 1 Annotation中注明: asyncSupported=true
- 2 实现异步监听接口: AsyncListener
- public void onStartAsync(AsyncEvent event)throws IOException;
- public void onComplete(AsyncEvent event);
- public void onTimeout(AsyncEvent event);
- public void onError(AsyncEvent event);
- 3 添加监听器: 在Servlet异步处理处添加:actx.addListener(new MyListener())
4 文件上传改进
4.1 改进内容:
原来用 common-fileupload或SmartUpload,现在不需导入任何jar包
4.2 注意4点
- 1 html中 <input type="file">表示文件上传控件;
- 2 form的 enctype="multipart/form-data";
- 3 在Servlet类前加上 @MultipartConfig
- 4 request.getPart()获得;
5 Cookies
改进内容:支持HttpOnly的cookie,不向客户端暴露script代码
Cookie类中添加如下方法:
- void setHttpOnly(boolean isHttpOnly)
- Boolean isHttpOnly()
6 改进ServletContext
改进内容:允许Servlet或filter被编程的加入到context中
ServletContext添加如下方法:
- AddServlet(*)
- AddFilter(*)
- SetInitParameter (String name, String Value)
7 Comet技术
7.1 CS模式
- 客户端轮询:Ajax
- 服务器推送:1 浏览器安装插件基于套接口;或使用RMI,CORBA远程调用
7.2 实现方式:
- 1 基于ajax的长轮询方式 long-polling
- 2 基于iframe及htmlfile的流方式