서블릿
[서블릿] 서블릿 클래스
기록하는_사람
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을 얻어옴. |