자바(Java)/JAVA 2EE

이클립스에서 서블릿 클래스 작성

본클라쓰 2009. 12. 16. 12:11

플랫폼 환경

  • JDK 버전 : 1.6

  • 톰캣 버전 : 5.5

  • 이클립스 버전 : 3.4 (가니메데 클래식) + WTP

 

이클립스를 실행한 후 새로운 동적 프로젝트( new - Dynamic Web Project )를 생성합니다. 톰캣이 설치된 폴더에서 /conf 디렉토리로 이동하여 web.xml 파일에서 서블릿(Servlet)을 사용할 수 있도로 변경합니다.

 

 

web.xml 파일을 텍스트 편집기로 열면 위의 해당 부분이 <!-- --> ( 주석처리 ) 되어 있음을 알 수 있습니다. 이 주석을 제거하여 서블릿(Servlet) 을 사용할 수 있도록 변경합니다.

 

 

  

서블릿(Servlet) 작성하기

 

이클립스를 실행시킨 다음 새로 생성한 프로젝트에서 패키지를 하나 만든 후 ( 테스트를 위해 패키지명을 test 로 작성했습니다. ) 마우스 오른쪽 버튼을 클릭하여 ( new - Servlet ) 선택합니다.

 

새로운 서블릿 파일을 생성하면 서블릿이 구현해야될 부분을 미리 정의된 파일이 생성됩니다.

 

새로운 서블릿 파일 ( 서블릿으로 작성해야 할 양식을 기본적으로 작성된 상태로 파일이 생성됩니다. )

package test;

 

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

 

public class hello extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
     public test() {
        super();
    }

 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }

 

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }

}

 

위에 새롭게 생성된 서블릿 파일을 아래와 같이 변경합니다.

 

package test;

 

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

 

public class hello extends HttpServlet {
    private static final long serialVersionUID = 1L;
      
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         doPost(request, response);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

 

        response.setContentType("text/html;charset=euc-kr");

 

        try {


            PrintWriter out = response.getWriter();
            out.println("<html>");
            out.println("<head><title>Hello</title></head>");
            out.println("<body>");
            out.println("hahaha");
            out.println("</body>");
            out.println("</html>");
            out.close();

        } catch (Exception e) {
            getServletContext().log("Error in Hello",e);
        }
    }

}

 

 

서블릿을 작성하면 이클립스에서 자동으로 WEB-INF/web.xml 파일을 수정하여 서블릿과 이름에 해당하는 요청으로 매칭시킵니다. 아래는 이클립스가 자동으로 수정한 web.xml 파일입니다. 해당 서블릿 클래스가 포함됨을 확인할 수 있습니다.