학습목표
HttpServletRequest 객체에 대해 설명할 수 있다.
Request 네트워크 정보에 대해 설명할 수 있다.
HttpServletRequest 객체를 이용한 Request Header 분석을 할 수 있다.
HttpServletRequest
클라이언트로부터 전달되는 다양한 정보를 추상화시킨 객체
클라이언트로부터 전달되는 정보 (= HttpServletRequest 에 담겨있는 정보)
- 브라우저에서 전송된 네트워크 정보(URL, 포트번호)
- 브라우저에서 전송된 요청 헤더 정보(브라우저 설정 정보)
- 서버에서 설정한 정보
- ★ 클라이언트가 요청 시 입력한 데이터 <-- 가장 중요! (Login 시 아이디 패스워드 등)
HttpServletRequest 객체 획득
HeepServlet 의 doGet 혹은 doPost 함수의 매개변수로 전달
--> 함수가 자동호출 되려면 클라이언트의 요청 정보(아이디, 패스워드 등) 필요
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// ...................
}
}
}
함수의 첫 번째 매개변수(request) 를 이용해서 정보를 추출해내면 된다.
HTTP
- 웹 서버와 웹 클라이언트(Browser) 간에 통신하기 위한 프로토콜 (통신 규약)
- 연결지향적 (Connect Oriented) : TCP 프로토콜을 기본으로 하기 때문에 연결지향적이다.
- ★ 무상태 (Stateless) : 한번 요청과 응답이 이루어지면(Response 가 끝나면) 연결을 끊기 때문에 특정 클라이언트 상태정보를 유지할 수 없음
HTTP 기본 구조
Start Line, Message Header, Message Body 세 부분으로 구성됨
HTTP 는 요청과 응답이 서로 다른 내용으로 구성됨
- Start Line : 요청 사항에 대한 정보 혹은 응답할 내용의 상태 정보
- Message Header : HTTP 메시지의 부가적인 정보가 들어가는 부분으로서 날짜, 이름과 버전, 쿠키와 캐시에 대한 정보
- ★ Message Body : 요청이나 응답에 필요한 내용이 들어가는 곳
Http Request
Http Request 를 통해서 클라이언트의 정보가 서버로 전달됨
Request Header
클라이언트로부터 전송되는 정보는 크게 브라우저 정보와 사용자 입력정보로 나뉨
HTTP Request 의 Header 정보 = 브라우저 정보
HttpServletRequest 의 주요 메서드
- ★ Cookie[] getCookies() : 클라이언트로부터 전송된 Cookie 데이터
- String getMethod() : 클라이언트의 메서드 요청방식
- String getQueryString() : 클라이언트에서 전송한 Query 문자열
- String getRequestURl() : 클라이언트에서 요청한 문서의 URl
- ★ HttpSessiongetSession() : 상태정보를 저장하기 위한 Session 객체
- void setAttribute(Object name, Object value) : 다른 JSP 나 서블릿으로 제어를 넘길때, Request 객체에 데이터 저장
- Object getAttribute(String name) : Request 객체에 저장된 Attribute 데이터 중 Name 과 일치하는 데이터 반
--> Cookie 값, Session 값은 Header 값에 포함된다.
실습
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String method = request.getMethod();
String query = request.getQueryString();
String uri = request.getRequestURI();
String url = request.getRequestURL().toString();
PrintWriter out = response.getWriter();
out.println("<h1>Request Test</h1>");
out.println("method : " + method + "<br/>");
out.println("query : " + query + "<br/>");
out.println("uri : " + uri + "<br/>");
out.println("url : " + url + "<br/>");
}
'온라인 강좌 > JSP & Servlet 활용' 카테고리의 다른 글
6차시 Servlet 설정 (0) | 2023.06.29 |
---|---|
5차시 웹 Query 문자열 (0) | 2023.06.29 |
4차시 Response 분석 (0) | 2023.06.29 |
2차시 Servlet (0) | 2023.06.28 |
1차시 웹 애플리케이션의 이해 (0) | 2023.06.28 |