-
HttpServletRequest는 무엇인가?인터넷 통신 2024. 8. 15. 23:03반응형
HttpServletRequest
Java 서블릿 API에서 사용되는 인터페이스로, 클라이언트(일반적으로 웹 브라우저)에서 서버로 전송된 HTTP 요청을 나타냅니다. 이 인터페이스는 HTTP 요청에 대한 다양한 정보를 제공하며, 서블릿이 클라이언트의 요청을 처리할 수 있도록 돕습니다. 주요 기능과 메서드는 다음과 같습니다.
주요 기능 및 메서드
- 요청 메서드(GET, POST 등):
- getMethod(): 클라이언트가 사용한 HTTP 메서드를 반환합니다. 예를 들어, "GET", "POST", "PUT", "DELETE" 등이 있습니다.
- 요청 URL 및 URI 정보:
- getRequestURI(): 요청의 URI를 반환합니다. URI는 웹 애플리케이션 내에서 자원의 위치를 나타냅니다.
- getRequestURL(): 전체 URL을 반환합니다.
- getContextPath(): 현재 웹 애플리케이션의 컨텍스트 경로를 반환합니다.
- getQueryString(): 요청에 포함된 쿼리 문자열을 반환합니다.
- 헤더 정보:
- getHeader(String name): 지정된 이름의 요청 헤더 값을 반환합니다.
- getHeaderNames(): 모든 요청 헤더 이름의 열거형(Enumeration)을 반환합니다.
- 파라미터 정보:
- getParameter(String name): 요청 파라미터의 값을 반환합니다. 예를 들어, URL의 쿼리 스트링 또는 POST 데이터에서 값을 추출합니다.
- getParameterNames(): 모든 요청 파라미터 이름의 열거형을 반환합니다.
- getParameterValues(String name): 하나의 파라미터 이름에 대해 여러 값이 있는 경우, 그 값을 배열로 반환합니다.
- 세션 관리:
- getSession(): 현재 요청에 연결된 세션을 반환합니다. 세션이 없다면 새 세션을 생성합니다.
- getSession(boolean create): create 파라미터가 true면 새로운 세션을 생성하고, false면 세션이 없을 때 null을 반환합니다.
- 클라이언트 정보:
- getRemoteAddr(): 클라이언트의 IP 주소를 반환합니다.
- getRemoteHost(): 클라이언트의 호스트 이름을 반환합니다.
- getRemotePort(): 클라이언트가 사용한 포트를 반환합니다.
- 요청 본문 처리:
- getInputStream(): 요청의 본문을 읽기 위한 ServletInputStream을 반환합니다. 보통 POST 요청의 데이터를 처리할 때 사용됩니다.
- getReader(): 요청 본문을 문자 기반으로 읽기 위한 BufferedReader를 반환합니다.
<예시>
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String param = request.getParameter("name"); String clientIP = request.getRemoteAddr(); String method = request.getMethod(); response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html><body>"); out.println("Parameter name: " + param + "<br>"); out.println("Client IP: " + clientIP + "<br>"); out.println("Method: " + method + "<br>"); out.println("</body></html>"); }
이 예제에서는 HttpServletRequest를 사용하여 클라이언트로부터 "name" 파라미터를 받아오고, 클라이언트의 IP 주소와 요청 메서드를 출력합니다.
HttpServletRequest는 서블릿에서 클라이언트 요청을 처리하고, 필요한 정보를 추출하는 데 핵심적인 역할을 합니다. 이를 통해 다양한 웹 애플리케이션 시나리오에서 유연하게 요청을 처리할 수 있습니다.
반응형'인터넷 통신' 카테고리의 다른 글
FTP란 무엇일까? (0) 2025.03.28 HTTP 데이터 전송 방식 개요 (1) 2024.10.09 HTTP URL 구조와 사용 예시 (0) 2024.07.25 - 요청 메서드(GET, POST 등):