반응형
HttpServlet 이란?
HttpServlet은 GenericServlet으로부터 상속받은 클래스이다.
여기서 GenericServlet는 또 여러 인터페이스를 상속받는다.
※ ServletEx - 개발자가 작성한 servlet
왜 이렇게나 많은 클래스, 인터페이스로 부터 상속을 받냐면
HttpServlet, GenericServlet 등등의 클래스는
사용자와 서버와의 통신에 관련하여 필요한 기능들을 많이 품고 있기 때문이다.
예를 들자면,
사용자가 서버에게 어떤 요청((회원정보 조회, 로그인 등등)을 할 수 있는데
우리가 작성한 서블릿 파일은
HttpServlet, GenericServlet 등 부모 클래스로부터 통상적인 요청-응답 관련 기능을
상속받아 사용할 수 있다.
● HttpServletRequest, HttpServletResponse
자바 프로젝트에서 Servlet을 작성하면
아래와 같이 doGet, doPost 메서드가 있는데,
이들의 매개변수에는 HttpServletRequest와 HttpServletResponse 가 있는 걸 볼 수 있다.
public void doGet(HttpServletRequest request, HttpServletResponse response){
}
public void doPost(HttpServletRequest request, HttpServletResponse response){
}
사용자의 요청(request)과 서버로부터 응답(response), 이들을 잘 활용하여
개발하는 데에 필요한 기능들을 추가할 수 있다.
● 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) | jsp 혹은 servlet에서 생성한 속성값을 불러올 수 있다. |
setAttribute(null, null) | jsp 혹은 servlet에서 입력한 변수에 속성값을 지정할 수 있다. |
● HttpServletResponse 클래스의 주요 메서드
메서드 | 설명 |
setContentType(type) | 문자열 형태의 type에 지정된 MIME Type으로 Content Type을 지정한다. |
setHeader(name, value) | 문자열 name의 이름으로 문자열 value 값을 헤더로 설정한다. |
setDateHeader(name, date) | 문자열 name의 이름으로 date에 설정된 밀리세컨드 시간 값을 헤더에 설정한다. |
sendRedirect(url) | 클라이언트 요청을 다른 페이지로 보낸다. |
반응형