J2EE7与Servlet3.x

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是增加编程方便
时间: 2024-10-17 13:18:48

J2EE7与Servlet3.x的相关文章

转载 Servlet3 的 @WebServlet http://www.cnblogs.com/luxh/archive/2012/06/06/2537458.html

我使用的开发环境:MyEclipse10+Tomcat7+JDK6. 开发Servlet3的程序需要一定的环境支持.Servlet3是Java EE6规范的一部分,MyEclipse10和Tomcat7都提供了对Java EE6规范的支持. Tomcat需要Tomcat7才支持Java EE6,Tomcat7需要使用JDK6. 如果使用的MyEclipse的版本较低,没有提供Java EE6的支持,可以到Oracle官方网站下载JavaEE6的SDK进行安装,或者从Tomcat7的解压目录下的l

【1】springmvc4 + servlet3 零配置全注解入门项目helloword

自从servlet3.0支持注解,使得javaweb项目使用全注解成为可能. 注解化将成为javaweb的发展方向.包括spring去年推出的spring-boot也是全部使用注解. 代码:https://github.com/heikehuan/learning-technology-code/tree/master/springmvc-annotation-web

在tomcat上全手工部署Servlet3.0

从头写java文件的方式,编译成CLASS文件,加强对SERVLET容器的理解. 稍后试试JAR和WAR包. 文件内容(跟以前用IDE的一样): HelloServlet.java: package cc.openhome; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet

使用Servlet3.0提供的API实现文件上传

在Servlet2.5中,我们要实现文件上传功能时,一般都需要借助第三方开源组件,例如Apache的commons-fileupload组件,在Servlet3.0中提供了对文件上传的原生支持,我们不需要借助任何第三方上传组件,直接使用Servlet3.0提供的API就能够实现文件上传功能了. 一.使用Servlet3.0提供的API实现文件上传 1.1.编写上传页面 1 <%@ page language="java" pageEncoding="UTF-8"

log4j+slf4j迁移到log4j2+slf4j (Servlet3.0)

最近对系统中的旧项目实现log升级,选择了log4j2来代替log4j,作为最新一代的log实现,log4j2好在那里可以直接看log4j2性能章节. 这里写写如何从log4j升级到log4j2. 1. maven依赖的变化,对log4j的依赖变成了对log4j2的依赖,在实际使用过程中发现过旧的jboss logging会有问题,使用了3.3.0.Final支持log4j2的版本. <dependency> <groupId>org.apache.logging.log4j<

利用servlet3.0上传,纯原生上传,不依赖任何第三方包

tomcat7里面自带的servlet3.0.jar,支持很多新特性,例如,annotation配置servlet,上传,异步等等.... 如果你的tomcat版本低于7的话,单独在项目中引入servlet3.0.jar的话,有可能会出错,具体没研究过,可能是不兼容吧.所以要使用servlet3.0新特性的话,尽量使用tomcat7 不多说了,贴上代码 @WebServlet(name = "uploadServlet", urlPatterns = "/uploadServ

项目支持Servlet3.0的新特性

一.Servlet3.0介绍 Servlet3.0是Java EE6规范的一部分,Servlet3.0提供了注解(annotation),使得不再需要在web.xml文件中进行Servlet的部署描述,简化开发流程. 二.开发Servlet3.0程序的所需要的环境 开发Servlet3.0的程序需要一定的环境支持.MyEclipse10和Tomcat7都提供了对Java EE6规范的支持.Tomcat需要Tomcat7才支持Java EE6,Tomcat7需要使用JDK1.6以上的版本. 所以开

如何将低版本的myeclipse改造成可以使用servlet3.0的神器

开发servlet3.0使用的环境一般为: IDE:MyEclipse 10+ JDK:JDK 1.6+ tomcat:tomcat 7+ 如果使用的版本不够可以采用以下方法解决 1.创建WebProject (1)使用MyEclipse 新建一个Web Project,选择最高版本的Java EE5.0 (2)打开Tomcat7的解压目录下的lib文件夹中,找到我们需要的[annotations-api.jar.el-api.jar.jasper.jar.jasper-el.jar.jsp-a

servlet3.0 JQuary Ajax基本使用

servlet3.0 没有web.xml文件,需要使用注解进行配置. js: $(document).ready(function(){ $("#btn").click(function(){ $.ajax({ type:'post', url:'/testAjax/testAjax1', data:{'name':'postmethod'}, success: function (data) { alert(data); }, }); }) }); java代码如下: // @Web