J2EE7结构图

JWS:即Java Web Service,指与webservice相关的JavaEE技术部分,webservice是一种基于XML的独立的、跨平台的、互操作的应用程序,XML又包含XSD、DTD、XPath等相关技术
JAX:即Java Xml,类似地JAXB(Java Xml Binding)
常用JWS主要有:

JAX-WS 全称JavaTM API forXML-Based Web Services 又叫JAX-RPC(远程调用),顾名思义就是基于Web Services
JAX-RS 全称JavaTM API forRESTful Web Services 即使用REST风格
 两者是不同风格的SOA架构。前者以动词为中心,指定的是每次执行函数。而后者以名词为中心,每次执行的时候指的是资源。
JAX-WS是面向消息的,每次请求的时候指定了请求的方法。JAX-RS是面向资源的。后则将网络上的东西当做一种资源,每次请求都是对该资源进行操作,比如对资源的增删查改。

CDI:即Contexts Dependency Injection,和Spring的IOC差不多的东西,就是可以在组件中通过注解注入上下文、请求和响应等。

JTA:即Java Transaction API,使用过Hibernate和EJB的应该知道,就是事务处理,JTA依赖于所处的容器,如果不是分布式开发的话,我们一般使用本地事务,即是数据库本身的事务处理。

PA:即Java Persistence API,就是最常用的持久化技术,原本属于EJB中的部分,EJB3.0之后分离出来,作为一个独立的规范。作为一种ORM技术,JPA提供了基本的统一标准。

JMS:即Java Message Service,和JDBC类似,提供了一个统一的API供其他厂商实现,主要用于客户机信息的交互,JMS主要有点到点和订阅/发布两种方式。

Servlet 3.0 作为 Java EE 6 规范体系中一员,随着 Java EE 6 规范一起发布。Servlet3规范通过配置可支持异步请求(需要在xml或注解中配置参数async-supported为true),可支持插件化开发,通过注解可以让web.xml不再需要web.xml,规范本身也可以支持文件上传。该版本在前一版本(Servlet 2.5)的基础上提供了若干新特性用于简化 Web 应用的开发和部署。servlet3.1是J2EE7中规范,无阻塞 I/O、协议升级、安全性增强。

    • 参考:

    • 关键特性
      • Asynchronization(异步支持): 通过AsyncContext另起异步线程处理业务逻辑, 不再阻塞Filter或Servlet线程. 可以实现Reactor模式.
      • Pluggability(插拨支持): 通过Annotation(@WebServlet, @WebFilter, @WebListener, @WebInitParam, @MultipartConfig, @ServletSecurity, @HttpConstraint, @HttpMethodConstraint)或/META-INF/web-fragment.xml充分解耦组件,实现插拨机制.
        注意: 在web.xml设置metadata-complete="true"可以关闭Pluggability特性. 但不影响@HandlesTypes+ServletContainerInitializer的动态注册机制.
      • Fileupload(文件上传): 通过@MultipartConfig+Part实现文件上传. 不再需要apache-fileupload.
      • Dynamic Registration(动态注册):
        • 通过ServletContext.addXXX()+Registration实现.
        • 相关API只能在ServletContextListener.contextInitialized()或者ServletContainerInitializer.onStartup()中调用. 后者是基于java服务API机制实现, 需要在(/META-INF/services/javax.servlet.ServletContainerInitializer)配置实现类.
        • 动态注册不受web.xml中metadata-complete="true"影响,但优先级低于web.xml, 相同设置会被覆盖.

      以上4点是Servlet 3.0/3.1的关键特性, 其中

      • Pluggabilityr的目标是"充分解耦,实现插拨"
      • Dynamic Registration的目标是"动态注册,编程"
      • Asynchronization的目标是提高并发性能
      • FileUpload, Annotation是增加编程方便

最新文章

  1. 网络流dinic实现总结
  2. 联机事务处理OLTP(on-line transaction processing)和联机分析处理OLAP(On-Line Analytical Processing)
  3. mongoDB研究笔记:复制集数据同步机制
  4. SAP_Web_Service开发配置
  5. js中的referrer返回上一页使用介绍
  6. WinDebug 常用命令表【摘】
  7. OD调试3--reverseMe
  8. [Effective Modern C++] Item 1. Understand template type deduction - 了解模板类型推断
  9. 在asp.net中如何实现伪静态页 [转]
  10. java泛型问题 关于警告:XX is a raw type
  11. 手动编译生成apk
  12. @EnableAsync annotation metadata was not injected
  13. vue中实现全选功能
  14. Redis常用命令--Hashes
  15. 说一下Dubbo 的工作原理?注册中心挂了可以继续通信吗?
  16. 创建作业(JOB)
  17. [Err] 1093 - You can't specify target table 'master_data' for update in FROM clause
  18. gflags 学习
  19. HTML 第九章总结
  20. PHP微信公众号开发之自动回复

热门文章

  1. SQL SERVER 2000 如何提高大数据筛选GROUP BY 的效率
  2. JavaScript+CSS交互
  3. 图像局部显著性—点特征(GLOH)
  4. Arduino 操作共阴极RGB LED
  5. case when用法小结
  6. vue-router 懒加载
  7. centos 配置svn http serve
  8. elementUI 图片上传限制上传图片的宽高
  9. Bootstrap关于表单(一)
  10. App后台开发运维和架构实践学习总结(1)——App后台核心技术之用户验证方案