본문 바로가기
몰입형학습

HTTPServlet 클래스

by jackypark 2022. 9. 15.

서블릿 클래스 간의 관계

서블릿을 구현할 때 반드시 HttpServlet 클래스를 상속받아야 한다.

HttpServlet에는 웹상에서 클라이언트 요청이 있을 때 해당 서블릿을 실행하는 모든 조건이 포함되어 있다.

그래서 모든 서블릿은 반드시 HttpServlet을 상속받아야 한다.

HttpServlet를 상속받지 않은 클래스는 서블릿이라 할 수 없고, 따라서 클라이언트가 실행을 요청하여도 실행되지 않는다.

HttpServlet 상속받은 서블릿 동작 구조

HttpServlet 클래스

HttpServlet 클래스는 GenericServlet 클래스를 상속하여 service() 메서드를 재정의함으로써 HTTP 프로토콜에 알맞은 동작을 수행하도록 구현한 클래스이다. 즉, HTTP 프로토콜 기반으로 브라우저로부터 요청을 전달받아서 처리하도록 하는 클래스이다. service() 메서드에는 요청 방식에 따라 doGet(), doPost() 등 정해진 사양의 메서드가 호출되도록 구현되어 있다.

HttpServlet 클래스를 상속하여 웹서버 기반의 서블릿 프로그램을 구현할 때 반드시 재정의해야 하는 메서드는 없으며, 어떠한 요청 방식을 지원하는 서블릿인지에 따라서 필요한 메서드를 재정의하여 구현한다.

HttpServlet 클래스

 

  • HttpServlet 클래스에서 사용자 요청을 처리하는 doGet/doPost 메서드는 모두 HttpServletRequest HttpServletResponse 객체를 매개변수로 가지고 있다.
  • HttpServletRequest HttpServletResponse 객체는 서블릿과 클라이언트 사이를 연결해주는 중요한 객체들이다.

 

doGet메서드와 doPost메서드

 

public void doGet(HttpServletRequest request, HttpServletResponse response)
public void doPost(HttpServletRequest request, HttpServletResponse response)

 

서블릿에서 service 메서드가 나의 doGet(), doPost() 메서드를 호출하는데 어떻게 호출할까?

당연히 동적바인딩이 안에서 돼있기 때문에 내가 재정의한 메서드를 사용할 수 있게 되는 것이다.!

 

 

 

 

 

 

 

 

HttpServletRequest클래스의 주요 메서드

 

메서드 설명
getParameterNames() 현재 요청에 포함된 매개변수 이름을 열거 형태로 넘겨준다.
getParameter(name) 문자열 name과 같은 이름을 가진 매개변수 값을 가져온다.
getParameterValues(name) 문자열 name과 같은 이름을 가진 매개변수 값을 배열 형태로 가져온다.                   
( 주로 checkbox, mutilple list 등에 사용 )
getCookies() 모든 쿠키 값을 javax.servlet.http.Cookie의 배열 형태로 가져온다.
getMethod() 현재 요청이 Get인지, Post인지 파악해서 가져온다.
getSession() 현재 세션 객체를 가져온다.
getRemoteAddr() 클라이언트의 IP 주소를 알려준다.
getProtocol() 현재 서버의 프로토콜을 문자열 형태로 알려준다.
setCharacterEncoding() 현재 JSP로 전달되는 내용을 지정한 캐리터셋을로 변환해 준다.                   
HTML 폼에서 한글을 입력할 때 정상적으로 처리하려면 반드시 필요하다.
getAttribute(name) ''
setAttribute(null, null) ''

 

HttpServletResponse 클래스의 주요 메서드

메서드 설명
setContentType(type) 문자열 형태의 type에 지정된 MIME Type으로 Content Type을 지정한다.
setHeader(name, value) 문자열 name의 이름으로 문자열 value 값을 헤더로 설정한다.
setDateHeader(name, date) 문자열 name의 이름으로 date에 설정된 밀리세컨드 시간 값을 헤더에 설정한다.
sendRedirect(url) 클라이언트 요청을 다른 페이지로 보낸다.

 

출처:https://woojong92.tistory.com/entry/Servlet%EA%B5%AC%EC%A1%B0%EC%99%80-HttpServlet-%ED%81%B4%EB%9E%98%EC%8A%A4

'몰입형학습' 카테고리의 다른 글

개인정보 암호화 해서 DB에 저장하기  (0) 2022.10.14
web.xml 정리  (0) 2022.09.16
HTTP 와 HTTPS 차이  (4) 2022.09.15
HTTP 상태코드  (0) 2022.09.15
[JAVA]멀티캐스팅을 이용한 채팅 프로그램  (0) 2022.09.06

댓글