복붙노트

[SPRING] Servlet 또는 @Controller를 사용해야하는 경우

SPRING

Servlet 또는 @Controller를 사용해야하는 경우

몇 가지 정리를해야합니다. 이 질문에 대한 답변을 찾고 있었지만 특정 질문에 대한 좋은 대답을 찾을 수없는 것 같습니다 (예 :이 질문은 대답에 대한 것입니다 : 서블릿과 웹 서비스의 차이점).

내 이해를 돕기 위해 "MVC 지향"웹 응용 프로그램에서 "요청 처리"(일명 "컨트롤러")를 구현할 수있는 여러 가지 방법이 있습니다. 그 중 두 가지는 다음과 같습니다.

이제 내 질문에 ...

[편집] : 강조 키워드

해결법

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

    1.언어 학습에 관심이있는 학생이라면 지금 당장 서블릿을 고수 할 것입니다. 서블릿 만 사용하여 웹 응용 프로그램을 작성할 수도 있지만 실제로는 JSP도 살펴보아야합니다.

    언어 학습에 관심이있는 학생이라면 지금 당장 서블릿을 고수 할 것입니다. 서블릿 만 사용하여 웹 응용 프로그램을 작성할 수도 있지만 실제로는 JSP도 살펴보아야합니다.

    JSP는 서블릿을 작성하는 편리한 방법으로, html을 스크립팅 요소와 함께 사용할 수 있습니다 (JSP 및 JSP 표현식에 Java 코드를 사용하지 않는 것이 좋음). 커버 아래에서 서블릿으로 컴파일되지만 지저분한 print 문을 사용하지 않아도됩니다.

    적어도 서블릿과 JSP에 대한 기본적인 이해가 중요합니다. Spring MVC는 웹 애플리케이션 작성 작업을 좀 더 쉽게하기 위해 서블릿 위에 구축 된 많은 프레임 워크 중 하나입니다. 기본적으로 모든 요청은 전면 컨트롤러 역할을하는 DispatcherServlet에 매핑됩니다.

    그런 다음 DispatcherServlet은 어노테이션이 들어오는 요청과 일치하는 컨트롤러를 호출합니다. 이는 web.xml에 이러한 매핑을 직접 작성하는 것보다 낫습니다 (서블릿 3.0을 사용하면 서블릿에 주석을 달 수 있음). 그러나 폼 필드를 객체에 매핑하거나, jsr303 주석으로 객체를 검증하거나, xml 또는 json 등으로 입력 및 출력을 매핑하는 등의 다른 많은 이점을 얻을 수도 있습니다. 플러스 스프링은 코어 스프링과 긴밀하게 통합되어 있으므로 쉽게 연결할 수 있습니다. 컨트롤러가 호출 할 서비스.

    서블릿 위에 구축 된 많은 경쟁 프레임 워크가 있다는 점은 주목할 가치가 있습니다. Spring MVC는 가장 인기있는 모델 중 하나이므로 살펴보기에는 좋지 않습니다.

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

    2.Servlet과 Spring MVC Controller는 같은 일을하는 데 사용할 수 있지만 Java Application의 다른 레벨에서 작동합니다.

    Servlet과 Spring MVC Controller는 같은 일을하는 데 사용할 수 있지만 Java Application의 다른 레벨에서 작동합니다.

    서블릿은 J2EE 프레임 워크의 일부이며 모든 Java 애플리케이션 서버 (Tomcat, Jetty 등)는 서블릿을 실행하기 위해 빌드됩니다. 서블릿은 J2EE 스택의 "하위 레벨"계층입니다. 응용 프로그램 서버와 함께 미리 패키지화되어 있기 때문에 응용 프로그램을 실행하기 위해 servlet.jar이 필요하지 않습니다.

    Spring MVC 컨트롤러는 일을 더 쉽게하기 위해 서블릿 위에 구축 된 라이브러리이다. Spring MVC는 폼 매개 변수와 컨트롤러 메서드 매개 변수 매핑, 바이너리 폼 제출 (예 : 폼이 파일을 업로드 할 수있는 경우)을보다 쉽게 ​​처리 할 수있는 기능과 같은 기본 제공 기능을 제공합니다. Spring MVC 컨트롤러를 실행하려면 애플리케이션에 필요한 jar 파일을 패키징해야한다.

    "낮은 수준"으로 가야 할 때 서블릿을 사용해야하며, 성능상의 이유로 예가 될 수 있습니다. Spring MVC는 훌륭하게 성능을 발휘하지만 약간의 오버 헤드가있는 경우 응용 프로그램 서버에서 가능한 모든 것을 짤 필요가있을 때 (그리고 db와 같은 다른 계층을 이미 튜닝 한 경우) 서블릿을 사용해야합니다. J2EE 웹 사양의 기초를 이해하려는 경우 (예 : 교육용) 서블릿을 선택할 수 있습니다.

    다른 모든 경우에는 웹 프레임 워크를 선택할 수 있습니다. 스프링 MVC가 그 중 하나이다. Spring MVC를 사용하면 바퀴를 다시 만들 필요가 없습니다 (즉, 바이너리 형식 관리, 폼 매개 변수, 빈 변환, 매개 변수 유효성 검사 등). Spring MVC의 또 다른 장점은 하나의 클래스에서 여러 URL과 메소드의 입력을 쉽게 관리 할 수 ​​있다는 것입니다. 서블릿에서 동일한 작업을 수행 할 수는 있지만 코드가 더 복잡하고 읽기 쉽지 않습니다. Spring MVC는 휴식 서비스를 만들고 간단한 애플리케이션 (즉, 간단한 형태의 웹 애플리케이션)을 관리하는 데 적합하다고 생각합니다. Ajax, 중첩 된 폼 및 세션과 페이지 상태가 모두 포함 된 매우 복잡한 폼을 관리해야하는 경우 구성 요소 기반 프레임 워크 (예 : apache wicket)로 전환하는 것이 좋습니다.

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

    3.Spring MVC뿐만 아니라 JSF와 JSP도 Servlets을 기반으로합니다. 문제는 서블릿이 직접 HTML을 작성해야하기 때문에 작업하기에 "좋지"않은 서블릿입니다.

    Spring MVC뿐만 아니라 JSF와 JSP도 Servlets을 기반으로합니다. 문제는 서블릿이 직접 HTML을 작성해야하기 때문에 작업하기에 "좋지"않은 서블릿입니다.

    현대 웹 기술을 사용할 수 있다면 데이터베이스에서 http로 이미지를 작성하는 것처럼 직접 http 출력이 필요한 위치에서 서블릿을 사용하기 만하면됩니다.

    Dipatcherservlet 또는 FacesServlet과 함께 작동하는 SpringMVC 또는 JSF를 사용하면 훨씬 빠르고 재미 있습니다. 그들은 파일을 구문 분석하고 서블릿을 통해 전송합니다.

  4. from https://stackoverflow.com/questions/16439249/when-to-use-servlet-or-controller by cc-by-sa and MIT license