08/05 Struts Framework 빌드, 설계
Sturts Framework 은 apache에 기증된 오픈소스 MVC기반 프레임웍
Struts 1.3.10 버젼 다운~~
struts-1.3.10-all.zip
@ 모든 프레임웍은 응용프로그램이 아니므로 설치라는 개념이 없다.
빌드의 개념은 있어도 설치과정은 필요없다
빌드란? 원본소스로부터 컴파일 결과물을 얻는 과정
.zip
--jar : 클래스파일들을 압축시켜 놓은 파일
--war : 웹사이트(웹어플리케이션)을 압축시켜 놓은 파일
@ apps/struts-blank-1310.war 가장 기본적인 스트러츠의 웹 파일
위 파일을 워크스페이스의 특정 폴더에 압축 풀어서 넣자!!
struts-core.jar를 외부라이브러리로 등록!!
index.jsp, pages는 샘플이므로 지워도 된다
@ mapping 파일의 구조(struts-config.xml)
<struts-config>
- <form-beans> : 클라이언트의 파라미터 값들을 보관객체지정
- <global-exceptions> : 예외처리 담당할 객체 지정 ( 잘사용 x)
- <global-forwards> : 결과페이지를 담당할 자원 지정 ( 잘사용 x)
- <action-mapping> : 요청을 처리할 action 클래스 지정(가장 중요)
@ 요청의 갯수에 따라 액션의 수도 늘어난다
@ 아파치 사이트의 도큐먼테이션에서 DTDDoc는 xml에 관한 정보를 담고 있다.
<action path="" type="" redirect="">
path는 클라이언트의 요청 type은 요청을 처리할 Action 클래스 지정 redirect=리다이렉트 할지, 포워드를 할지
스트럿츠에서 단순링크는 action태그에 하위 요소가 없다
@ 스트럿츠 아키텍쳐(설계도)
클라이언트의 요청 -> ActionServlet - >
RequestProcessor(실제 ActionServlet이 처리해야 할일을 담당) -> 대응되는 Action 류의 클래스
@ ActionForward 객체의 역활 :
execute()가 수행된 이후, 결과페이지에 대한 정보를 보유한 객체
우리가 만든 프레임웍에서는 결과페이지에 대한 반환형이 String형이었지만
,스트러츠의 창시자는 좀 더 자세한 처리를 위해 ActionForward라는 객체로 지원했다!
@ ActionMapping 객체의 역활 :
struts-config.xml을 읽어들인 객체
@ ActionForm 객체의 역활 :
클라이언트가 전송한 파라미터값을 보유한 객체. 자바빈즈와 엄청 유사하다.
우리가 만든 프레임웍에서는 클라이언트의 파라미터값을 자동으로 넘겨받는 jsp 빈즈태그를
사용할 수 없었다. 이유는 요청을 jsp가 아니라 서블릿이 받았기 때문이다.
결국 mvc기반으로 개발하면 jsp빈즈태그와 같이 일괄적으로 파라미터를 넘겨받을 수 있는
방법이 없게 된다. 이런 단점을 ActionForm객체가 해결해준다!!!
즉 프로그래머가 별도로 코딩하지 않아도 ActionForm에는 파라미터값들이 들어와 있다!!
@ mapping.findForwards();
//struts-config.xml에 <forward> 태그의 이름을 인자를 읽어들여,읽어들인 내용을
//ActionForward에 담아 반환하는 메서드