728x90
반응형

HttpServletRequest란?

Java 웹 애플리케이션을 개발할 때, HTTP 요청을 처리해야 하는 경우가 많다.

HttpServletRequest 인터페이스는 이러한 HTTP 요청을 처리하기 위한 핵심 클래스 중 하나다.

사실 자주 사용하는 함수는 일부인 것 같고 나머지는 생소한 함수들도 있길래 정리한다.

 

 

request.getMethod()

getMethod는 HTTP 요청 메소드를 반환한다. 주로 GET, POST, PUT, DELETE 등의 값 반환.

HttpServletRequest request = ...; // HttpServletRequest 객체 생성
String method = request.getMethod();
System.out.println("HTTP 요청 메소드: " + method);

/*
예상출력값
HTTP 요청 메서드: GET
*/

 

 

request.getParameter(String name)

이 메서드는 HTTP 요청에서 지정된 이름의 매개변수 값을 반환한다.

주로 HTML 폼으로부터 전송된 데이터를 읽을 때 사용.

HttpServletRequest request = ...; // HttpServletRequest 객체 생성
String username = request.getParameter("username");
String password = request.getParameter("password");

/*
예상 출력값 (예시로 넘겨졌다고 치고)
username = "john"
password = "password123"
*/

 

 

request.getRequestURI()

이 메서드는 요청된 URI를 반환한다. URI는 클라이언트가 요청한 자원의 경로를 나타낸다. (프로젝트 + 파일경로 반환)

HttpServletRequest request = ...; // HttpServletRequest 객체 생성
String uri = request.getRequestURI();
System.out.println("요청된 URI: " + uri);

/*
예상 출력값
요청된 URI: /example/path
*/

 

 

request.getSession(boolean create)

이 메서드는 현재 세션을 반환하거나, 새로운 세션을 생성한다.

세션은 클라이언트와 서버 간의 상태 유지를 가능하게한다.

HttpServletRequest request = ...; // HttpServletRequest 객체 생성
HttpSession session = request.getSession(true); // 세션 가져오거나 생성
session.setAttribute("username", "exampleUser");

 

 

request.getHeader(String name)

이 메서드는 지정된 이름의 HTTP 헤더 값을 반환한다.

헤더는 클라이언트와 서버 간의 추가 정보를 전달하는 데 사용된다.

HttpServletRequest request = ...; // HttpServletRequest 객체 생성
String userAgent = request.getHeader("User-Agent");
System.out.println("사용자 에이전트: " + userAgent);

/*
예상출력값
사용자 에이전트: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36
*/

 

 

request.getScheme()

사용된 프로토콜(http, https 등)을 반환한다.

HttpServletRequest request = ...; // HttpServletRequest 객체 생성
String scheme = request.getScheme();
System.out.println("프로토콜: " + scheme);

/*
예상출력값
프로토콜: http
*/

 

 

request.getServerName()

서버 도메인 이름 반환한다.

HttpServletRequest request = ...; // HttpServletRequest 객체 생성
String serverName = request.getServerName();
System.out.println("서버 이름: " + serverName);


/*
예상 출력값
서버 이름: google.com
*/

 

 

request.getServerPort()

서버 포트 번호 반환한다.

HttpServletRequest request = ...; // HttpServletRequest 객체 생성
int serverPort = request.getServerPort();
System.out.println("서버 포트: " + serverPort);


/*
예상 출력값
서버 포트: 8080
*/

 

 

request.getContextPath()

HttpServletRequest request = ...; // HttpServletRequest 객체 생성
String contextPath = request.getContextPath();
System.out.println("컨텍스트 경로: " + contextPath);


/*
예상 출력값
컨텍스트 경로: /mywebapp
*/

 

 

request.getServletPath()

서블릿의 경로를 반환 (요청에 사용된 URL에서 파일명만 반환)

HttpServletRequest request = ...; // HttpServletRequest 객체 생성
String servletPath = request.getServletPath();
System.out.println("서블릿 경로: " + servletPath);


/*
예상 출력값
서블릿 경로: /myservlet
*/

 

 

예시

https://test.com:8080/main/index.jsp → 이런 주소가 있다고 생각하자.

서버단에서 주소 정보를 추출하자면 아래와 같이 응용할 수 있다.

String url = request.getScheme() + "://" + request.getServerName() + ":" 
+ request.getServerPort() + request.getContextPath() + request.ServletPath();


/*
결과값
https://test.com:8080/main/index.jsp
*/

728x90
반응형