Java2EE Framework/Struts1.3

스트럿츠1.3 컨트롤러 사용 방법

본클라쓰 2009. 9. 14. 10:12

 

 스트럿츠는 서블릿 기반의 컨트롤러를 제공하는 프레임워크이다. 그렇다면 스트럿츠 컨트롤러의 사용 방법에 대해 알아 보자. 서블릿 기반이기 때문에 웹 어플리케이션에 스트럿츠 컨트롤러인 ActionServlet를 등록한다. 서블릿의 등록은 톰캣 설정파일 작성 방법에 자세히 나온다.

 

    <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
            <param-name>config</param-name>
            <param-value>/WEB-INF/config/struts-config.xml</param-value>
        </init-param>
        <init-param>
            <param-name>debug</param-name>
           <param-value>2</param-value>
        </init-param>
        <init-param>
            <param-name>detail</param-name>
            <param-value>2</param-value>
        </init-param>
       <!-- 웹 컨테이너 시작시 ActionServlet 초기화 -->
       <load-on-startup>1</load-on-startup>
    </servlet>
    <!-- 스트럿츠 Action 클래스와 매핑시킬 URL 패턴 -->
    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>

    </servlet-mapping>

 

 위의 설정에서 보면 스트럿츠 AcionServlet 클래스와 URL 매핑이 *.do로 되어 있다. 이 말은 웹 컨테이너로 들어오는 URL 중 *.do 패턴으로 들어오는 모든 요청은 ActionServlet 클래스가 수행한다는 말이다. 즉, 스트럿츠 컨트롤러를 사용하여 요청을 처리하는 부분이 *.do 패턴으로 들어오는 요청이라고 정의하고 있다.

 

 

 

■ 스트럿츠 컨트롤러와 요청 URL 매핑 방법

 

 스트럿츠 컨트롤러와 요청 URL를 매핑시키는 방법에는 두 가지가 있다.

 

1. 요청 경로를 통해 매핑하는 방법

<servlet-mapping>

    <servlet-name>strutsActionServlet</servlet-name>

    <url-pattern>/do/*</url-pattern>

</servlet-mapping>

 이 경우 요청 url 이 /do/로 시작하는 모든 요청은 ActionServlet으로 전달된다.

 

2. 확장자를 통해 매핑하는 방법

<servlet-mapping>

    <servlet-name>strutsActionServlet</servlet-name>

    <url-pattern>*.do</utl-pattern>

</servlet-mapping>

 이 경우 요청 url이 *.do로 시작하는 모든 요청은 ActionServlet으로 전달된다.

 

 

 

※ 요청 URL에 직접 JSP 페이지를 호출하지 못하게 하는 web.xml 설정 방법

 

 모든 요청을 스트럿츠가 처리하게 하고 사용자가 직접적으로 JSP 페이지를 호출하지 못하게 web.xml 에 설정하는 방법이다.

 

    <!-- 웹으로 접속한 사용자가 JSP 파일로 직접 접근할 수 없게 한다. -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>PreventViewingJSPs</web-resource-name>
            <description>웹으로 접속한 사용자가 JSP파일로 직접 접근할 수 없도록 한다.</description>
            <url-pattern>*.jsp</url-pattern>
            <http-method>GET</http-method>
            <http-method>POST</http-method>
        </web-resource-collection>
    <auth-constraint>
        <role-name></role-name>
    </auth-constraint>
    </security-constraint>