참고 사이트 : https://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/http/HttpServletRequest.html


클라이언트의 요청 정보를 확인하기 위해서  Interface HttpServletRequest 객체를 사용합니다.

보통 Spring MVC 구조에서는 컨트롤러나 인터셉터에서 parameter를 추가하여 사용하는 편인데 그 내용은 아래 코드에서

확인하도록 하겠습니다.


  예제코드


sampleContorller.java

@RequestMapping(value = "/getDomainInfo/example/test", method = RequestMethod.GET) public ModelAndView getDomainInfo(HttpServletRequest request) { ModelAndView modelAndView = new ModelAndView(); modelAndView.addObject("RequestURL", request.getRequestURL()); modelAndView.addObject("RequestURI", request.getRequestURI()); modelAndView.addObject("ContextPath", request.getContextPath()); modelAndView.addObject("ServletPath", request.getServletPath()); modelAndView.addObject("QueryString", request.getQueryString()); modelAndView.addObject("ServerName", request.getServerName()); modelAndView.addObject("ServerPort", request.getServerPort()); modelAndView.addObject("Method", request.getMethod()); modelAndView.addObject("Referer", request.getHeader("referer")); modelAndView.setViewName("test"); return modelAndView; }

test.jsp

<div> <h3>RequestURL</h3> <ul> <li> 요청정보 : ${RequestURL } </li> <li> 리턴정보 : ${RequestURL } </li> </ul> <h3>RequestURI</h3> <ul> <li> 요청정보 : ${RequestURI } </li> <li> 리턴정보 : ${RequestURI } </li> </ul> <h3>ContextPath</h3> <ul> <li> 요청정보 : ${ContextPath } </li> <li> 리턴정보 : ${ContextPath } </li> </ul> <h3>ServletPath</h3> <ul> <li> 요청정보 : ${ServletPath } </li> <li> 리턴정보 : ${ServletPath } </li> </ul> <h3>QueryString</h3> <ul> <li> 요청정보 : ${QueryString } </li> <li> 리턴정보 : ${QueryString } </li> </ul> <h3>ServerName</h3> <ul> <li> 요청정보 : ${ServerName } </li> <li> 리턴정보 : ${ServerName } </li> </ul> <h3>ServerPort</h3> <ul> <li> 요청정보 : ${ServerPort } </li> <li> 리턴정보 : ${ServerPort } </li> </ul> <h3>Method</h3> <ul> <li> 요청정보 : ${Method } </li> <li> 리턴정보 : ${Method } </li> </ul> <h3>Referer</h3> <ul> <li> 요청정보 : ${Referer } </li> <li> 리턴정보 : ${Referer } </li> </ul> </div>


  결과화면


http://localhost:8080/getDomainInfo/example/test?ver=2017&test_id=test 로 요청하여 jsp페이지에 출력된 결과화면입니다.


RequestURL :

 쿼리스트링을 제외한 Protocol(http)+ServerName(도메인)+Port(8080)+ContextPath+ServletPath를 반환합니다.

- 요청정보 : http://localhost:8080/getDomainInfo/example/test

- 리턴정보 : http://localhost:8080/getDomainInfo/example/test


RequestURI: 

 프로젝트의 Context Path + Servlet Path, 즉 전체 경로를 반환합니다.

- 요청정보 : /getDomainInfo/example/test

- 리턴정보 : /getDomainInfo/example/test


ContextPath :

 프로젝트의 Context path를 반환합니다.

- 요청정보 : /getDomainInfo

- 리턴정보 : /getDomainInfo


ServletPath :

 프로젝트의 Servlet path를 반환합니다.

- 요청정보 : /example/test

- 리턴정보 : /example/test


QueryString :

 쿼리 스트링(Query String)의 문자열을 반환합니다.

- 요청정보 : ver=2017&test_id=test

- 리턴정보 : ver=2017&test_id=test


ServerName :

 ServerName(도메인)을 반환합니다.

- 요청정보 : localhost

- 리턴정보 : localhost


ServerPort :

 ServerPort 정보를 반환합니다.

- 요청정보 : 8080

- 리턴정보 : 8080


Method: 

 get / post 정보를 반환합니다.

- 요청정보 : GET

- 리턴정보 : GET


Referer :

링크를 이동할 경우 이동하기 전에 링크를 포함하고 있던 페이지의 URL을 반환합니다.(링크를 클릭한 경우에만 출력)

- 요청정보 : (공백)

- 리턴정보 : (공백)