..
서블릿 컴파일 후에 실행이 안되요
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
서블릿 파일을 만들고나서 실행을 시킨다.

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에 써주지 않아도 서블릿 호출이 가능합니다.



  Comments,     Trackbacks