Hello.java(서블릿 파일이라고 가정해 보자!)
web-inf 폴더 안에 classes 폴더 안에 Hello.java파일을 넣어 놓자.
* 톰캣 안에서 어플리 케이션을 만들려면-----------------------------------------------------------
Tomcat 5.5 / Webapp / 안에다가 자신이 만들고자 하는 어플리케이션 이름의 폴더를 만든다.(MyApp)
그런 다음에 web-inf 폴더를 만들고 그안에 web.xml 파일을 Root폴더 안의 web.xml파일을 복사해서 넣는
다.
lib - jar파일이나 자원파일을 넣어놓자. (자원파일 : 만들려는 class 파일이 필요로 하는 라이브러리 파일...)
classes - 내가 만드는 class파일이 위치한다.
만약 서블릿 파일을 만들려고 한다면?
classes파일에다가 만들자. 그런데 html나 jsp파일은 web-inf안에다가 넣으면 실행을 못시키니까
어플리 케이션 안에 종류별로 폴더를 만들어서 관리하고 실행시켜야 한다. (MyApp안에다가)
서블릿 파일을 컴파일 시킬려면 jsp-api.jar파일이 꼭 필요한데 클래스 패스를 찾지 못할 경우에
cmd - java파일 경로 - javac -classpath "자르파일 경로" 자바파일.java 이렇게 컴파일 하면 된다.
""묶어주는 이유는 컴파일시 경로에 공백이 있으면 안되는데 묶어주면서 가능해짐.ㅋ
실행 시키려면 http://localhost:8080/MyApp/servlet/Hello
꼭 servlet을 넣어야한다.
그런데 실행이 안된다.
-----------------------------------------------------------------------------------------------------------------------
실행이 되도록 하는 방식은 web.xml파일을 건드려 보자.
서블릿을 개발하면 보통 다음과 같이 web.xml에 등록하지 않습니까?
꼭 이과정을 거치지 않고 디플로이와 동시에 서블릿을 호출할 수 있는 방법은 없을까요?
web.xml 내용을 수정하고 서버를 내리지 않고도 반영하기 위해서죠...
감사합니다.
--------------- 다음 --------------------------
<servlet>
<servlet-name>XXX</servlet-name>
<servlet-class>com.intranet.XXXServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>XXX</servlet-name>
<url-pattern>/XXX</url-pattern>
</servlet-mapping>
출처 : Tong - truemania님의 JAVA 통
Tomcat 4.X 버전 이후부터 보안상을 이유로 서블릿을 무조건 호출하는 대신 web.xml에 개별 서블릿에 대한 클래스 및 경로를 적도록 바뀐 것으로 알고 있습니다.
님께서 쓰신 것처럼 사용하려는 클래스와 그 클래스를 호출할 수 있는 경로가 쌍으로 기술되어져야 합니다.
<servlet>
<servlet-name>servletName</servlet-name>
<servlet-class>package.servletClass</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servletName</servlet-name>
<url-pattern>servletURL</url-pattern>
</servlet-mapping>
* servlet
servlet-name: 아래 servlet-mapping에 기술해주기 위한 식별자입니다.
servlet-class: 실제 서블릿 클래스입니다. 패키지까지 정확하게 써야 합니다.
* servlet-mapping
servlet-name: 위의 servlet에 명시한 이름입니다.
url-pattern: 어떠한 URL 경로로 접근할 수 있는지를 명시합니다.
예를 봅시다.
file 패키지 안에 DownloadServlet.java 라는 파일이 있다고 가정하고,
<servlet>
<servlet-name>downloadServlet</servlet-name>
<servlet-class>file.DownloadServlet</servlet-class>
</servlet>
이 서블릿은 /servlet/download 와 같은 URL 패턴일 때 호출됩니다.
<servlet-mapping>
<servlet-name>downloadServlet</servlet-name>
<url-pattern>/servlet/download</url-pattern>
</servlet-mapping>
물론 Tomcat 4.X 버전까지는 예전과 같은 호출 방법도 가능합니다. 5.X 버전은 잘 모르겠네요.
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
이렇게 쓰시면 서블릿마다 일일이 web.xml에 써주지 않아도 서블릿 호출이 가능합니다.
'DEV > java' 카테고리의 다른 글
implements Serializable (0) | 2008.12.20 |
---|---|
이클립스에서 스트럿츠 프레임 워크 세팅하기 (0) | 2008.06.21 |
JSP 페이지 이동 4가지 방법 및 특성 (0) | 2008.05.30 |