【JSP, Servlet】 プログラム配置・実行

2007. 8. 9. 10:33

톰캣5.0버전 부터 콘텍스트 설정방법이 변경되었다.

콘텍스트의 설정은 $CATALINA_HOME \conf \[engine name] \[host name]
디렉토리 아래에 콘텍스트명.xml이라는 XML을 작성한다.

[engine name], [host name]은server.xml에 설정된 engine명, host명 이다.
디폴트의 설정은 [engine name][Catalina], [host name][localhost]가 된다.

* 콘텍스트명을 artis로 하기위한, 설정 파일은 $CATALINA_HOME\conf\Catalina\localhost 디렉토리 아래의 artis.xml 파일이 된다.
콘텍스트를 설정한 후에는 콘텍스트 내에 어플리케이션의 동작을 설정한다.
콘텍스트에의 어플리케이션 동작은 $CATALINA_HOME\javaroad\WEB-INF디렉토리 아래의
web.xml파일에 기재한다.

--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--

artis.xml의 설정
- path는 액세스 된 때의 패스명을 표시한다.
「/artis」라고 지정하면,
http://localhost:8080/artis/
로 액세스가 가능하다.
- docBase는 컨텍스트의 루트디렉토리를 지정합니다.
- reloadable은 프로그램에 변경이 있는 경우, 자동적으로 다시 읽을지가 필요한 파일이 있는지를
   확인하기 위해 동작이 늦게 된다.  개발할 때 이외에는 false로 설정한다.
   false의 경우, 프로그램을 다시 읽어진 경우는 톰캣의 재기동이 필요하게 된다.
- 그 외에도 몇개의 파라메타가 있다. 자세한 것은 Tomcat Server Configuration Reference
   참조해라.


--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--

web.xml의 설정
WEB-INF아래에 작성한 web.xml는 서블렛 파일의 URL지정, 세큐리티 관리, 초기화 파라메타 설정 같은 콘텍스트내의 어플리케이션 동작에 관한 설정을 한다.

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
         version="2.4">

  <servlet>
    <servlet-name>Hello</servlet-name>
    <servlet-class>HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Hello</servlet-name>
    <url-pattern>/Hello</url-pattern>
  </servlet-mapping>

</web-app>

<servlet>・・・</servlet>
<servlet>태그에는 <servlet-class>태그에 서블렛의 클래스명「HelloServlet」, <servlet-name>태그에 그것에 매핑하는 키워드「Hello」를 지정한다.

<servlet-mapping>・・・</servlet-mapping>
<servlet-mapping>태그안의 <servlet-name>태그에는 소스에 있는 것처럼「Hello」, <url-pattern>태그에는 거기에 매핑하는 URL의 키워드「/Hello」를 지정한다.

위의 두 개의 태그를 설정한 것으로 어떤 URL패턴으로 부터 어떤 서블렛 클래스를 부를지 지정할 수 있다.
URL에 /Hello라고 지정하면 http://localhost:8080/artis/Hello <servlet-name>를 이미 맵핑된 HelloServlet클래스가 불려진다.

--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--

by artis