GenericServlet

S·2023년 11월 18일
0

1. GenericServlet 사용 배경

  • Servlet 인터페이스를 구현할 때마다, 인터페이스에 선언된 모든 메서드를 구현해야왔다.
  • 다섯 개의 메서드 중 반드시 구현해야 하는 메서드는 service()이다.
  • 특별한 작업이 없다면 init(), destroy(), getServletConfig(), getServletInfo()는 구현할 필요는 없다.
package lesson03.servlets;

import java.io.IOException;

import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class HelloWorld extends GenericServlet {

	@Override
	public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
		System.out.println("service() 호출됨");
	}

}

2. ServletRequest

  • service()의 매개변수 중 클라이언트의 요청 정보를 다룰 때 사용함
메서드설명
getParameter()GET, POST 요청으로 들어온 매개변수 값을 추출하여 반환
getRemoteAddr()서비스를 요청한 클라이언트의 IP주소를 반환
getScheme()클라이언트가 요청한 URI형식 Scheme을 반환
즉, ':' 문자 전에 오는 값을 반환
getProtocol()요청 프로토콜의 이름과 버전을 반환(HTTP/1.1)
getParameterNames()요청 정보에서 매개변수 이름만 추출하여 반환
getParameterValues()요청 정보에서 매개변수 값만 추출하여 반환
getParameterMap()요청 정보에서 매개변수들을 Map 객체에 담아서 반환
setCharacterEncoding()POST 요청의 매개변수에 대해 문자 집합을 설정
처음 getParameter()을 호출하기 전에 이 메서드를 먼저 호출해야만 적용됨

3. ServletResponse

  • service()의 매개변수 중 응답 정보를 다룰 때 사용
  • 인코딩 타입 설정, 문자집합 지정, 출력 데이터를 임시 보관하는 버퍼의 크기 조절, 출력 스트림 준비를 할때 이 객체를 사용함
메서드설명
setContentType()출력할 데이터의 인코딩 형식과 문자집합을 지정
response.setContentType("text/plain") 또는
response.setContentType("text/plain;chartset=UTF-8")
setCharacterEncoding()출력할 데이터의 문자 집합을 지정
response.setCharacterEncoding("UTF-8")
getWriter()클라이언트로 출력할 수 있도록 출력 스트림 객체를 반환
getOutputStream()이미지나 동영상과 같은 바이너리 데이터를 출력 시 사용

0개의 댓글