프로그래밍 언어/JSP

JSF, Servlet 및 JSP의 차이점

Rateye 2021. 6. 27. 14:07
728x90
반응형

 

질문 : JSF, Servlet 및 JSP의 차이점

질문이 몇 개 있습니다. :

  1. JSP와 서블릿은 서로 어떤 관계가 있습니까?
  2. JSP는 일종의 서블릿인가?
  3. JSP와 JSF는 서로 어떤 관계가 있습니까?
  4. JSF는 ASP.NET-MVC와 같은 일종의 Pre-Build UI 기반 JSP입니까?
답변

JSP는 서버 시스템에서 실행되는 Java보기 기술로 , 클라이언트 측 언어 (예 : HTML, CSS, JavaScript 등)로 템플릿 텍스트를 작성할 수 있습니다. JSP는 페이지 흐름 또는 출력을 동적으로 제어 할 수있는 Java 코드 조각으로 지원되는 taglibs를 지원합니다. 잘 알려진 taglib는 JSTL 입니다. JSP는 또한 대부분 taglibs와 결합하여 페이지, 요청, 세션 및 애플리케이션 범위에서 사용 가능한 속성을 통해 백엔드 데이터에 액세스하는 데 사용할 수있는 Expression Language를 지원합니다.

JSP가 처음 요청되거나 웹 앱이 시작될 때 서블릿 컨테이너는이를 HttpServlet 확장하는 클래스로 컴파일하고 웹 앱의 수명 동안 사용합니다. 생성 된 소스 코드는 서버의 작업 디렉토리에서 찾을 수 있습니다. 예를 들어 Tomcat 에서는 /work 디렉토리입니다. JSP 요청에서 서블릿 컨테이너는 컴파일 된 JSP 클래스를 실행하고 생성 된 출력 (일반적으로 HTML / CSS / JS)을 네트워크를 통해 웹 서버를 통해 클라이언트 측으로 보내면 웹 브라우저에 표시됩니다.

Servlet은 서버 시스템에서 실행되는 Java API (응용 프로그래밍 인터페이스) 로 클라이언트의 요청을 가로 채 응답을 생성 / 전송합니다. 잘 알려진 예는 GETPOST 와 같은 널리 사용되는 HTTP 메서드를 사용하여 HTTP 요청에 후크하는 메서드를 제공 HttpServlet 입니다. web.xml 에서 구성 할 수있는 특정 HTTP URL 패턴을 수신하도록 HttpServlet 을 구성하거나 최근에는 @WebServlet 주석을 사용 하여 Java EE 6 에서 구성 할 수 있습니다.

서블릿이 처음 요청되거나 웹 앱 시작 중에 서블릿 컨테이너가 인스턴스를 생성하고 웹 앱의 수명 동안 메모리에 보관합니다. URL이 서블릿의 URL 패턴과 일치하는 모든 수신 요청에 대해 동일한 인스턴스가 재사용됩니다. 다음과 같은 방법으로 요청 데이터에 액세스 할 수 있습니다 HttpServletRequest 과에 의해 응답 처리 HttpServletResponse . doGet()doPost() 와 같이 HttpServlet 의 재정의 된 메서드 내에서 메서드 인수로 사용할 수 있습니다.

JSF는 Servlet API 위에 구축 된 컴포넌트 기반 MVC 프레임 워크 로, JSP 또는 Facelets 와 같은 기타 Java 기반보기 기술에서 사용할 수있는 taglibs를 통해 컴포넌트 를 제공합니다. Facelets는 JSP보다 JSF에 훨씬 더 적합합니다. 즉 , 복합 구성 요소 와 같은 훌륭한 템플릿 기능을 제공하는 반면 JSP는 기본적으로 <jsp:include> 만 제공하므로 원시 Java 코드로 사용자 지정 구성 요소를 만들어야합니다 (약간 불투명하고 많은 지루한 작업) 반복되는 구성 요소 그룹을 단일 구성 요소로 교체하려는 경우. JSF 2.0 이후로 JSP는 Facelet을 선호하는 뷰 기술로 더 이상 사용되지 않습니다.

참고 : JSP 자체는 더 이상 사용되지 않으며 JSF와 JSP의 조합 만 사용되지 않습니다.

참고 : JSP는 Taglibs, 특히 (Tag File ) 변형을 통해 훌륭한 템플릿 기능을 제공합니다. JSF와 결합 된 JSP 템플릿은 부족합니다.

MVC ( Model-View-Controller ) 프레임 워크 인 JSF는FacesServlet 을 유일한 요청-응답 컨트롤러 로 제공합니다. 사용자 입력 수집, 유효성 검사 / 변환, 모델 객체에 배치, 작업 호출 및 응답 렌더링과 같은 표준적이고 지루한 HTTP 요청 / 응답 작업이 모두 필요합니다. 이렇게하면 기본적으로 View에 대한 JSP 또는 Facelets (XHTML) 페이지 와 Model 로 JavaBean 클래스가 생성됩니다. JSF 구성 요소는보기를 모델 (예 : ASP.NET 웹 컨트롤)과 바인딩하는 데 사용되며 FacesServlet 은 JSF 구성 요소 트리 를 사용하여 모든 작업을 수행합니다.

출처 : https://stackoverflow.com/questions/2095397/what-is-the-difference-between-jsf-servlet-and-jsp
728x90
반응형