참고 사이트 : 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을 반환합니다.(링크를 클릭한 경우에만 출력)
- 요청정보 : (공백)
- 리턴정보 : (공백)