기본 흐름
Client는 주소창에 register.do를 입력을 하면 맨처음으로 web.xml을 로딩한다.
web.xml은
<servlet>
<servlet-name>action</servlet-name> <!-- 아무이름이나 하면 된다. -->
<servlet-class> <!-- 클래스 지정 -->
org.apache.struts.action.ActionServlet
</servlet-class>
<init-param> <!-- struct-config.xml 설정 -->
<param-name>config</param-name> <!-- 이름은 아무거나 -->
<param-value>/WEB-INF/struts-config.xml</param-value> <!-- /WEB-INF/(기본베이스 - 다른폴더일때는 경로를 설정해주어야 함)폴더 안에 struts-config.xml파일 위치 지정 - 여기까지 작성후 struts-config.xml파일을 생성-->
</init-param>
</servlet>
<servlet-mapping> <!-- url 패턴 설정 -->
<servlet-name>action</servlet-name> <!-- *.do로 들어오면 servlet-name이 action 실행 -->
<url-pattern>*.do</url-pattern>
</servlet-mapping>
다음과 같은 코드로 되어있다.
servlet mapping을 통해서 *.do로 들어오는 모든것들을 ActionServlet을 로드하고 struts-config.xml을 로딩하게 된다.
struts-config.xml은 로딩을 통해서 action 태그에 있는 내용을 로드하게 된다.
ActionServlet은 Servlet에서 init() 메소드의 역할을 하고 RequestProcess 는 service()메소드의 역할을 하게 된다.
RequestProcess에서 RequestProcessor class를 상속받아 다양한 method를 override해서 구현 할 수 있는데
위에 말한 Servlet의 Service() 메소드 역할을 하는것들이 RequestProcessor class의 process*()메소드 이다.
RequestProcessor class에서 process메소드 들을 상속하지 않으면 기본적인 메소드가 실행 된다.
ActionServlet에서 입력된 데이터들은 RequestProcess로 넘어가기 전에 RequestProcessor class 의 processPreprocess()를 오버라이드 함으로서 한글 인코딩 설정을 할 수 있다.
그리고 RequestProcessor class를 선언하고 사용할 때는 반드시 struts-config.xml 파일에서 다음과 같이 선언 해 주어야 한다.
<controller processorClass="com.myhome.info.processor.InfoRequestProcessor" /> //다읨의 경로는 패키지 경로와 클래스 파일 이름이다.
RequestProcess로 넘어온 데이터는 ActionForm에 저장되어 Action class를 상속받은 RegistAction class의 execute() 메소드에서 사용 할 수 있다.
RegistAction class 의 비지니스 로직을 통해 로직을 수행한 후 ActionForward를 통해 ViewPage로 이동을 돕는다. 이 결과값이 다시 RequestProcess로 돌아와 Client에서 뿌려지게 된다.
'Framework > STRUTS 1' 카테고리의 다른 글
struts 1 - File Uplod & File Download (0) | 2009.07.01 |
---|---|
Struts 1 - 스트럿츠 1의 다양한 Action Class 들 part 3 (0) | 2009.06.30 |
Struts 1 - 스트럿츠 1의 다양한 Action Class 들 part 2 (0) | 2009.06.29 |
Struts 1 - 스트럿츠 1의 다양한 Action Class 들 part 1 (0) | 2009.06.26 |
Struts 1 - ActionForm 사용하기 (0) | 2009.06.26 |