programing

서블릿과 웹 서비스의 차이점

bestprogram 2023. 3. 23. 23:13

서블릿과 웹 서비스의 차이점

이 둘의 차이점은 무엇입니까?나는 구글에 대한 몇 가지 결과가 확정적이지 않다는 것을 알았다.

다음은 후속 질문입니다.

예를 들어 봄 MVC 웹 앱을 만들고 @Controller 주석을 사용하여 몇 개의 클래스에 주석을 달아 프런트 엔드 -> 백엔드 및 백엔드로부터 정보를 정상적으로 전송할 수 있는 것을 만듭니다.아마 백엔드 측에는 일부 데이터베이스가 관련되어 있을 수 있습니다.

그걸 뭐라고 부르겠어요?다른 웹 서비스나 서블릿 같은 것을 사용하시겠습니까?

서비스는 REST 프로그래밍 패러다임 또는 SOAP 프로토콜을 사용하여 클라이언트에 서비스 방법을 제공하는 서비스입니다.웹 서비스를 구현하는 방법은 여러 가지가 있습니다.웹 서비스를 작성하는 가장 간단한 방법은 클래스를 작성하고 여기에 주석을 다는 것입니다.@WebService ★★★★★★★★★★★★★★★★★」@WebMethod의 주석javax.jws ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★main 함께 사용 다음음음음:

Endpoint.publish("http://localhost:8089/myservice", new MyWebService());

그 결과 등록된 URL에서 WSDL을 표시할 수 있으며 Soap이 있는 경우UI 또는 기타 SOAP 클라이언트도 웹 서비스를 테스트하여 사용할 수 있습니다.

한편, 서블릿은 HTTP 요구 및 응답을 전송하기 위해 사용됩니다.JSP 및 HTML을 사용하여 웹 응용 프로그램을 작성하거나 XML 및 JSON 응답(RESTful 서비스와 마찬가지로)을 처리하고 SOAP 메시지를 수신 및 반환하는 데 사용할 수 있습니다.서비스 아래의 한 계층으로 생각할 수 있습니다.서블릿에는 현재 Java 서블릿 사양 버전 4.0인 자체 표준이 있습니다.

보다 포괄적이고 실용적인 접근법은 프레임워크를 사용하여 웹 서비스를 작성하고 이를 Tomcat이나 JBoss와 같은 애플리케이션 서버 또는 서블릿 컨테이너에 게시하는 것입니다.이 경우 Servlet을 사용하여 SOAP 또는 REST 메시지를 전송하는HTTP 요청 전송을 처리합니다.

서블릿 기술을 사용하여 웹 서비스를 작성하려면 JAX-WS(SOAP용 등)를 사용할 수 있습니다.RESTful 서비스를 작성하려면 JAX-RS(Jersey를 기준으로 구현)를 사용할 수도 있고 Spring WebMVC를 사용할 수도 있지만, 제가 알기로는 그것이 이 프레임워크의 주요 목적이 아니며 저지가 상당히 사용하기 쉽습니다.

질문에 :@Controller주석은 봄 특유의 고정관념 주석으로 이 무엇을 해야 하는지에 대해 봄에게 알려줍니다.컨트롤러의 정확한 반환 방법은 메서드의 실제 구현에 따라 달라집니다.보통 텍스트, HTML, JSON, XML, 바이너리 데이터 또는 원하는 것을 반환하도록 Spring을 구성할 수 있습니다.

, 에는있 with, 석 with with with with with with with with with with with with with with with with with with with with with with with 가 주석이 붙은 @Controller아직 서블릿이 아니라 그냥 콩입니다.서블릿을 사용하는 방법은 주로 사용하는 프레임워크에 따라 달라집니다.를 들어 Spring을 은 Springs에 됩니다.DispatcherServlet올바른 콩으로 요청을 전송합니다. Tomcat을 하는 을 쓸 수 .javax.servlet.http.HttpServlet.doGetHTTP GET을 사용합니다.

지금 설명하시는 것은 웹 어플리케이션입니다. 사람이 브라우저를 사용하여 소프트웨어 시스템과 상호 작용합니다.

서비스는 소프트웨어 시스템이 HTTP, XML 또는 JSON을 사용하여 사용자 없이 서로 통신할 수 있는 방법입니다.

서블릿은 HTTP 요청에 응답하는 Java 고유의 소프트웨어 기술 방법입니다.봄 MVC에서는 웹 어플리케이션 작성을 용이하게 하기 위해 많은 구현 세부사항을 추상화하지만 커버 아래에 서블릿을 사용합니다.

제 견해로는 웹 서비스는 비즈니스 고유의 기능과 같은 상위 수준의 추상화를 정의합니다.서블릿은 데이터 전송을 담당하는 소프트웨어 구현 컴포넌트에 불과합니다.

웹 서비스 구현은 일반적으로 데이터 수신에 서블릿에 의존합니다.그러나 프로토콜 데이터를 처리하는 사용자 지정 계층을 사용할 수도 있습니다.

@Controller는 아마도 서블릿보다는 Web Service와 더 관련이 있을 것입니다.서블릿은 트랜스포트 구현의 한 가지 방법입니다.

Servlet과 Web Service의 가장 분명한 차이점은 HTTP를 통해 서블릿에 액세스하고 SOAP(Simple Object Access Protocol)를 통해 웹 서비스에 액세스한다는 것입니다.그러나 실제로는 서블릿을 직접 호출할 수 없습니다.발신자가 어플리케이션 밖에 없는 경우에만 URL 접속을 열어 서블릿에 파라미터를 설정할 수 있습니다.또, 발신자가 지정할 수 있는 파라메타를 제한할 수 없습니다.발신자는 서블릿이 수신할 수 있는 파라미터도 알 수 없습니다.따라서 웹 서비스를 사용하여 다른 응용 프로그램에 API를 제공하는 것이 좋습니다. 웹 서비스의 WSDL 파일은 호출자에게 웹 서비스를 호출하기에 충분한 정보를 제공할 수 있습니다.

서블릿은 HTTP 쿼리 핸들러입니다.수신 쿼리로 원하는 작업을 수행할 수 있습니다.JVM에서 실행되는 서블릿입니다.

웹 서비스는 다소 엄격한 프로토콜과 연결됩니다.인터페이스(API)는 사용 가능한 메서드와 그 인수 및 서비스에 대한 반환값을 사용하여 정의됩니다.

이 인터페이스는 프로토콜 메커니즘을 사용하여 노출됩니다.이러한 프로토콜은 서비스를 실행하는 호스트에 관계없이 PHP, Java, C# 또는 사용자 고유의 언어를 사용하여 동일한 웹 서비스를 정의할 수 있습니다.프로토콜에 대한 쿼리를 이해하고 클라이언트가 읽을 수 있는 답변을 생성할 수 있는 코드 조각만 있으면 됩니다.

를 들어 SOAP은 웹 서비스 프로토콜입니다.위키피디아 정의:

SOAP(원래 Simple Object Access Protocol)는 컴퓨터 네트워크에서 웹 서비스를 구현할 때 구조화된 정보를 교환하기 위한 프로토콜 규격입니다.

웹 서비스는 서블릿보다 높은 수준에서 작동합니다.서블릿은 서버 측 컴포넌트를 쓰는 기능을 제공하는 단순한 API입니다.

예를 들어 RESTfull은 서블릿과 함께 많은 다른 "기능"을 포함하는 웹 서비스입니다.전개하려면 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>

그것은 서블릿에 불과하다.

웹 서비스는 Servlet Container 클래스를 사용합니다. Servlet 클래스는 다시 Servlet 클래스로, 요청을 깨끗하고 구조화된 방식으로 처리합니다.REST는 REPRESTION STatless Protocol의 약자입니다.이 요청에는 데이터가 저장되지 않습니다.

REST Web Service는 HTTP 메서드를 지원합니다.

  1. GET - 일반적으로 데이터를 가져옵니다.
  2. POST - 새 개체를 삽입합니다.
  3. PUT - 기존 개체를 업데이트합니다.
  4. DELETE - 객체를 삭제합니다.

임의의 유형의 HTTP 메서드를 사용할 수 있는 웹 서비스 클래스에 URL을 얼마든지 매핑할 수 있습니다.

한편, 서블릿 마다 실행할 수 있는 URL 매핑은 1개 뿐입니다.요청 파라미터 조건의 도움으로 최종 요건을 달성할 수 있지만, 오늘날 서블릿을 사용하는 것은 깨끗한 방법을 제공하지 않습니다.

웹 서비스에서는 메서드 레벨뿐만 아니라 클래스 레벨에서도 URL 경로를 정의할 수 있습니다.이것에 의해, 보다 구조적인 방법으로 코드화할 수 있습니다.

언급URL : https://stackoverflow.com/questions/5930795/difference-between-servlet-and-web-service