검색결과 리스트
글
액션서블릿 흐름
스트럿츠 설정의 핵심은
web.xml 파일과 struts-config.xml 파일 셋팅과 스트럿츠 태그 라이브러리 사용에 있다고
보셔도 됩니다. 의존 빈도가 높습니다.
web.xml 과 struts-config.xml 파일의 샘플 내용은.. 저도 예전에 어느 지식인의 글 답변에서
복사 해둔 것을 맨 아래에 붙여 두겠습니다. 그곳에도 주석이 달려 있으니 참고 하시기 바랍니다.
web.xml 과 struts-config.xml 에서는 스트럿츠에 관련된 모든 사전 설정을 지정 합니다.
스트럿츠는 일반적인 서블릿을 말고, 액션 서블릿이란것을 사용합니다. 그냥 서블릿에서
발전된 형태라고 생각하셔도 됩니다.
web.xml 에서는 해당 액션 서블릿을 호출할때의 이름에 따른 실행될 클래스 등을 미리 선언 해두는 정보를
담고 있습니다. 기존 서블릿 셋팅과 큰차이가 없습니다.
struts-config.xml 에서는 특정한 액션 서블릿이 호출 될때 작동할 사전 설정값을 지정 합니다.
어떤 액션 폼을 사용할것인지, 값 체크를 할것인지, 어떤 클래스를 실행 할것인지, 액션 내용 처리 후에
어떤 페이지를 처리 할것인지, 어떤 값을 파라메터로 넘길 것인지 등등...
이러한 프로세스의 플로우에 대해서 지정해두는 것으로.. 여기 셋팅이 어떻게 보면 스트럿츠 셋팅의 핵심입니다.
액션 서블릿의 대략적인 흐름은 아래 처럼 흘러갑니다.
먼저 *.do 형식 처럼 액션 서블릿을 호출 합니다. (index.do 이런식으로 url 호출한단 얘기입니다)
web.xml 에 지정된대로 ActionServlet.class 를 호출 하고
호출 url 에 따라 struts-config.xml 에 지정된 class를 호출하면서 request와 response를 전달합니다.
이때 지정된 ActionForm이 있으면 해당값이 올바른지에 대해서도 검증을 수행 합니다.
폼이 지정된 경우 데이터 검증을 실행 하고 오류의 경우에는 페이지를 다시 되돌리고,
없는 경우에는 해당 클래스를 수행 합니다.
해당 클래스 (보통 로직을 수행 하죠..)를 수행 한 후에, 그 결과에 따라서
미리 지정된 (또는 클래스내에서 지정한) 페이지를 호출 하기 위해 ActionFoward 객체를 생성하고
해당 액션 포워드를 실행 합니다 (즉, 결과 페이지를 사용자에게 보여줍니다)
-.-.... 어려우시겠지만.. 기존에 서블릿 흐름을 알고 계신다면.. 한두개의 단계만 추가 됬음을 아실겁니다.
그리고 스트럿츠 태그 라이브러리는 기존에 제공되는 jstl 이라는 기본 태그라이브러리 외에 따로
스트럿츠 용으로 제공되는 태그라이브러리가 있습니다.
struts-bean, -html, -logic, -tiles 등이 있습니다. jstl과 마찬가지로 스트럿츠 태그라이브러리 역시
태그에 익숙해지면 소스 코딩량을 상당히 줄일수 있으며, 코딩 속도도 빨라지게 됩니다.
아래는 위에서 말씀 드린.. 저도 지식인에서 떠놓은 web.xml과 struts-config.xml 의 샘플 주석 문입니다.
참고 하세요
==========================================
//servlet등록
<servlet>
//서블릿이름 세팅
<servlet-name>action</servlet-name>
//서블릿의 패키지 클래스명 세팅. ActionServlet은 Struts가 제공하는
//컨트롤러역활을 하는 서블릿클래스입니다.
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
//서블릿 포기시 파라미터
<init-param>
//모듈별 struts관련 세팅정보를 담은 xml파일 지정
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
//WAS구동시 Servlet인스턴스 생성 음수면, 최초 요구시 생성
<load-on-startup>1</load-on-startup>
</servlet>
//url의 끝에 .do로 시작하면 action이라는 이름의 서블릿에서 처리
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
struts-config.xml 안의 내용은
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
//사용하는 폼빈설정 , 폼빈은 스트러츠에서 제공하는 파라미터 정보를 담기위한
//빈즈형식의 클래스입니다.
<form-beans>
//폼빈명과, 폼빈의 클래스위치
<form-bean name="logonForm" type="app.LogonForm"/>
</form-beans>
//url과 액션정보 맵핑
<action-mappings>
//Welcome.do라는 요청이 오면 해당 페이지로 포워딩
<action path="/Welcome" forward="/pages/Welcome.jsp"/>
//마찬가지로 해당 url이오면 해당 페이지로 포워딩
<action path="/Logon" forward="/pages/Logon.jsp"/>
//LogonSubmit.do라는 요청이 오면, app.LogonAction이라는 클래스를 실행하고,
//파라미터정보는 logonForm에 담으며, logonForm의 생명주기는 request에 따르고
//validate를 실행하며(폼빈유효성검증), 검증 실패시 Logon.jsp를 호출
<action path="/LogonSubmit" type="app.LogonAction" name="logonForm"
scope="request" validate="true" input="/pages/Logon.jsp">
//액션의 리턴메세지가 success일경우 Welcome.jsp포워딩
<forward name="success" path="/pages/Welcome.jsp"/>
//액션의 리턴메세지가 success일경우 failure.jsp포워딩
<forward name="failure" path="/pages/Logon.jsp"/>
</action>
<action path="/Logoff" type="app.LogoffAction">
<forward name="success" path="/pages/Logoff.jsp"/>
</action>
</action-mappings>
//다국어나, 메세징관리를 위한 *.properties 설정
<message-resources parameter="resources.application"/>
</struts-config>
위는 단순한 xml세팅정보입니다
'개발 > 실전' 카테고리의 다른 글
document.getElementById (0) | 2014.03.12 |
---|---|
<% %>와 <script>차이 점 <%! 설명 (0) | 2014.03.12 |
JOIN과 UNION (0) | 2014.03.11 |
location 객체 (0) | 2014.03.11 |
doGet, doPost (0) | 2014.03.10 |