Java 뷰 테크놀로지 및 프레임워크

Java view technologies and frameworks

Java기술과 프레임워크는 Java 웹 응용 프로그램의 사용자 인터페이스 또는 "뷰 계층"을 제공하는 웹 기반 소프트웨어 라이브러리입니다.이러한 응용 프로그램 프레임워크는 웹 페이지를 정의하고 이러한 웹 페이지에 의해 생성된 HTTP 요청(클릭)을 처리하기 위해 사용됩니다.프레임워크의 하위 카테고리로서 뷰 레이어 프레임워크는 Java 웹 애플리케이션에 다른 기능을 제공하는 웹 프레임워크와 다양한 정도로 중복되는 경우가 많습니다.

Java 뷰 레이어 프레임워크는 모델 뷰 컨트롤러 설계 패턴의 일부 또는 전부를 지원한다고 주장하는 경우가 많습니다.

개요

액션 베이스 프레임워크: Apache Struts, 봄 MVC
컴포넌트 기반 프레임워크: Apache Click, Apache Tapestry, Apache Wicket, 자카르타 Faces
웹 템플릿 시스템: 아파치 타일, SiteMesh, Tymeleaf
  • JSF(Jakarta Faces), Apache TapestryApache 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 MojarraApache MyFaces 구현 가능
  • 일반적으로 XML/XHTML 기반 템플릿에 Facellet을 사용합니다.
  • 클래스는 페이지 및 컴포넌트 템플릿과 관련짓는 데 사용되는 주석 또는 XML 구성 파일을 사용하여 POJO로 작성됩니다.
  • Unified Expression Language를 사용하면 컴포넌트 필드 및 이벤트를 POJO bean 속성 및 메서드에 바인딩할 수 있습니다.
  • 변환 및 검증 제약은 페이스렛에서 지정할 수 있으며 자동으로 적용되므로 일반적으로 실패 시 오류 정보와 함께 동일한 페이지를 다시 게시할 수 있습니다.
  • 네비게이션은 컨피규레이션파일 규칙을 사용하거나 페이지에서 직접 지정할 수 있습니다.
  • Ajax를 투과적으로 지원할 수 있습니다.
  • 경쟁사:위켓, 태피스트리

사이트 메쉬

  • SiteMesh는 "장식" 모델에 기반한 HTML 템플릿 프레임워크입니다.
  • 다른 HTML에 적용되어 새로운 HTML을 생성할 수 있는 '장식' 템플릿을 만들 수 있습니다.
  • 새로 생성된 HTML에는 템플릿에 혼합된 원래 HTML의 요소가 포함됩니다.
  • 이것에 의해, 원래의 HTML 는 매우 심플하고, 포맷이나 레이아웃의 지정이 불필요하게 됩니다.템플릿에는 실제 정보가 없습니다.
  • 이 두 가지를 혼합하면 모든페이지모양과 느낌을 일관되게 유지할 수 있습니다.
  • 경쟁사:타일

스파크

  • 심플한 라우팅 시스템을 중심으로 구축된 마이크로 웹 프레임워크의 스파크
  • 기본적으로는 내장된 Jetty 웹 서버에서 실행되지만 다른 웹 서버에서 실행되도록 구성할 수 있습니다.
  • 다음 3가지 템플릿엔진을 지원합니다.Velocity, FreeMarker 콧수염
  • 신속한 개발을 촉진하는 것을 목적으로 하며 주석이나 독점 솔루션을 사용하지 않습니다.

「 」를 참조해 주세요.