Servlet 3.0 vs 2.5

参考:

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 参数初始化方式
  1. 注解里面的initParam参数
  2. @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的流方式
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值