스트럿츠의 구조
스트럿츠는 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 페이지를 호출한다.
위의 과정을 거쳐 스트럿츠는 동작한다. 간단한 것 같지만 이해하기 쉽지 않는데, 서블릿의 특성을 알고 있다면 좀 더 쉽게 이해할 수 있다.