서블릿

[서블릿] 서블릿 클래스

기록하는_사람 2022. 11. 15. 10:54

서블릿 클래스

📌 서블릿 클래스

: javax.servlet.Servlet 인터페이스를 구현한 추상 클래스 GenericServlet 클래스 또는 HttpServlet 클래스를 상속하는 클래스. (웹 프로그래밍에서는 HTTP 프로토콜에 최적화되어 있는 HttpServlet 클래스를 상속해 구현함.)

 

HttpServlet 클래스

📌 HttpServlet 클래스

public class HelloWorld extends HttpServlet {
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		...
	}

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

 

📌 doGet( )

: HTTP GET 요청을 처리하기 위한 메서드.

 

📌 doPost( )

: HTTP POST 요청을 처리하기 위한 메서드.

 

📌 request, response

: 클라이언트 요청과 응답을 처리할 수 있도록 서블릿에 제공하는 객체.

  클라이언트와 상호작용에 필요한 메서드 제공.

 

HttpServletRequest

📌 HttpServletRequest

: HTTP 프로토콜의 request 정보를 서블릿에 전달하기 위해 사용. 

 헤더 정보, 파라미터, 쿠키, URL 등의 정보를 읽어 들이는 메서드와 HTTP Body의 Stream 읽어 들이는 메서드를 가짐. 

 

📌 특징

① 서블릿 컨테이너에서 생성됨.

② 클라이언트 요청이 doGet( ), doPost( )로 전달될 때, 인자로 전달됨.

 

📌 주요 메서드

메서드 설명 반환 예
getParameter(name) name 속성으로 전달된 파라미터 값. lee1234
getParameterValues(name) 동일한 name 속성으로 전달된 모든 파라미터 값. {lee, park, kim}
getRequestURL( ) URL. http://www.xxx.com:8080/shop/list.jsp
getRequestURI( ) URL에서 스키마, 서버 이름, 포트 번호 제외한 나머지 주소와 파라미터. /shop/list.jsp
getScheme( ) http, https, FTP와 같은 프로토콜. http
getServerName( ) 서버 이름. www.xxx.com
getServerPort( ) 서버 포트. 8080
getContextPath( ) 콘텍스트 경로. /shop
getMethod( ) GET, POST 등의 HTTP 메서드. GET
isSecure( ) SSL 보안  여부.  false
getLocale( ) 지역 정보. ko_KR
getProtocol( ) 사용하는 프로토콜.
프로토콜/메이저 버전.마이너 버전
HTTP/1.1
getLocalAddr( ) 서버의 로컬 IP 주소. 127.0.0.1
getRemoteAddr( ) 클라이언트 IP 주소. 210.102.111.212

 

HttpServletResponse

📌 HttpServletResponse

: 서버에서 클라이언트로 정보 전달하기 위해 사용. 

 content type, 응답 코드, 응답 메시지 등 전송.  

 

📌 주요 메서드

메서드 설명
sendRedirect(String location) 클라이언트에 Redirect 응답을 보낸 후, 특정 URL로 다시 요청하게 함.
getWriter( ) 클라이언트로 데이터를 보내기 위한 출력 스트림을 리턴.
setContentType(String type) 클라이언트에 전달되는 콘텐츠 타입을 지정.
addCookie(Cookie cookie) 응답에 쿠키 추가.
addHeader(String name, String value) 헤더에 name와 value를 추가.
encodeURL(String url) 클라이언트가 쿠기를 지원하지 않을 때, 세션 id를 포함한 특정 URL을 인코딩.
getHeaderNames( ) 현재 응답이 헤더에 포함된 name을 얻어옴.