복붙노트

[SPRING] 서블릿과 웹 서비스의 차이점

SPRING

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

이 2의 차이점은 무엇입니까? 나는 결론적으로 구글에 대해 거의 결과를 찾지 못했다.

다음은 후속 질문입니다.

@Controller 주석을 사용하여 봄 mvc 웹 응용 프로그램 주석 클래스를 작성하고 프런트 엔드 -> 백 엔드 및 그 반대로 일부 정보를 성공적으로 전송하는 무언가를 만들고 어쩌면 일부 데이터베이스가 백 엔드 측과 관련 될 수 있다고 가정 해 보겠습니다.

그걸 뭐라고 부를까요? 나머지 웹 서비스 또는 서블릿 또는 다른 것을?

해결법

  1. ==============================

    1.웹 서비스는 통신을 위해 REST 프로그래밍 패러다임 또는 SOAP 프로토콜을 사용하여 클라이언트에 서비스 메소드를 제공하는 서비스입니다. 웹 서비스를 구현하는 몇 가지 방법이 있습니다. 웹 서비스를 작성하는 가장 간단한 방법은 클래스를 작성하고 javax.jws의 @WebService 및 @WebMethod 주석으로 주석을 작성한 다음 main-method에서이를 시작하는 것입니다.

    웹 서비스는 통신을 위해 REST 프로그래밍 패러다임 또는 SOAP 프로토콜을 사용하여 클라이언트에 서비스 메소드를 제공하는 서비스입니다. 웹 서비스를 구현하는 몇 가지 방법이 있습니다. 웹 서비스를 작성하는 가장 간단한 방법은 클래스를 작성하고 javax.jws의 @WebService 및 @WebMethod 주석으로 주석을 작성한 다음 main-method에서이를 시작하는 것입니다.

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

    결과적으로 등록 된 URL에서 WSDL을 볼 수 있고 SoapUI 또는 다른 SOAP 클라이언트가있는 경우 웹 서비스를 테스트하고 사용할 수 있습니다.

    반면 서블릿은 HTTP 요청을 전송하고 다시 응답하는 데 사용됩니다. JSP 및 HTML을 사용하여 웹 응용 프로그램을 작성하거나 XML 및 JSON 응답 (RESTful 서비스 에서처럼)을 제공하고 물론 SOAP 메시지를 수신 및 반환하는 데 사용할 수 있습니다. 웹 서비스 아래 하나의 계층으로 생각할 수 있습니다. 서블릿에는 현재 Java Servlet Specification 버전 4.0 인 자체 표준이 있습니다.

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

    서블릿 기술로 웹 서비스를 작성하려면 예를 들어 JAX-WS (예 : SOAP)를 사용할 수 있습니다. RESTful 서비스를 작성하려면 JAX-RS (참조 구현이 Jersey 임)를 사용하거나 Spring WebMVC를 사용할 수 있지만 afaik는이 프레임 워크의 주된 목적이 아니며 Jersey는 사용하기가 훨씬 쉽다.

    두 번째 질문에 관해서 : @Controller 어노테이션은 Spring이 bean이해야 할 일을 알려주는 Spring 관련 스테레오 타입 어노테이션이다. 컨트롤러의 정확히 어떤 메소드가 메소드의 실제 구현에 의존하는지, Spring이 일반 텍스트, HTML, JSON, XML, 바이너리 데이터 또는 원하는 것을 반환하도록 Spring을 설정할 수 있습니다.

    @Controller로 주석 처리 된 클래스는 아직 서블릿이 아니며 단순히 bean입니다. 서블릿을 사용하는 방법은 주로 사용하는 프레임 워크에 따라 다릅니다. 예를 들어, Spring을 사용할 때 서블릿 작업은 Springs DispatcherServlet에 의해 수행되고, Spring DispatcherServlet은 올바른 Bean으로 요청을 전달합니다. Tomcat을 사용한다면 javax.servlet.http.HttpServlet 클래스를 서브 클래 싱하고 브라우저에서 HTTP GET 요청에 응답하는 doGet과 같은 필요한 메소드를 겹쳐 쓰면 서블릿을 직접 작성할 수 있습니다.

  2. ==============================

    2.당신이 설명하는 것은 인간이 브라우저를 사용하여 소프트웨어 시스템과 상호 작용하는 웹 애플리케이션입니다.

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

    웹 서비스는 소프트웨어 시스템이 인간을 개입시키지 않고 HTTP, XML 또는 JSON을 사용하여 서로 통신하는 방법입니다.

    서블릿은 HTTP 요청에 응답하는 Java 전용 소프트웨어 작성 방법입니다. Spring MVC는 웹 애플리케이션을보다 쉽게 ​​작성할 수 있도록 구현 세부 사항을 추상화하지만 커버 아래에서 서블릿을 사용합니다.

  3. ==============================

    3.필자가 생각하기에 웹 서비스는 특정 비즈니스 특정 기능과 같은 상위 수준의 추상화를 정의합니다. 서블릿은 데이터 전송을 담당하는 소프트웨어 구현 구성 요소 일뿐입니다.

    필자가 생각하기에 웹 서비스는 특정 비즈니스 특정 기능과 같은 상위 수준의 추상화를 정의합니다. 서블릿은 데이터 전송을 담당하는 소프트웨어 구현 구성 요소 일뿐입니다.

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

    @Controller는 서블릿보다 웹 서비스와 더 관련이 있습니다. 다시 말해서 전송을 구현하는 방법입니다.

  4. ==============================

    4.서블릿과 웹 서비스의 가장 분명한 차이점은 다음과 같습니다. SOAP를 통해 웹 서비스에 액세스하는 동안 HTTP를 통해 서블릿에 액세스합니다 (Simple Object 액세스 프로토콜). 하지만 실제로 서블릿을 직접 호출 할 수는 없으며 URL 만 열 수 있습니다. connection을 호출하고 호출자가 빠진 경우 서블릿에 매개 변수를 추가하십시오. 너의 어플리케이션. 호출자가 어떤 매개 변수를 사용할 수 있는지 제한 할 수는 없습니다. 놓다. 호출자는 서블릿이 수신 할 수있는 매개 변수를 알지 못합니다. 어느 한 쪽. 따라서 웹 서비스를 사용하여 다른 애플리케이션에 API를 제공하는 것이 더 좋을 것입니다. 웹 서비스의 WSDL 파일은 호출자에게 다음 정보를 제공 할 수 있습니다. 웹 서비스를 호출하십시오.

    서블릿과 웹 서비스의 가장 분명한 차이점은 다음과 같습니다. SOAP를 통해 웹 서비스에 액세스하는 동안 HTTP를 통해 서블릿에 액세스합니다 (Simple Object 액세스 프로토콜). 하지만 실제로 서블릿을 직접 호출 할 수는 없으며 URL 만 열 수 있습니다. connection을 호출하고 호출자가 빠진 경우 서블릿에 매개 변수를 추가하십시오. 너의 어플리케이션. 호출자가 어떤 매개 변수를 사용할 수 있는지 제한 할 수는 없습니다. 놓다. 호출자는 서블릿이 수신 할 수있는 매개 변수를 알지 못합니다. 어느 한 쪽. 따라서 웹 서비스를 사용하여 다른 애플리케이션에 API를 제공하는 것이 더 좋을 것입니다. 웹 서비스의 WSDL 파일은 호출자에게 다음 정보를 제공 할 수 있습니다. 웹 서비스를 호출하십시오.

  5. ==============================

    5.서블릿은 HTTP 쿼리 핸들러입니다. 들어오는 쿼리로 원하는 것을 할 수 있습니다. 서블릿은 JVM에서 실행됩니다.

    서블릿은 HTTP 쿼리 핸들러입니다. 들어오는 쿼리로 원하는 것을 할 수 있습니다. 서블릿은 JVM에서 실행됩니다.

    웹 서비스는 다소 엄격한 프로토콜에 묶여 있습니다. 인터페이스 (API)는 사용 가능한 메서드와 해당 인수 및 서비스에 대한 반환 값으로 정의됩니다.

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

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

  6. ==============================

    6.웹 서비스는 서블릿보다 상위 레벨에서 작동합니다. 서블릿은 단순하며 서버 측 구성 요소를 작성할 수있는 기능을 제공하는 API입니다.

    웹 서비스는 서블릿보다 상위 레벨에서 작동합니다. 서블릿은 단순하며 서버 측 구성 요소를 작성할 수있는 기능을 제공하는 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>
    

    서블릿이 아닌

  7. ==============================

    7.웹 서비스는 서블릿 클래스 인 ServletContainer 클래스를 사용하며, 이는 깨끗하고 구조화 된 방식으로 요청을 처리합니다. REST는 REpresentational STateless Protocol의 약자입니다. 여기서 요청에는 데이터가 저장되지 않습니다.

    웹 서비스는 서블릿 클래스 인 ServletContainer 클래스를 사용하며, 이는 깨끗하고 구조화 된 방식으로 요청을 처리합니다. REST는 REpresentational STateless Protocol의 약자입니다. 여기서 요청에는 데이터가 저장되지 않습니다.

    REST 웹 서비스는 HTTP 메서드를 지원합니다.

    임의의 수의 URL을 모든 유형의 HTTP 메소드를 가질 수있는 웹 서비스 클래스에 매핑 할 수 있습니다.

    반면에 각 서블릿에 대해 단 하나의 URL 매핑 만 수행 할 수 있습니다. 최종 요구 사항은 요청 매개 변수 조건의 도움으로 얻을 수 있지만 요즘에는 서블릿을 사용하면 깨끗한 방법을 제공하지 못합니다.

    webservice에서 우리는 클래스 레벨과 메서드 레벨에서 URL 경로를 정의 할 수 있습니다.이 경로를 통해보다 구조화 된 방식으로 코드를 작성할 수 있습니다.

  8. from https://stackoverflow.com/questions/5930795/difference-between-servlet-and-web-service by cc-by-sa and MIT license