[Java] web.xml이 뭐길래
자바로 웹어플리케이션을 만드면 필수로 만나게 되는 파일 중 web.xml
이 있다.
web.xml이란
단어로는 Deployment Descriptor로 배포설명자이다.
자바 웹 애플리케이션은 배포 설명자 파일을 사용하여 URL이 서블릿에 매핑되는 방법, 인증이 필요한 URL 등의 정보를 확인한다.
자바 웹 애플리케이션이면 반드시 하나씩 존재해야하는 파일이며 프로그램에 필요한 전반적인 설정을 지정할 수 있다.
프로젝트 실행시 가장 먼저 실행되는 파일로서 메모리에 로딩된다.
위치는 WEBCONTENT하위의 WEB-INF폴더 하위에 있으며 가장 많이 사용되는 곳은 에러코드별 페이지처리이다.
In a java web application a file named web.xml is known as deployment descriptor. It is a xml file and
is the root element for it. When a request comes web server uses web.xml file to map the URL of the request to the specific code that handle the request.
출처: w3schools
무엇을 설정할수있을까?
- ServletContext의 초기 파라미터
- Session의 유효시간 설정
- Servlet/JSP에 대한 정의
- Servlet/JSP 매핑: URL 패턴 및 URL이 해당 패턴과 일치하는 요청에 사용할 선언된 서블릿의 이름을 지정.
1
2
3
4
5
6
7
8
9<servlet-mapping>
<servlet-name>redteam</servlet-name>
<url-pattern>/red/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>blueteam</servlet-name>
<url-pattern>/blue/*</url-pattern>
</servlet-mapping> - Mime Type 매핑
- Welcome File list
- Error Pages 처리
1
2
3
4
5<!-- 존재하지 않는 페이지, 404에러시 처리 페이지를 error.jsp로 설정함 -->
<error-page>
<error-code>404</error-code>
<location>/error.jsp</location>
</error-page> - 리스너: 어떠한 이벤트가 발생하면 호출되어 처리하는 객체
1
2
3<listener>
<listener-class>TestListener</listener-class>
</listener> - 필터: Spring-Filter 포스팅참조
- 보안: 패턴과 일치하는 URL에 대한 보안 제약조건을 정의할 수 있다. 제약조건에서 사용자 역할을 admin으로 지정하면 등록된 애플리케이션 개발자만 URL에 액세스하도록 만들수있다.
1
2
3
4
5
6
7
8
9<security-constraint>
<web-resource-collection>
<web-resource-name>admin</web-resource-name>
<url-pattern>/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>