Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java servlet与web服务的区别_Java_Web Services_Spring_Rest_Terminology - Fatal编程技术网

Java servlet与web服务的区别

Java servlet与web服务的区别,java,web-services,spring,rest,terminology,Java,Web Services,Spring,Rest,Terminology,这二者有什么区别?我在谷歌上几乎没有发现什么结论 以下是一个跟进问题: 假设我创建了spring mvc web app,用@Controller注释对几个类进行注释,并创建了一些东西,这些东西将成功地从前端->后端传输一些信息,反之亦然,也许后端会涉及一些数据库 那你叫什么?Rest web服务、servlet或其他什么?我的观点是web服务定义了更高级别的抽象,例如一些特定于业务的功能。而Servlet只是负责数据传输的软件实现组件 Web服务实现通常依赖servlet来接收数据。然而,它也

这二者有什么区别?我在谷歌上几乎没有发现什么结论

以下是一个跟进问题:

假设我创建了spring mvc web app,用@Controller注释对几个类进行注释,并创建了一些东西,这些东西将成功地从前端->后端传输一些信息,反之亦然,也许后端会涉及一些数据库


那你叫什么?Rest web服务、servlet或其他什么?

我的观点是web服务定义了更高级别的抽象,例如一些特定于业务的功能。而Servlet只是负责数据传输的软件实现组件

Web服务实现通常依赖servlet来接收数据。然而,它也可以使用它的自定义层来处理协议数据


@控制器可能比servlet更与Web服务相关,servlet也是实现传输的一种方式。

您所描述的是一个Web应用程序,其中用户使用浏览器与软件系统进行交互

web服务是软件系统使用HTTP、XML或JSON相互通信的一种方式,不需要任何人参与


servlet是一种特定于Java的编写响应HTTP请求的软件的方法。Spring MVC抽象了很多实现细节,使编写web应用程序更容易,但它在幕后使用servlet。

servlet是HTTP查询处理程序。您可以对传入的查询执行任何操作。在JVM上运行的servlet

web服务与或多或少严格的协议绑定:接口(API)由可用的方法及其参数和服务的返回值定义

此接口使用协议机制公开。这些协议与运行服务的主机无关:您可以使用PHP、Java、C#或您自己的语言定义相同的web服务。您只需要有一段代码,它能够理解协议的查询,并且能够生成客户端可读的答案

例如,web服务协议: 维基百科定义:

SOAP,最初定义为简单 对象访问协议,是一种协议 交换规范 网络中的结构化信息 Web服务在Web中的实现 计算机网络


web服务是一种使用REST编程范式或SOAP通信协议为其客户机提供服务方法的服务。有几种方法可以实现web服务。编写web服务最简单的方法是编写一个类,并使用
javax.jws
中的
@WebService
@WebMethod
注释对其进行注释,然后从
main
-方法启动它,方法是:

Endpoint.publish("http://localhost:8089/myservice", new MyWebService());
结果是,您可以在注册的URL上查看WSDL,如果您有SoapUI或任何其他SOAP客户端,您还可以测试和使用web服务

另一方面,servlet用于传输HTTP请求和响应。它可以用来编写带有JSP和HTML的web应用程序,或者提供XML和JSON响应(如在RESTful服务中),当然也可以用来接收和返回SOAP消息。您可以将其视为web服务下方的一层。servlet有自己的标准,目前是

更全面、更实用的方法是使用框架编写web服务,并将其发布到应用服务器或servlet容器(如Tomcat或JBoss)上。在本例中,您将使用Servlet来处理传输SOAP或REST消息的HTTP请求的传输

例如,要使用servlet技术编写web服务,您可以使用JAX-WS(例如用于SOAP)。为了编写RESTful服务,您可以使用JAX-RS(参考实现为),也可以使用SpringWebMVC,但据我所知,这不是这个框架的主要目的,Jersey的使用非常简单

关于第二个问题:
@Controller
注释是一个Spring特定的原型注释,它告诉Spring您的bean应该做什么。控制器的方法将返回什么取决于方法的实际实现,您可以将Spring配置为返回纯文本、HTML、JSON、XML、二进制数据或您想要的任何内容


另一方面,用
@Controller
注释的类还不是servlet,它只是一个bean。如何使用servlet主要取决于所使用的框架。例如,当您使用Spring时,servlet作业由Springs
DispatcherServlet
完成,后者反过来将请求转发给正确的bean。如果您使用Tomcat,那么您可以直接编写自己的servlet,只需对
javax.servlet.http.HttpServlet
类进行子类化,并覆盖必要的方法,例如响应浏览器http GET请求的
doGet

例如,RESTfull是一个Web服务,它与servlet一起包含许多其他“功能”。 要部署,我们可以将web.xml定义为-

<servlet>
<servlet-name>jersey-serlvet</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
    <param-name>com.sun.jersey.config.property.packages</param-name>
    <param-value>jersey.rest.test</param-value>
</init-param>
<load-on-startup>1</load-on-startup>

泽西塞尔维特酒店
com.sun.jersey.spi.container.servlet.ServletContainer
com.sun.jersey.config.property.packages
泽西岛。休息。测试
1.


它只不过是一个servlet

servlet和Web服务之间最明显的区别是: 您可以通过HTTP访问servlet,而通过SOAP(简单对象)访问Web服务 访问协议)。 但是,实际上,您不能直接调用servlet,只能打开URL 连接并放置一些参数t