Servlet与WebService关系

dianweihu 2005-08-08 03:44:59
Java的Servlet与我们平常说的WebService有何异同?
通过何种手段使之等价?

欢迎讨论
...全文
1108 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
wucuilan827 2006-05-17
  • 打赏
  • 举报
回复
mark
sqlink 2005-09-07
  • 打赏
  • 举报
回复
servlet除了可以处理web service之外,还能处理标准的HTML。
不过web service作为rich client的通讯手段其效率实在是太低了,不过兼容性到非常的好
dianweihu 2005-09-07
  • 打赏
  • 举报
回复
跨平台
与具体的开发平台无关
Servlet必须依赖于java平台
而WS在任何平台下都可以做的,只要符合其描述规范就ok了
Ji秋风 2005-09-07
  • 打赏
  • 举报
回复
顶~~
kingofhawks 2005-09-06
  • 打赏
  • 举报
回复
呵呵,学习一下不知道的东西.
metaphy 2005-09-05
  • 打赏
  • 举报
回复
优势:
WebService的跨平台特性是servlet不能比的;
而servlet相对来说速度上的优势也是不可忽视的。
------------------------------------------------
不解,这个"跨平台"是什么意思?
是说用xml 格式的数据的跨平台?
不过不论从哪里来看,WebService 好像并没有多么大的优势
ytcx_lt_82 2005-09-01
  • 打赏
  • 举报
回复
顶啊!受益非浅啊!
gaoan 2005-08-27
  • 打赏
  • 举报
回复
学习,

对web service 没经验...
simon0512 2005-08-27
  • 打赏
  • 举报
回复
学习
dianweihu 2005-08-26
  • 打赏
  • 举报
回复
总结一下(请指正):

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相对来说速度上的优势也是不可忽视的。

赤枫 2005-08-12
  • 打赏
  • 举报
回复
基本上比较同意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消息。
layueer 2005-08-12
  • 打赏
  • 举报
回复
学习
dddddy 2005-08-12
  • 打赏
  • 举报
回复
这个贴子该加入精华了。
jFresH_MaN 2005-08-09
  • 打赏
  • 举报
回复
只不过用soap传输,而不是用http传输。
---------
soap传输的底层实现就是http的请求,soap实际上是使用其固定的xml格式包装了请求信息罢了
launch401 2005-08-09
  • 打赏
  • 举报
回复
按照JAX-RPC,servlet和stateless session bean都可以包装成webservices服务器端组件,分别运行在servlet容器和ejb容器中,实际上可以当作是特殊的servlet和ejb。

只不过用soap传输,而不是用http传输。
jFresH_MaN 2005-08-08
  • 打赏
  • 举报
回复
其实我还不会ejb呢,因为我不喜欢ejb这么累赘的东西。
但是WebService在效率上也是不好的,但是它是在xml的应用之上,那么必然平台无关语言无关,这是我最喜欢它的地方。
Tomcat里面可以使用axis(apache的一个ws项目)部署ws,比较简单。
layueer 2005-08-08
  • 打赏
  • 举报
回复
强顶
gstart 2005-08-08
  • 打赏
  • 举报
回复
我在本版问了个ejb和web service的问题,都没有人理会.楼上这位仁兄对servlet和web service的区别讲的很好,顺便也讲一下ejb和web service吧, 我觉得web service 用来代替无状态会话bean是个不错的主意呢. web service好像可以部署在tomcat上吧,ejb对运行环境要求则比较苛刻了.

楼上的高手能否指点一下 ejb和web service 分别用在什么场合比较合适
jFresH_MaN 2005-08-08
  • 打赏
  • 举报
回复
其实从实现的效果上,它们是很相似的

相同点:
客户端访问一个服务器的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相对来说速度上的优势也是不可忽视的。

67,517

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧