각각의 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>
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 코드를 통해서 서블릿, 필터, 리스너 등을 설정할 수도 있다.
728x90
'JSP' 카테고리의 다른 글
JSP(Java Server Pages) (0) | 2024.07.03 |
---|---|
서블릿 필터와 리스너 (0) | 2024.07.03 |
서블릿과 데이터베이스 연동 (0) | 2024.07.03 |
서블릿과 서블릿 컨텍스트 (0) | 2024.07.03 |
Get, Post 요청 방식 (0) | 2024.07.03 |