1️⃣ 특징

  • main 없다. 요청한 서블릿이 시작점 역할 담당
  • Tomcat 컨테이너가 관리 (생성~소멸)
  • 응답결과는 html이기 때문에 html 응답코드가 필요

 


 

2️⃣ 구현 방법

  • 반드시 package 필수
  • extends HttpServlet ( javax.servlet.http.HttpServlet )
    => 추상 클래스
💡 계층 구조 그림 (p.35)

💡 Java EE API 문서 ( java.oracle.com )


 

 

ServletContext     (인터페이스, javax.servlet.ServletContext)

☑ ServletConfig의 getServletContext() 메서드를 사용해서 ServletContext를 얻는다.
     ex) 사용자 서블릿에서
           ServletContext sc = getServletContext();

☑ 메서드
- getInitParameter()
- setAttribute()
- getAttribute()
- removeAttribute()

 

HttpServletRequest (인터페이스) ⇒ 요청과 관련

☑ 요청 시 사용할 수 있는 다양한 메서드를 제공
     ex) 사용자가 입력한 데이터 얻기
     한글 처리

☑ 메서드
- getContextPath() : URL에서 context명 추출
- getCookies() : Cookie 정보를 얻을 때
- getHeader(String name), getHederNames() : 요청 헤더 정보 얻을 때
- get Session() : httpSession 정보를 얻을 때
- getAttribute(), setAttribute(), removeAttribute()
- setCharacterEncoding : 한글 처리
- getRequestDispatcher() : 포워드(forward) 용도

 

 

HttpServletResponse (인터페이스, javax.servlet.http.HttpServletResponse) ⇒ 응답과 관련

☑ 응답 시 사용할 수 있는 다양한 메서드를 제공
    ex) html 응답처리, MIME타입 (서버에서 브라우저에게 데이터 전달 시 데이터 종류 지정)

☑ 메서드

  • addCookie() : Cookie 생성할 때
  • getHeader(), getHeaderNames() : 응답 헤더 정보 얻을 때
  • sendRedirect() : 리다이렉트(redirect) 용도
  • setContentType() : MIME타입 지정
  • getWriter() : html를 브라우저에 출력하기 위해서 I/O 얻는 용도

 

💡 Header 정보

 

 

 

  • 기본 생성자 필수
  • 서비스 메서드 재정의 ( doGet, doPost )
  • doGet (HttpServletRequest request, HttpServletResponse response) : 기본
  • doPost (HttpServletRequest request, HttpServletResponse response)
  • 서블릿맵핑 (servlet mapping, URL mapping)
     - web.xml
     - @WebServlet(”/서블릿맵핑”)





 

📝 실습

 

  1. New dynamic web
  2. 서블릿 생성 ⇒ 서블릿맵핑은 일단 그대로 ( 추후 코드에서 변경 )
                        ⇒ Ingerited ~
                            doGet
  3. 필요없는 코드 지우기
  4. Mapping 이름 변경 ⇒ @WebServlet(”/test”)
  5. 요청 URL ⇒ http://localhost:8090/01_servlet/test
  6. 내용코드 작성 ⇒ System.out.println("TestServlet.doGet");
  7. Java resource - src - com.servlet - TestServlet ⇒ Run as
package com.servlet;

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

// 요청 URL: http://localhost:8090/01_servlet/test
@WebServlet("/test")
public class TestServlet extends HttpServlet {
	protected void doGet(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
		
		// 웹 브라우저가 아닌 Tomcat 서버의 콘솔에 출력됨.
		System.out.println("TestServlet.doGet");
	}

}

 

 





 

 

 


 

 

💡 요청할 때 헤더 정보

💡 응답할 때 헤더 정보
xoo | 수진