ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스트럿츠2 프레임워크란 ?
    DEV/Struts 2021. 1. 21. 12:00

    스트럿츠는 아파치 프로젝트의 일부로 진행되고 있는 MVC모델에 기반한 웹 프레임워크

    - 웹 MVC 프레임워크

    - WebWork 프레임워크 기반


    특징

    - 프론트 컨트롤러 타입 ( 모든 요청을 받아 공통 처리 실행하는 컨트롤러) MVC 프레임워크

    - 브라우저의 요청을 프론트 컨트롤러가 받아서 공통처리 시행

    - 개별처리와 뷰를 호출

    - 스트럿츠 1과 차이점

    • 스트럿츠1에서는 개별처리 액션을 하려면 Action클래스를 상속해야함
    • 스트럿츠2에서는 POJO로 작성 가능
    • ActionForm이 필요없어져 사라졌다 (Action 클래스에서 저장)
    • 설정 파일 사용안함, CoC나 애노테이션을 활용한 Zero Configuration에서 개발 가능

    기능

    • struts.xml 파일에 저장되는 구성 가능한 MVC 구성 요소. 무엇이든 변경하고 싶다면 xml 파일에서 쉽게 할 수 있음
    • POJO 기반 작업. Struts 2 액션 클래스는 Plain Old Java Object로 개발자가 인터페이스를 구현하거나 클래스를 상속하는 것을 방지
    • 비동기 요청을 만드는 데 사용되는 Ajax 지원. 불필요한 정보를 제공하지 않고 필요한 필드 데이터 만 전송하므로 성능이 향상
    • Hibernate, Spring, Tiles 등과의 통합 지원
    • JSP, freemarker, velocity 또는 기타 어떤 것을 사용하든 관계없이 Struts 2에서 다양한 종류의 결과 유형을 사용할 수 있음
    • UI 태그, 데이터 태그, 제어 태그 등과 같은 다양한 태그를 활용가능
    • 테마 및 템플릿에 대한 충분한 지원을 제공. Struts 2는 xhtml, simple 및 css_xhtml을 포함한 세 가지 다른 종류의 테마를 지원

    구성

    1. StrutsPrepareAndExecuteFilter

    - 브라우저로 부터 요청을 받아 개별 처리와 뷰를 호출

    2. Interceptors

    - 복수의 요청에 대해 공통 처리

    - 인증, 로깅 등

    - 내장된것을 사용하거나 개발자가 직접 작성

    3. Action

    - 요청별로 개별 처리

    4. Result

    - 뷰 종류 (JSP, Velocity..)와 관련 속성(JSP파일경로) 등 관리

    - 뷰 표시하는 역할

    - 액션 처리 후 Result로 이동

    5. Context Map

    - 뷰에서 액세스할 데이터가 저장

    - 액션 처리에서 얻은 model과 HttpServletRequest 같은 서블릿 관련 오브젝트가 저장

    6. OGNL

    - Context Map 안의 데이터에서 엑세스 할 때 사용하는 식 언어

    - JSP가 지원하는 EL과 같다

    - 데이터 액세스 또는 사칙연산, 비교연산 가능

    7. Struts-Tags

    - 뷰에 기술할 태그

    - HTML을 효율적으로 렌더링

     

    장점

    • 단순화 된 디자인
    • 플러그인 사용 용이성
    • 단순화 된 ActionForm 및 주석
    • 훨씬 더 나은 태그 기능
    • OGNL 통합
    • AJAX 지원
    • 다양한보기 옵션

    단점

    • 호환성 문제, 잘못된 문서

    스트럿츠와 비교한 Spring MVC

    장점

    • Struts에서 불가능한 컨트롤러, JavaBeans 모델 및 뷰 간의 명확한 분리
    • Spring MVC는 Struts에 비해 더 유연함
    • Spring은 Velocity, XLST 또는 다양한 다른 뷰 기술과 같은 다양한 플랫폼과 함께 사용할 수 있음
    • Spring의 ActionForm과 같은 것은 없지만 도메인 객체에 직접 바인딩
    • 코드는 Struts에 비해 더 테스트하기 쉬움
    • 7 개의 독립 계층으로 구성된 완전한 J2EE 프레임 워크로 다른 프레임 워크와의 통합을 단순화

    단점

    • 프레임워크의 복잡성

    'DEV > Struts' 카테고리의 다른 글

    스트럿츠2.5 기본 환경설정 및 MVC구현  (1) 2021.01.21

    댓글

Designed by Tistory.