Servlet与WebService关系
转自:http://www.cnblogs.com/cy163/archive/2008/04/16/1155767.html
其实从实现的效果上,它们是很相似的
相同点:
客户端访问一个服务器的url,然后得到返回结果。
我们使用的servlet是基于 http的请求应答模式的
大部分WebService低层也使用http作为实现。
客户端方面,
2者都不局限,只要是能够发送http请求的客户端,可是是普通application可以是浏览器,可是j2me,jese平台甚至是其他语言的任何形式的客户端。这一点是由http协议的特点决定的。
区别:
但是servlet只能接受一个简单的http请求,而WebService是发送一个xml作为其请求内容。
作为返回结果,servlet是html页面,而ws可以是复杂对象甚至使用附件或者mutidata的2进制文件。
服务器方面不要一样,前者需要遵守j2ee的Web Application规范部署在tomcat,weblogic这样的应用服务器上。WebService则需要有WSDL文件来部署服务,或者使用UDDI注册。
其实一开始我看到这个标题就觉得两者根本就是不相干的,怎么能比呢。
这下一分析,因为他们底层的http实现让他们真的很相似。
WebService的跨平台特性是servlet不能比的
而servlet相对来说速度上的优势也是不可忽视的。
Top
2 楼gstart(Hawk)回复于 2005-08-08 17:05:38 得分 0
我在本版问了个ejb和web service的问题,都没有人理会.楼上这位仁兄对servlet和web service的区别讲的很好,顺便也讲一下ejb和web service吧, 我觉得web service 用来代替无状态会话bean是个不错的主意呢. web service好像可以部署在tomcat上吧,ejb对运行环境要求则比较苛刻了.
楼上的高手能否指点一下 ejb和web service 分别用在什么场合比较合适Top
3 楼layueer(爱伤怀,努力升仙)回复于 2005-08-08 17:30:40 得分 0
强顶Top
4 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2005-08-08 19:15:06 得分 0
其实我还不会ejb呢,因为我不喜欢ejb这么累赘的东西。
但是WebService在效率上也是不好的,但是它是在xml的应用之上,那么必然平台无关语言无关,这是我最喜欢它的地方。
Tomcat里面可以使用axis(apache的一个ws项目)部署ws,比较简单。Top
5 楼launch401(乌兰巴托的夜 那么静 那么静)回复于 2005-08-09 10:02:35 得分 0
按照JAX-RPC,servlet和stateless session bean都可以包装成webservices服务器端组件,分别运行在servlet容器和ejb容器中,实际上可以当作是特殊的servlet和ejb。
只不过用soap传输,而不是用http传输。Top
6 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2005-08-09 10:05:43 得分 0
只不过用soap传输,而不是用http传输。
---------
soap传输的底层实现就是http的请求,soap实际上是使用其固定的xml格式包装了请求信息罢了Top
7 楼Adamyong(阿永)回复于 2005-08-12 00:31:33 得分 5
基本上比较同意jFresH_MaN的观点。soap只是封装消息,它和传输没有关系。在使用soap时我们要通过传输协议完成,当然用的最多的就是http了。在 soap spec 中并不限定你使用什么传输协议。
为了说明servlet和web service的区别,我大致描述一下axis的实现吧。当一个带有soap消息的http请求传输到axis时,AxisServlet的doPost方法相应该请求。我们的请求往往是http://localhost:8080/axis/services/ServiceName,按照axis的默认的部署方式,通过http://localhost:8080/axis/services定位到AxisServlet,AxisServlet继承自HttpServlet,然后通过解析ServiceName定位到请求的是哪一个服务,这些都是axis实现好的。部署的服务你可这样理解:动态绑定到axis上的一些模块。
。然后Axis通过自己的一系列handler解析http带的soap消息,当然你可以实现自己的handler。通过解析soap消息取得调用的是哪一个方法,然后由soap中的消息值调用该方法,如果方法是Req-Res方式还要构建返回Soap消息。Top
8 楼layueer(爱伤怀,努力升仙)回复于 2005-08-12 09:23:59 得分 0
学习Top
9 楼dddddy(随遇而安)回复于 2005-08-12 18:25:05 得分 0
这个贴子该加入精华了。Top
10 楼dianweihu(忘了)回复于 2005-08-26 12:52:23 得分 0
总结一下(请指正):
Servelt与WebService的异同:
请求:
客户端访问一个服务器的url,只需要发送简单的httprequest即可。
但servlet只能接受一个简单的http请求;
而WebService是可以发送一个xml作为其请求内容。
传输:
servlet使用http协议传输数据。
ws使用固定的XML格式封装成soap消息,可以使用http作为底层数据传输,但并不局限于http协议。
返回结果:
servlet返回的是html页面;
ws返回的可以是复杂对象甚至使用附件或者mutidata的2进制文件。
部署:
servlet需要遵守j2ee的Web Application规范部署的应用服务器上,如tomcat,weblogic,websphere;
WebService则需要有WSDL文件来部署服务,或者使用UDDI注册。
优势:
WebService的跨平台特性是servlet不能比的;
而servlet相对来说速度上的优势也是不可忽视的。
Top
11 楼simon0512(虫虫)回复于 2005-08-27 00:13:35 得分 0
学习
Top
12 楼gaoan(流浪花---不迁怒,不二过.)回复于 2005-08-27 00:38:26 得分 0
学习,
对web service 没经验...Top
13 楼ytcx_lt_82(仰天长啸)回复于 2005-09-01 19:49:49 得分 0
顶啊!受益非浅啊!Top
14 楼metaphy(六千尺外的查拉图斯特拉)回复于 2005-09-05 09:50:55 得分 0
优势:
WebService的跨平台特性是servlet不能比的;
而servlet相对来说速度上的优势也是不可忽视的。
------------------------------------------------
不解,这个"跨平台"是什么意思?
是说用xml 格式的数据的跨平台?
不过不论从哪里来看,WebService 好像并没有多么大的优势
Top
15 楼kingofhawks(蓝鹰)回复于 2005-09-06 11:57:44 得分 0
呵呵,学习一下不知道的东西.Top
16 楼dianweihu(忘了)回复于 2005-09-07 09:17:03 得分 0
跨平台
与具体的开发平台无关
Servlet必须依赖于java平台
而WS在任何平台下都可以做的,只要符合其描述规范就ok了Top
17 楼irvine007(┣━┫Rvine)回复于 2005-09-07 20:56:46 得分 0
顶~~
Top
18 楼sqlink()回复于 2005-09-07 21:36:23 得分 5
servlet除了可以处理web service之外,还能处理标准的HTML。
不过web service作为rich client的通讯手段其效率实在是太低了,不过兼容性到非常的好
Servlet与WebService关系的更多相关文章
- WEB服务器,TOMCAT和servlet之间的关系
WEB服务器,TOMCAT和servlet之间的关系 什么是WEB服务器Web服务器是指能够为发出请求的浏览器提供文档的程序.服务器是 一种被动程序,只有浏览器发出请求的时候才会响应.应用层使用 的是 ...
- servlet的生命周期和servlet的继承关系
一.servlet的生命周期 一个servlet类的对象 加载——>实例化——>初始化——>服务——>销毁 第一次访问某个servlet的时候 首先调用其 构造函数 pub ...
- servlet的继承关系
一.servlet的继承关系 1.servlet程序是sun公司开发用于web资源技术,任何一个类只需要实现了servlet接口,那么就可以成为servlet程序 2.继承体系: ---------- ...
- servlet,RMI,webservice之间的区别
最近项目中有提供或者调用别的接口,在纠结中到底是用servlet还是用webservice,所以上网查看了下他们以及RMI之间的区别,方便加深了解. 首先比较下servlet和webservice下 ...
- MVC三层架构编程(Dao、service、servlet 之间的关系)
木哈哈~先开心一会儿,人生的第一篇博客aaa.我一定好好写.不过之前也没怎么看别人写过,还是有点小激动呢,加油.好好总结,会总结的宝宝才会有提高! 今天想总结一下mvc三层架构模型编程,宝宝学习不怎么 ...
- 使用Servlet发布WebService
首先感谢熔岩的文章: http://lavasoft.blog.51cto.com/62575/227988 1.Eclipse安装上tomcat插件,http://www.eclipsetotale ...
- tomcat 和servlet之间的关系
http://tomcat.apache.org/whichversion.html pache Tomcat Versions Apache Tomcat® is an open source so ...
- tomcat各版本和jsp、jstl、servlet的依赖关系(转)
Servlet / JSP / Tomcat Version Servlet/ JSP Tomcat 2.5/2.1 6.0.18 2.4/2.0 5.5.27 2.3/1.2 4.1.3 ...
- JSP与Servlet之间的关系事例说明
Servlet Servlet 没有 main 方法,不能够独立的运行,它的运行需要容器的支持,Tomcat 是最常用的 JSP/Servlet 容器.Servlet 运行在 Servlet 容器中, ...
随机推荐
- Java实现根据输入的日期以及天数,获取此日期之后的天数的工作日
public static void main(String[] args) { List<String> list = new ArrayList<String>();//节 ...
- JDK核心JAVA源代码解析(1) - Object
想写这个系列非常久了,对自己也是个总结与提高.原来在学JAVA时.那些JAVA入门书籍会告诉你一些规律还有法则,可是用的时候我们一般非常难想起来,由于我们用的少而且不知道为什么.知其所以然方能印象深刻 ...
- springboot EnableAutoConfiguration
http://blog.javachen.com/2016/02/19/spring-boot-auto-configuration.html 自动配置 在启动类上使用@EnableAutoConfi ...
- maven org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 60
maven org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant poo ...
- 基于CUDA的粒子系统的实现
基于CUDA的粒子系统的实现 用途: 这篇文章作为代码实现的先导手册,以全局的方式概览一下粒子系统的实现大纲. 科普: 对粒子进行模拟有两种基本方法: Eulerian(grid-based) met ...
- JSTL不同版本和EL表达式的关联
JSTL目前有3个版本:JSTL1.0.JSTL1.1.JSTL1.2 JSTL1.0和JSTL1.1包含jstl.jar和standard.jar这2个jar包,在j2ee4的版本中是需要单独引用这 ...
- 函数式编程工具:filter和reduce
# -*- coding: utf-8 -*- #python 27 #xiaodeng #函数式编程工具:filter和reduce #python内置函数中,map函数是用来进行函数式编程这类工具 ...
- 文本挖掘之文本聚类(MapReduce)
刘 勇 Email:lyssym@sina.com 简介 针对大数量的文本数据,采用单线程处理时,一方面消耗较长处理时间,另一方面对大量数据的I/O操作也会消耗较长处理时间,同时对内存空间的消耗也是 ...
- Drupal Form问题汇总
问:如何校验和提交表单?答:Drupal允许定义默认的表单校验处理函数和提交处理函数. function practice_demo_form($form, &$form_state) { . ...
- eclipse下使用cygwin的方法(Windows下用eclipse玩gcc/g++和gdb)
明天就回国了,今晚回国前写写如何配置eclipse和CDT.这个配置方法网上讨论不是很多,可能用的人少,毕竟Windows上写C++程序多数喜欢VS,即使写的是Linux程序,很多人仍然会用VS(说只 ...