본문 바로가기
Java

c:import include request uri 정보얻기

by 자바초보자 2016. 1. 20.
728x90

http://egloos.zum.com/schoolor/v/5671625

 

SpringMVC를 이용하여 Controller를 구현하였다.


이 Controller는 web context의 모든 action을 받아들이는 controller로, 요청된 action url에 따라 분기처리 등을 해주는 역할을 수행한다. (뭐, 보통 controller를 action mapping별로 여러개 만드는게 일반적이지만, 이 프로젝트에서는 대표 controller를 이용하고 있다.)

일반적인 호출에 대해서는 문제가 되지 않았지만, c:import나 jsp:include를 이용한 호출이 들어올 경우, request.getRequestURI() 등등의 method들의 호출값이, c:import 등에 기술된 action url이 아니라, c:import를 포함하고 있는 jsp page의 uri가 넘어왔다.


debug 상태에서 request객체의 정보들을 뒤져보았는데, request._attributes 에 원하는 정보가 기록되어 있었다. (그런데 이 정보를 접근하기 위한 method가 없다!!)


구글링을 통해 해당 정보를 조회할 수 있는 방법을 찾을 수 있었다.

javax.servlet.forward.request_uri
javax.servlet.forward.context_path
javax.servlet.forward.servlet_path
javax.servlet.forward.path_info
javax.servlet.forward.query_string

AND

javax.servlet.include.request_uri 
javax.servlet.include.context_path 
javax.servlet.include.servlet_path 
javax.servlet.include.path_info 
javax.servlet.include.query_string 


서블릿 구현체에서는 forward와 include에 대하여 각각 5개씩, 원 호출정보를 얻을 수 있는 방법을 제공하고 있다.
request.getAttribute("javax.servlet.include.request_uri") 와 같은 방법으로 정보를 얻을 수 있다.

 

Spring 이용 시

System.out.println( request.getAttribute("org.springframework.web.servlet.HandlerMapping.bestMatchingPattern") );
  System.out.println( request.getAttribute("org.springframework.web.servlet.HandlerMapping.pathWithinHandlerMapping") );
   

728x90

'Java' 카테고리의 다른 글

java version  (0) 2016.01.27
정규식 while 검사  (0) 2016.01.27
StringBuilder replaceAll  (0) 2016.01.08
MS office 하이퍼링크 세션 버그 문제  (0) 2015.12.30
Gson DateFormat  (0) 2015.12.22