티스토리 뷰

Servlet 작성 방법

 

1. Servlet 3.0 spec 이상에서 사용하는 방법

  • web.xml 파일을 사용하지 않습니다.
  • 자바 어노테이션(annotation)을 사용합니다.
  • 앞에서 실습했던 first web에서 사용합니다.

2. Servlet 3.0 spec미만에서 사용하는 방법

  • servlet을 등록할 때 web.xml 파일에 등록합니다.

 

 

Servlet 3.0 spec 이상에서 사용하는 방법

- Servlet 3.1spec으로 exam31 라는 프로젝트 생성

- 해당 프로젝트에 1부터 10까지 출력하는 TenServlet 작성

- http://localhost:8080/exam31/ten 로 주소 설정

 

 

new -> Dynamic web project

 

Project Name : exam31

Dynamic web module version : 3.1

 

next 클릭

 

exam31 프로젝트 오른쪽 클릭 -> new -> servlet 클릭

 

java pakage : exam

Class name : TenServlet

 

next 클릭

 

URL mappings : TenSevlet -> edit 클릭해서 ten으로 변경 (http://localhost:8080/exam31/ten 로 받기로 했으니.. )

 

doget 메서드만 체크

 

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                                  요청을 받아내는 객체        응답을 하는 객체
 }

 

아래처럼 작성한다

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package exam;
 
import java.io.IOException;
import java.io.PrintWriter;
 
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
/**
 * Servlet implementation class TenServlet
 */
@WebServlet("/ten"// url mapping을 이 어노테이션에서 바꿀 수 있다 ex) @WebServlet("/ttt")로 변경하면 http://localhost:8080/exam31/ttt 로 접속 가능
public class TenServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public TenServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
 
    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");//응답 보낼 타입 정하기
        PrintWriter out = response.getWriter();//내용을 보낼 통로 역할,PrintWriter라는 객체가 리턴된다.
        out.println("<h1>1-10</h1>");
        for(int i = 0; i < 10; i++) {
            out.println(i);
        }
        out.close();// out 객체 다 사용했으니 close
    }
 
}
 
cs

 

resouces->src->exam->TenServlet.java 실행

 

========================================================

web.xml은 나중에 개발을 하다보면 사용해야할 일이 생길 수 있다.

 

Servelet 3.0 미만

 

new -> dynamic... ->

 

Name : exam25

dynamic web module version : 2.5

 

-> finish

 

exam25 오른쪽 클릭 -> new -> servelet

 

java pakage : exam

class name : TenServelet

 

-> next

URL mappings -> edit -> ten

 

그러면 web.xml 에 아래와 같은 코드가 추가된다.

 

*web.xml

1
2
3
4
5
6
7
8
9
<description></description>
    <display-name>TenServelet</display-name>
    <servlet-name>TenServelet</servlet-name>//3.servelet 네임을 찾아 여기로 들어오고
    <servlet-class>exam.TenServelet</servlet-class>//4.실제로 실행시킬 서블릿이 뭔지 찾아냄
  </servlet>
  <servlet-mapping>
    <servlet-name>TenServelet</servlet-name>//2.이 servelet 네임과 같은 서블릿을 찾아서 ,못찾으면 404
    <url-pattern>/ten</url-pattern> //1.클라이언트가 이 url로 요청이 들어오면
  </servlet-mapping>
cs

 

 

3.0 이상과 3.0 미만의 차이는 서블릿 등록 방법이다.

3.0이상은 어노테이션으로 3.0미만은 web.xml에서 직접 넣어야 한다.

 

참고 사이트 : http://www.edwith.org/



본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.

' > 부스트코스' 카테고리의 다른 글

[WEB]Request, Response 객체 이해하기  (1) 2018.05.20
[WEB]servlet 라이프 사이클  (0) 2018.05.20
[WEB]Servlet이란?  (0) 2018.05.17
[WEB]HelloWorld 서블릿 컴파일 및 실행하기  (0) 2018.05.17
[WEB]상속과 우선순위  (0) 2018.05.16
댓글