상세 컨텐츠

본문 제목

[JSP] (잠깐!) server.xml과 context.xml 그리고 web.xml 파일 이란?

JAVA/JSP 프로그래밍

by 미로910 2024. 7. 4. 17:26

본문

1. 서버 시작시 어떤 파일부터 메모리에 올라 갈까?
2. 설정 파일들에 각각의 역할에 대해서 알아 보자.

각각의 XML 파일은 Tomcat 서버와 웹 애플리케이션의 설정과 구성을 관리한다.

이 파일들의 역할과 메모리에 로드되는 순서를 이해하는 것은 Tomcat 서버의 동작 방식을 파악하는 데 중요하다.

server.xml
<Server port="8005" shutdown="SHUTDOWN"> 
	<Service name="Catalina">
	<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
	<Engine name="Catalina" defaultHost="localhost">
	<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
	<Context path="/myapp" docBase="myapp" reloadable="true"/>
	... 생략 
</Server>

Tomcat의 server.xml 파일에 정의된 설정은 서버 레벨의 설정으로, Java 애플리케이션 코드에서 직접 변경할 수 없다.

이 파일은 Tomcat 서버 자체의 구성 요소와 동작 방식을 정의하며, 서버 시작 시 읽히고 적용된디.  따라서 서버가 구동된 후에는 자바 코드 레벨에서 server.xml 설정을 동적으로 변경할 수 없다.

context.xml
<Context path="/myapp" docBase="myapp" reloadable="true">
    <Resource name="jdbc/MyDB" auth="Container" type="javax.sql.DataSource"
              maxTotal="100" maxIdle="30" maxWaitMillis="10000"
              username="dbuser" password="dbpassword"
              driverClassName="com.mysql.cj.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/mydb"/>
</Context>

Tomcat이 시작될 때 읽혀지고 context.xml 파일은 특정 애플리케이션에서 재정의할 수 있으며, 데이터베이스 설정을 포함한 다양한 설정을 할 수 있다.

물론 context.xml 파일 대신 Java 코드를 통해서 데이터 베이스에 연결과 관련된 코드를 만들 수 있다.

web.xml
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
                             http://xmlns.jcp.org/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">

    <!-- 초기화 파라미터 설정 -->
    <context-param>
        <param-name>dbURL</param-name>
        <param-value>jdbc:mysql://localhost:3306/mydb</param-value>
    </context-param>

    <!-- 서블릿 설정 -->
    <servlet>
        <servlet-name>ExampleServlet</servlet-name>
        <servlet-class>com.example.ExampleServlet</servlet-class>
    </servlet>

    <!-- 서블릿 매핑 설정 -->
    <servlet-mapping>
        <servlet-name>ExampleServlet</servlet-name>
        <url-pattern>/example</url-pattern>
    </servlet-mapping>

    <!-- 기본 페이지 설정 -->
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>
</web-app>

Tomcat이 시작될 때 읽혀지는 web.xml 파일은 특정 애플리케이션의 설정을 정의할 수 있으며, 서블릿, 필터, 리스너 및 초기화 파라미터 등을 포함한 다양한 설정을 할 수 있다. 물론 web.xml 파일 대신 Java 코드를 통해서 서블릿, 필터, 리스너 등을 설정할 수도 있다.

관련글 더보기