web.xml

웹 어플리케이션의 배포 지시자(Deployment Descriptor)로 J2EE 환경에서 웹 어플리케이션이 어떻게 배포되어야 하는지를 기술하는 파일이다. XML 구문으로 기술되며 웹 어플리케이션 root 바로 아래 서브 디렉토리인 WEB-INF에 위치한다. 본 문서에서는 ActionServlet을 확장한 Anyframe의 DefaultActionServlet을 사용 할 경우 web.xml 작성법을 중심으로 설명하겠다.

ActionServlet에 대한 내용은 Apache Struts User Guide 를 참조하기 바란다.

servlet, servlet-mapping 설정

<servlet>설정

  • org.apache.struts.action.ActionServlet 또는 서브 클래스를 <servlet-class>에 등록
  • 해당 Servlet을 통해 로드되어 할 Struts 속성 정의 파일 목록 정의
  • Servlet 초기화에 필요한 속성 정의
다음은 <servlet>하위에 <init-param>으로 정의할 수 있는 초기화 파라미터들이다.
Name Purpose / Default Value
config Default application의 struts 설정 파일이 있는 상대(module-relative)경로를 나타낸다. Default value는 /WEB-INF/struts-config.xml이다.
config/sub1 Sub-application을 사용할 때, config/와 sub-application의 prefix를 사용하여 기술한다. 예로, hello라는 prefix를 가진 sub-application이 있다면, config/hello라는 이름으로 <init-param>을 기술해야 한다. 또한, sub-application이 여러 개 있다면 그 각각에 대해서 <init-param>을 기술해야 한다. (여기서, config와 config/sub1, config/sub2 등을 각각 하나의 module이라고 부른다.)
convertNull 강제로 forms의 property 값들을 null로 populate한다. 예를 들어, convertNull 값이 true이면, java.lang.Integer type의 property들은 디폴트 값으로 0이 아닌 null이 셋팅된다. convertNull의 디폴트 값은 false이다.
chainConfig action에서 definition명으로 forwarding할 때 설정을 해야 한다. Struts 1.3에서 새롭게 추가된 내용이므로 Struts Tiles를 이용할 시 주의해야 한다. 디폴트 값은 org/apache/struts/chain/chain-config.xml이다.
configFactory ModuleConfig interface의 implementation을 생성하기 위한 ModuleConfigFactory의 Java class name이다. (Struts 1.3 이상)
debug Servlet의 Logging 수준을 결정한다. 디폴트 값은 0이고, 0~6 사이의 수를 넣을 수 있다. 6이 가장 많은 양의 logging 정보를 출력할 것이다.

<servlet-mapping>설정

  • Request의 URL 패턴을 <servlet>과 매핑

Samples

다음은 Struts를 기반으로 구성된 웹 어플리케이션의 web.xml 파일에서 <servlet>, <servlet-mapping>을 설정한 예제이다.

*.do URL 패턴의 request에 대하여 front controller 서블릿인 DefaultActionServlet이 처리하도록 설정되어 있으며, 초기화 파라미터로 해당 웹 어플리케이션에서 사용하는 struts-config 설정 파일이 복수개로 등록되어 있다.(','로 복수개 설정) convertNull의 초기화 파라미터 설정도 확인할 수 있다. load-on-startup 설정은 서블릿 엔진이 시작될 때 로드될 우선 순위를 지정한 값이다.
<servlet>
	<servlet-name>action</servlet-name>
	<servlet-class>anyframe.web.struts.action.DefaultActionServlet</servlet-class>
	<init-param>
		<param-name>config</param-name>
		<param-value>
			/config/struts/struts-config.xml,
			/config/struts/struts-config-login.xml
		</param-value>
	</init-param>
	<init-param>
		<param-name>debug</param-name>
		<param-value>3</param-value>
	</init-param>
	<init-param>
		<param-name>convertNull</param-name>
		<param-value>true</param-value>
	</init-param>
	<load-on-startup>0</load-on-startup>
</servlet>
	
<servlet-mapping>
	<servlet-name>action</servlet-name>
	<url-pattern>*.do</url-pattern>
</servlet-mapping>

taglib 설정

JSP에서의 설정

Struts 1.3에서는 Servlet 2.3과 2.4 모두 tag library의 설정이 간단해 졌다. struts-taglib.jar파일을 /WEB-INF/lib에 복사한 후 아래 sample과 같이 사용할 tag에 대한 정의를 JSP에 추가하면 된다.

Samples

다음은 'bean', 'html', 'logic' tag library를 사용하는 경우 JSP에 어떻게 정의해야 하는지를 보여주는 예제이다.
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>

Resources