스트러츠2 가이드 문서 : http://struts.apache.org/2.x/docs/guides.html
--------------------------------------------------------------------------------------------------------------------------------
<기본 설정 필요 파일>
* Apache Struts 2.3.15 GA : http://struts.apache.org/
==> Apache Struts 2.3.15 GA 압축 파일 내의 아래의 5가지 Jar 파일을 WEB-INF/lib 폴더에 추가
- struts2-core-x.x.x.jar : Struts 2 의 Core library.
- xwork-core-x.x.x.jar : 웹 워크와 통합
- ognl-x.x.x.jar : OGNL , Struts2를 위한 EL 이다.
- commons-logging-x.x.x.jar : log4j 와 같은 로깅을 위한 라이브러리.
- freemarker-x.x.x.jar : UI 태크 템플릿을 위한 것.
- web.xml : 웹 애플리케이션의 배치스크립터(DD). Struts2가 요청을 수렴할 수 있도록 DD에 필터 등록.
- struts-default.xml : 프레임워크 코어 라이브러리인 struts2-core-버전.jar에 미리 정의 되어 있는 파일. Struts.xml의 설정을 상당히 줄이도록, 모든 디폴트값들이 설정되어있음.
- struts.xml : 웹 애플리케이션내의 처리 흐름을 설정하는 파일
--------------------------------------------------------------------------------------------------------------------------------
1. web.xml
- web.xml은 URL 확장자에 따라 FilterDispatcher에 의해서 액션을 실행하기 위한 환경을 구축한다.
즉, 모든 사용자의 요청은 FilterDispatcher Class 를 거쳐간다. 해당 파일은 WEB-INF 폴더 내에 위치해야함.
<!-- 스트럿츠는 필터가 서블릿보다 먼저 동작하여 요청을 받는다 -->
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<!-- 모든요청을 필터가 받는다. -->
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2. struts.xml
- struts.xml은 실행 후 결과를 처리할Result 와 매핑을 설정한다. 해당파일은 프로젝트/src 폴더(Java Resources) 내에 위치한다.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- 1.기본연결 -->
<package name="tutorial" extends="struts-default">
<action name="helloWorld" class="tutorial.HelloWorld">
<result name="success">/helloWorld.jsp</result>
</action>
</package>
<!--<include file="struts-test.xml"/> -->
</struts>
1) <include />
Struts1에서는 하나의 struts-config.xml 파일만 지원했지만 Struts2에서는 여러개의 설정파일을 역할별로
나눠서 설정할 수 있음. 그리고 요소를 이용해 하나의 설정파일에 포함 시킴.
파일의 위치는 ClassPath상의 경로.
2) <constant />
이 요소는 상수를 설정할 때 쓰입니다. 상수는 Struts2의 작동 방식을 결정짓는 값 입니다.
상수의 설정은 struts.xml 뿐만 아니라 struts.properties, web.xml 등.. 에서도 할 수 있습니다.
<constant /> 요소의 속성은 다음과 같습니다.
- name : 상수의 이름을 지정 합니다.
- value : 상수의 값을 지정 합니다.
설정 가능한 상수는 struts2-core-버전.jar 의 org.apache.struts2 패키지의 default.properties 파일에 나와 있는데 자세한 상수 설정에 대해서는 Struts2 상수설정 에서 다루겠습니다.
3) <package />
패키지는 result, interceptor, action 등을 논리적인 단위로 그룹화 하는데 사용 합니다.
struts.xml 파일 설정중에 대부분의 설정은 패키지 안에서 이루어 집니다.
4) <interceptors />
Interceptor는 AOP와 같은 개념으로 액션 실행 전후로 실행되는 모듈입니다.
파라미터값을 자동으로 저장, 로깅, 파일 업로드, 유효성 검사, 보안 등 다양한 Interceptor가 존재 합니다.
이 모든 Intercpetor는 struts-default.xml 파일에 모두 정의가 되어 있습니다.
따라서 <interceptors /> 요소는 <interceptor-stack /> 요소를 이용해 사용자 정의 스택을 구성할 경우를
제외 하고는 사용할 일이 없으며 단지<interceptor-ref /> 요소를 이용해 가져다 쓰기만 하면 됩니다.
다음은 struts-dafault.xml에 정의된 <interceptors /> 요소중 일부분 입니다.
Reference
https://firedev.tistory.com/entry/Struts-스트러츠2-설정-strutsxml-interceptor
https://kimseunghyun76.tistory.com/295
https://gusfree.tistory.com/1029
'Dev > Web' 카테고리의 다른 글
[iBATIS/MyBatis] iBATIS와 MyBatis의 차이 (0) | 2019.10.14 |
---|---|
[Eclipse] getter / setter 단축키 (0) | 2019.10.14 |
[웹 개발 기초] Servlet, Servlet Container, JSP 개발 디렉토리 구조, Mapping (0) | 2019.10.10 |
Struts2, Spring MVC (0) | 2019.10.10 |
Server Setting (0) | 2019.10.08 |