Java2EE Framework/Struts1.3

스트럿츠의 구조

본클라쓰 2010. 5. 28. 21:29

 

스트럿츠는 MVC 모델2방식을 지원하는 프레임워크로 가장 중심이 되는 것은 서블릿 컨트롤러이다. 스트럿츠의 컨트롤러는 ActionServlet 클래스가 관리한다. 스트럿츠의 동작구조는 다음과 같다.

 

 

우선 스트럿츠 컨트롤러는 ActionServlet, RequestProcessor, Action, ActionForm 클래스가 있다.

 

웹 어플리케이션의 배포 파일(web.xml)에 스트럿츠 ActionServlet 클래스를 등록해 놓은 후 웹 컨테이너가 구동되면 ActionServlet 클래스가 초기화 된다. ActionServlet 클래스는 초기화되면서 스트럿츠에 등록한 각종 설정 파일들을 로드하고 Config 클래스들과 RequestProcessor 클래스를 초기화 한다.

 

ActionServlet 클래스는 사용자의 요청이 있으면, 요청을 처리해 줄 RequestProcessor 를 찾아 사용자의 요청을 전달하고, RequestProcessor 는 사용자의 요청 URL에 따라 필요하다면 ActionForm 객체를 생성하고 요청 파라미터를 ActionForm에 저장한다. ActionForm에 저장된 값은 필요에 따라 값이 올바른지 검증을 실시한다.

 

요청을 받은 RequestProcessor 객체는 Action을 선택하여 execute() 메소드를 호출하며, 이 때 앞서 생성한 ActionForm 객체를 전달한다. Action 객체는 사용자의 요청을 수행할 비즈니스 로직을 호출하여 수행한 후 수행 결과 값을 ActionForm이나 Request, 세션에 저장한다. 비즈니스 로직이 다 수행된 후 Action 은 RequestProcessor에 ActionForward를 리턴한다.(즉, 제어권을 다시 넘김)

 

RequestProcessor는 Action에서 리턴한 ActionForward에 따라 뷰 영역의 JSP 페이지를 호출한다.

 

위의 과정을 거쳐 스트럿츠는 동작한다. 간단한 것 같지만 이해하기 쉽지 않는데, 서블릿의 특성을 알고 있다면 좀 더 쉽게 이해할 수 있다.