`

servlet,RMI,webservice之间的区别

阅读更多

最近项目中有提供或者调用别的接口,在纠结中到底是用servlet还是用webservice,所以上网查看了下他们以及RMI之间的区别,方便加深了解。

  首先比较下servlet和webservice下
  请求:   
  servlet:提供了请求/响应模式,是JAVA的一种规范,只能使用于java上,用来替代早期使用的难懂的CGI,是一种无状态的请求响应,客户端访问一个服务器的url,只需要发送简单的httprequest即可。 规定了四个范围:pageContext、request、session、application。一定依赖于各种SERVLET容器,但servlet只能接受一个简单的http请求;   
  WebService最早是微软提出了一种以XML为载体网络信息传输的规范,现在几乎所有的语言与平台都支持,带有状态机制,不依赖于SERVLET容器,可以发送一个xml作为其请求内容,WebService通常是基于http的远程方法调用(RMI),号称是可以反回远程对象, 一般来说客户段可以象调用本地方法一样调用WebService的方法。  

  传输:   
  servlet使用http协议传输数据,如果你用Servlet返回XML,那个XML的描述框架就是你定的,必须告知使用者具体的说明,没有统一标准。   
  webservice使用固定的XML格式封装成soap消息,可以使用http作为底层数据传输,但并不局限于http协议,方法返回消息是有标准的。   
    
  返回结果:   
  servlet返回的是html页面;   
  webservice返回的可以是复杂对象甚至使用附件或者mutidata的二进制文件。   
    
  部署:   
  servlet需要遵守j2ee的Web   Application规范部署的应用服务器上,如tomcat,weblogic,websphere;   
  WebService则需要有WSDL文件来部署服务,或者使用UDDI注册。   
    
  优势:   
  WebService的跨平台特性是servlet不能比的,可以被各种语言调用;   
  servlet相对来说速度上的优势也是不可忽视的。

  

 

  接下来在看看RMI和webservice中的
 
  rmi的客户端和服务端都必须是java,webservice没有这个限制
  webservice是在http协议上传递xml文本文件,与语言和平台无关
  rmi是在tcp协议上传递可序列化的java对象,只能用在java虚拟机上,绑定语言
  RMI是EJB远程调用的基础,仅用RMI技术就可以实现远程调用,使用EJB是为了实现组件,事物,资源池,集群等功能。
  WebService是通过XML来传输数据,可用http等协议因此可在异构系统间传递,并且可以穿过防火墙,可在公网上远程调用
分享到:
评论

相关推荐

    javawebservice例子.pdf

    Java WebService是一个基于标准的,用于构建分布式应用程序的开放平台,它允许不同系统间的应用程序通过...理解这些基础将有助于你更好地掌握Java WebService的开发,并应用于实际项目中,实现不同系统之间的无缝集成。

    axis1.4+ibatis2.3开发webservice服务[图解]

    #### Axis 1.4与Axis 2的主要区别 - **架构差异**:Axis 1.4与Axis 2并非简单的前后代关系,而是由不同的开发团队维护。这导致两者之间存在较大的架构差异。 - **兼容性问题**:Axis 2在某些特定场景下(如读取配置...

    Struts+Spring+Hibernate+WebService集成架构.doc

    实现Struts+Spring+Hibernate+WebService的集成架构,关键在于各层之间的协调工作。例如,Action在接收到用户请求后,调用Spring管理的业务逻辑组件执行业务处理,处理结果通过DAO层和Hibernate持久化至数据库,最终...

    3步把您的JAVA程序转换为WEBSERVICE

    确保安装了J2SE SDK 1.3或1.4版本,并且使用支持的Servlet容器,如Tomcat 5.0。 2. **部署Axis** 将下载的Axis解压缩到指定路径,例如 `Axis_UNZip_PATH\Axis-version\webapps`,然后将该文件夹复制到你的Tomcat...

    java WebService例子 收藏.doc

    它允许不同平台上的应用程序通过网络进行通信,实现了服务提供者和服务消费者之间的松耦合。 在Java中,Apache Axis是一个流行的开源工具,用于创建和部署Web服务。下面是关于如何使用Axis创建和调用Java ...

    Axis开发WebService实例.pdf

    - **Servlet Container**: 使用Tomcat作为Servlet容器,本文档使用的是Tomcat 5.0。 - **安装步骤**: 1. **下载Axis安装包**:访问官方网站http://ws.apache.org/axis/下载最新版的Axis安装包。 2. **解压...

    Java面试题答案.pdf

    2. **远程调用中间件**:支持分布式系统的组件之间进行方法调用,如RMI(Remote Method Invocation)或CORBA(Common Object Request Broker Architecture)。 3. **消息中间件**:提供异步消息传递,如JMS(Java ...

    软件工程师面试题(含答案) (2).pdf

    例如,RMI(Remote Method Invocation)是Java中的远程方法调用中间件,允许Java对象在不同 JVM 之间进行通信。 - 中间件分类: - 数据访问中间件:如ODBC,JDBC,用于数据库访问。 - 远程调用中间件:如RMI,...

    java面试题集锦

    例如,RMI允许Java对象在不同JVM之间进行方法调用,从而实现分布式系统的构建。 总结: 在Java面试中,了解和掌握MVC设计模式的原理及其在Struts框架中的应用、WebService的定义、工作原理和优点,以及中间件的概念...

    Web部分笔试题.doc

    - **C (Controller):** 控制器作为模型和视图之间的桥梁,负责处理用户的输入,并根据这些输入更新模型和视图。 **MVC框架的一种实现模型 - 模型二 (Servlet-centric)** 模型二是MVC的一种实现方式,其核心是...

    Java软件工程师面试.pdf

    以RMI为例,它是Java平台上的远程方法调用技术,允许对象在不同的JVM之间透明地调用方法,增强了分布式系统的功能和效率。 在面试中,Java软件工程师应深入理解这些概念,能够分析它们的工作原理,以及在实际项目中...

    软件工程师面试题(含答案).doc

    - **远程调用中间件**:支持不同网络节点间的对象调用,如RMI(Remote Method Invocation)或CORBA。 - **消息中间件**:提供异步消息传递,如JMS(Java Message Service)。 - **交易中间件**:处理分布式事务,...

    java程序员部分面试题答案范文.pdf

    - Controller:作为Model和View之间的桥梁,处理用户输入,控制数据流向,通常以Servlet或Struts中的ActionServlet为例。 Struts是一个基于MVC模式的Web应用框架,它的Controller由ActionServlet实现,Model由...

    软件工程师面试题嵌入式CC++笔试题(含答案)

    例如,远程方法调用(RMI)允许一个Java虚拟机上的对象调用另一个Java虚拟机上的对象的方法;负载均衡(LoadBalancing)则用于将访问负荷分散到各个服务器中,避免单个服务器压力过大导致性能瓶颈。

    java struts jsp spring面试题

    WebService是一种遵循特定标准的服务接口,它允许应用程序之间通过HTTP协议进行相互通信。WebService的关键特点是跨语言和跨平台性,这得益于其基于XML的标准协议。 - **WebService的组成**:主要包括WSDL(Web ...

    软件工程师面试题

    ### 软件工程师面试题解析 #### 一、MVC设计模式理解及...例如,RMI(Remote Method Invocation)允许Java对象跨越网络进行调用;而Load Balancing和Transparent Fail-over则是用于提高系统性能和可靠性的中间件功能。

    软件工程师面试题(含答案) (3).docx

    中间件可以分为多种类型,如数据访问中间件(用于数据库访问),远程调用中间件(如RMI,Remote Method Invocation,用于Java应用间的远程方法调用),消息中间件(如MQ,Message Queue,处理异步通信),交易中间件...

    软件工程师面试题(含答案) (2).docx

    2. **远程调用中间件**:如RMI(Remote Method Invocation),支持Java对象间的远程调用。 3. **消息中间件**:如JMS(Java Message Service),提供异步消息传递服务,确保消息的可靠传输。 4. **交易中间件**:如...

Global site tag (gtag.js) - Google Analytics