Gentle Breeze

Web Framework 본문

⑦ IFSS 방법론/IFSS 기초(개발자)

Web Framework

재령 2008. 10. 9. 09:51
* Web Framework

- Web Framework Architecture
사용자 삽입 이미지
                                                        Presentation Layer                                 Business Layer

    - brower 가 ActionServlet 에 request → ActionServlet 실행

    - ActionServlet - 사용자의 요청을 받는 창구 역할 (Struts 제공)
                          - struts-config.xml 설정 내용을 읽어서 RequestProcessor 를 생성
                             즉, RequestProcessor = struts-config.xml

    - Action Form 은 VO class와 같음 → Form 객체를 Model 에 던져 줌 (테이블 당 하나씩 직접 만들어야 함)
                        - jsp 의 form 값을 뿌릴 수 있어서 View 이기도 하지만 실제 Controller 에 더 가까움

    - Action Class 는 사용자가 요청한 갯수만큼 직접 만들어 주어야 함

    - RequestProcessor 는 Struts 구조 안에서 가장 중요한 객체 → 사용자의 다양한 요청을 처리 (Struts 제공)

    - configuration XML File (struts-config.xml) - Struts 환경 설정 파일 (직접 설정 해 주어야 함)

- Controller의 수행 순서
    1. 요청 정보 - RequestProcessor 가 담당
    2. 사용자 입력/요청 정보 추출 - RequestProcessor 가 담당
    3. Logic 수행 - Action class 에서 Model 의 method 를 이용해서 담당
    4. result 를 Session 에 setting - Action class 내부에서 담당
    5. jsp forward - Action class 에서 담당

- TLD (Tag Library Discripter)
    Contom Tag Libraries 를 이용하기 위해 반드시 필요함

- struts-config.xml
    어떤 정보를 설정하느냐에 따라 RequestProcess 객체의 내용이 달라짐
    Model, View, Controller 를 함께 엮어주는 설정 파일

- <servlet-mapping> 설정
사용자 삽입 이미지

    <servlet> 을 이용해 Action 서블릿을 extends 해서 서블릿 생성
    <init-param> 을 이용해 config 변수로 struts-config.xml 파일을 지정해 서블릿 파라미터로 지정
    <servlet-mapping> 을 이용해 사용자의 요청에 대해 지정된 action 을 수행

- struts-config.xml 구조
    * <form-beans> - 자식 태그를 이용해 form-bean (ActionForm) 을 가장 먼저 등록
    * <global-exceptions> - Action 수행 시 문제 발생에 대한 예외처리
    * <global-forwards> - 의미가 없어 사용하지 않음
    * <action-mappings> - Action class 가 여러개 등록 됨
                                      자식 태그로 action → 자식 태그로 forward, exception 을 가짐 (local 의 의미)
                                      forward 태그를 통해 어떤 jsp 페이지로 forwarding 할 것인가를 지정
    * <controller> - RequestProcess 를 지정
                           생략 가능하지만 RequestProcess 를 상속받아 새로운 서블릿 생성시 지정해 주어야 함

- web.xml 에서 struts-config file 을 설정 할 때 struts 설정 파일이 여러개 일 경우 ,(콤마)를 이용하면 됨

- <form-beans> - Action 수행에 사용되는 form bean 정보 설정
    * name - form-bean 식별자
    * type - form-bean 구현 클래스의 패키지 위치

    * DynaActionFrom - 불필요한 ActionForm 객체의 수를 줄일 수 있도록 지원 (가독성이 떨어져 사용하지 않음)

- <global-exceptions> - 선언적 예외처리
    * type - 특정 Action 수행 중 발생할 수 있는 Exception type
    * handler - Exception handler class 를 등록
    * path - 최종적으로 에러 메세지를 표시할 웹페이지
    * key - 서비스 할 key 값 - key 값은 EmpResources.properties 에 지정되어 있어야 함

- <action-mappings> - Action class 들을 등록
                                      반드시 path 속성이 가장 먼저 기술되어야 함 (개발자들간의 약속)

    * path - 클라이언트 브라우저에서의 요청 (.do생략)
    * type - Action 클래스의 패키지 위치
    * scope - 특정 위치(request/session/application) 에 ActionForm 을 저장 (default = session)
    * name - 사용하게 될 ActionForm 을 등록 - 반드시 from-beans 에 등록되어 있어야 함
    * roles - Action 을 이용할 사용자 권한
    * input - Action 이 수행되다 문제가 발생될 경우 포워딩 할 페이지
    * <forward> - Action 이 수행되고 난 후 포워딩 할 페이지

- <controller> - 반드시 지정된 controller 만 사용해야 함

- <message-resources> - 언어별 국제화와 관련된 기능을 이용할 때 사용
Comments