2012년 5월 31일 목요일

Servlet 클래스 등록하기

다음과 같은 순서다.
1. servlet 작성
2. servlet 컴파일
3. web.xml 에 등록

myapp 이라는 프로젝트를 만드는 것으로 가정한다.
대략 아래와 같은 구조이다.

/Users/username/
 + project/myapp/src/com/myapp/servlet/
   + HelloServlet.java
 + apache-tomcat/webapps/myapp
   + WEB-INF/
     + classes/com/myapp/servlet/
       + HelloServlet.class
     + web.xml


1. servlet 작성
javax.servlet.http.HttpServlet 클래스를 상속받아 doGet 또는 doPost 함수를 작성한다.
doGet 은 GET 방식으로 접속한 경우 호출 되는 함수이고 doPost 는 POST 방식으로 접속한 경우 호출되는 함수 이다.

예) src 라는 폴더를 만들고 com/myapp/servlet/ 폴더 구조로 HelloServlet.java 를 만듬

package com.myspp.servlet;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;


public class HelloServlet extends HttpServlet {

 @Override
 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  PrintWriter out = response.getWriter();
  out.println("Hello World");
 }
}

2. servlet 컴파일

컴파일 하기 위해선 $TOMCAT_HOME/lib 에 servlet-api.jar 파일이 필요하다.
-cp 에 servlet-api.jar 를 추가한다.

예)
export TOMCAT_HOME=/Users/username/apache-tomcat/
export PROEJCT_HOME=/Users/username/project/myapp/


$ javac -cp $TOMCAT_HOME/lib/servlet-api.jar -d $TOMCAT_HOME/webapps/myapp/WEB-INF/classes $(find $PROJECT_HOME/src -name *.java)

!) 참고
 - Ant 로 컴파일 : http://tjjava.blogspot.kr/2012/06/ant.html
 - javac 로 컴파일 : http://tjjava.blogspot.kr/search/label/javac

3. web.xml 에 등록
servlet 태그로 servlet class 를 등록하고 servlet-mapping 태그로 url 를 매핑한다.
 !) url pattern 작성시 / 로 시작해야 하는 점에 주의한다.

예)
<servlet>
    <servlet-name>HelloServlet</servlet-name>
    <servlet-class>com.myapp.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
    <url-pattern>/hello</url-pattern>
</servlet-mapping>

4. 테스트
tomcat 을 재시작한다.
http://localhost:8080/myapp/hello 로 접속하여 Hello World 를 확인 할 수 있으면 된다.



댓글 없음:

댓글 쓰기