Java 뷰 테크놀로지 및 프레임워크
Java view technologies and frameworksJava 뷰 기술과 프레임워크는 Java 웹 응용 프로그램의 사용자 인터페이스 또는 "뷰 계층"을 제공하는 웹 기반 소프트웨어 라이브러리입니다.이러한 응용 프로그램 프레임워크는 웹 페이지를 정의하고 이러한 웹 페이지에 의해 생성된 HTTP 요청(클릭)을 처리하기 위해 사용됩니다.웹 프레임워크의 하위 카테고리로서 뷰 레이어 프레임워크는 Java 웹 애플리케이션에 다른 기능을 제공하는 웹 프레임워크와 다양한 정도로 중복되는 경우가 많습니다.
Java 뷰 레이어 프레임워크는 모델 뷰 컨트롤러 설계 패턴의 일부 또는 전부를 지원한다고 주장하는 경우가 많습니다.
개요
액션 베이스 프레임워크: | Apache Struts, 봄 MVC |
---|---|
컴포넌트 기반 프레임워크: | Apache Click, Apache Tapestry, Apache Wicket, 자카르타 Faces |
웹 템플릿 시스템: | 아파치 타일, SiteMesh, Tymeleaf |
- JSF(Jakarta Faces), Apache Tapestry 및 Apache Wicket은 서로 경쟁하는 컴포넌트 기반 기술로 상태 비저장 HTTP 요청-응답 사이클 및 자카르타 Servlet API를 객체 지향, 이벤트 지향 컴포넌트 모델로 추상화합니다.
- 반면 Struts와 Spring MVC Framework는 servlet API보다 더 얇은 추상화 계층을 제공하는 액션 지향 프레임워크입니다.
- Apache Tiles는 Struts와 함께 작동하도록 설계된 템플릿 프레임워크입니다.
- Facellet은 JSF와 함께 작동하도록 설계된 뷰 정의 및 템플릿 기술입니다.
- SiteMesh는 모든 자카르타 페이지(JSP)에서 사용할 수 있습니다.
- Facellets, Tapestry 및 Wicket은 HTML/XHTML을 기반으로 한 독자적인 템플릿 방식을 가지고 있습니다.
- Apache Click은 HTML 기반의 Apache Velocity 템플릿과 일반 Java 객체(POJO)를 사용하며 JSP는 옵션입니다.
서블릿 API
Servlet API는 거의 모든 Java Web View 기술의 기반입니다.Servlet은 웹 응용 프로그램의 Java 클래스를 작성하기 위한 기본 메커니즘을 제공합니다.서블릿은 HTTP 요청에 응답하고 쿠키를 만들고 세션을 유지할 수 있습니다.
자카르타 페이지(JSP)
- Servlet API를 기반으로 구축된 JSP는 다양한 형식의 텍스트 콘텐츠를 생성할 수 있는 문서 중심의 태그 기반 템플릿, 서버 프로그래밍 모델을 제공합니다.
- Java 코드는 JSP 파일에 포함될 수 있으며 요청이 수신되면 컴파일되어 실행됩니다.
아파치 스트럿스
- Struts는 컨트롤러와 뷰의 분리를 제공합니다.
- 표시할 보기를 결정할 수 있는 Java 클래스(컨트롤러)가 요청을 수신합니다.
- 실제 보기는 JSP, 프리 마커 템플릿, 속도 템플릿 등 다양한 뷰 기술로 작성할 수 있습니다.
- XML 구성 파일은 "페이지 탐색" 즉, 적절한 컨트롤러에 대한 요청 흐름과 컨트롤러의 결과에 따라 표시할 보기를 지정하기 위해 사용됩니다.
- 경쟁사: 봄 MVC, Grails
아파치 태피스트리
- 컴포넌트 기반 뷰 프레임워크.
- 클래스는 실행 시 POJO 및 바이트 코드로 작성됩니다.
- XML이 아닌 주석 및 명명 규칙을 사용하여 구성됨
- JSP와 비교하여 HTML 마크업과 Java 코드를 명확하게 구분합니다.
- HTML 템플릿은 웹 디자이너가 직접 미리 볼 수 있습니다.
- 변경된 컴포넌트 클래스는 실행 중인 응용 프로그램에 실시간 새로고침되어 개발 시간을 단축합니다.
- 폼 제출에 Post/Redirect/Get 네비게이션 패턴을 사용합니다.
- 경쟁사:위켓, JSF
아파치 타일
- 이것은 복합 패턴을 기반으로 하는 HTML 템플릿 프레임워크입니다.
- HTML 페이지를 템플릿, 정의 및 구성 페이지라고 하는 여러 "페이지렛"으로 분할할 수 있습니다.
- 런타임에 페이지렛은 최종 HTML을 생성하기 위해 함께 결합됩니다. 페이지는 JSP로 작성됩니다.
- 경쟁사:사이트 메쉬
아파치 위켓
- 컴포넌트 기반 뷰 프레임워크.
- 페이지는 서버의 상태 저장 Java 구성요소와 직접 상호 작용합니다.
- 컴포넌트와 그 상태는 Wicket 프레임워크에 의해 관리되므로 애플리케이션 개발자는 상태를 관리하기 위해 직접 HttpSession을 사용할 필요가 없습니다.
- 구성에는 XML이 필요하지 않습니다.
- JSP와 비교하여 HTML 마크업과 Java 코드를 명확하게 구분합니다.
- 웹 페이지 구성요소는 코드에서 HTML 마크업에 '푸시'됩니다.
- 경쟁사:태피스트리, JSF
자카르타 면(JSF) 및 면
- 컴포넌트 기반 뷰 프레임워크의 사양.
- Eclipse Mojarra 및 Apache MyFaces 구현 가능
- 일반적으로 XML/XHTML 기반 템플릿에 Facellet을 사용합니다.
- 클래스는 페이지 및 컴포넌트 템플릿과 관련짓는 데 사용되는 주석 또는 XML 구성 파일을 사용하여 POJO로 작성됩니다.
- Unified Expression Language를 사용하면 컴포넌트 필드 및 이벤트를 POJO bean 속성 및 메서드에 바인딩할 수 있습니다.
- 변환 및 검증 제약은 페이스렛에서 지정할 수 있으며 자동으로 적용되므로 일반적으로 실패 시 오류 정보와 함께 동일한 페이지를 다시 게시할 수 있습니다.
- 네비게이션은 컨피규레이션파일 규칙을 사용하거나 페이지에서 직접 지정할 수 있습니다.
- Ajax를 투과적으로 지원할 수 있습니다.
- 경쟁사:위켓, 태피스트리
사이트 메쉬
- SiteMesh는 "장식" 모델에 기반한 HTML 템플릿 프레임워크입니다.
- 다른 HTML에 적용되어 새로운 HTML을 생성할 수 있는 '장식' 템플릿을 만들 수 있습니다.
- 새로 생성된 HTML에는 템플릿에 혼합된 원래 HTML의 요소가 포함됩니다.
- 이것에 의해, 원래의 HTML 는 매우 심플하고, 포맷이나 레이아웃의 지정이 불필요하게 됩니다.템플릿에는 실제 정보가 없습니다.
- 이 두 가지를 혼합하면 모든 웹 페이지의 모양과 느낌을 일관되게 유지할 수 있습니다.
- 경쟁사:타일
스파크
- 심플한 라우팅 시스템을 중심으로 구축된 마이크로 웹 프레임워크의 스파크
- 기본적으로는 내장된 Jetty 웹 서버에서 실행되지만 다른 웹 서버에서 실행되도록 구성할 수 있습니다.
- 다음 3가지 템플릿엔진을 지원합니다.Velocity, FreeMarker 및 콧수염
- 신속한 개발을 촉진하는 것을 목적으로 하며 주석이나 독점 솔루션을 사용하지 않습니다.