일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- generate pojos
- custom valid
- swagger
- spring
- JavaScript
- 헤더 설정
- React
- ollama langflow
- 초기 구축
- SpringBoot
- 초기 세팅
- generate entity
- jvm
- Next.js 14
- java9
- NextJS
- Java
- 리눅스
- MySQL
- docker
- java8
- CentOS6
- JPA
- memcached
- 도커
- jpa entity자동
- dto valid
- spring boot
- header setting
- docker 설치
Archives
- Today
- Total
개발자의 길
Spring에서 호출 URL 찾는 방법 본문
프로젝트를 진행 하다보면 호출 URL을 참고할 때가 있습니다.
(호출 URL에 따라서 권한을 체크 한다던지 아니면 접속 로그를
남긴다든지 등)
Controller에서 HttpServletRequest.getRequestURI() 또는
HttpServletRequest.getRequestURL() 를 통해서 쉽게 구할 수가
있습니다.
하지만 문제는 View에서 호출 URL을 구할 경우 입니다.
jsp/jstl 뷰 또는 사용자 정의 뷰 (AbstractView를 상속 받은)로
갔을때 위 와 같은 메서드를 콘솔에 출력 하면 호출 URL이 아닌
forwarding된 뷰의 경로가 출력 됩니다.
즉 "/sample/hello.do"를 호출 했을 경우 당연히 호출 된
URL이 나와야 하는데 "/views/sample/hello.jsp" 같은
JSP가 출력 됩니다.
물론 컨트롤러에서
request.getAttribute("sourceURL",request..getRequestURI() )
를 담어서 뷰에서 처리 할수도 있습니다.
하지만 그전에 만약 스프링에서 API를 제공 한다면 그것을
되도록 사용 하는것이 맞다고생각 합니다.
이유인즉은 처음 시스템을 개발 하시는 분들은 모르겠지만
구축 후 유지보수 하시는 분들은 저걸 왜 request 객체에
담았지 하고 의문에 빠지게 됩니다. 물론 comment를 상세히
기록 하면 될 수도 있지만 여전히 코드를 의심하게 될 것입니다.
당행히 스프링에서 호출 URL을 찾는 API를 제공하고 있습니다.
그런 놈을 찾기가 어렵지 사용법은 무지 easy 합니다.
* 호출 URL 찾는 방법
패키지 경로 : org.springframework.web.util.UrlPathHelper
UrlPathHelper urlPathHelper = new UrlPathHelper(); String originalURL = urlPathHelper.getOriginatingRequestUri(request); out.print("OriginalURL ==>" + originalURL );
JSP에서 실행 하면 포워딩 된 jsp가 출력 되는 것이 아니라
/sample/hello.do가 그대로 출력 됩니다.
이 메서드 외에 UrlPathHelper 클래스에서 제공하는 유용한 메서드가
있습니다. 꼭 API Docs를 참고 하시기 바랍니다.
(호출 URL에 따라서 권한을 체크 한다던지 아니면 접속 로그를
남긴다든지 등)
Controller에서 HttpServletRequest.getRequestURI() 또는
HttpServletRequest.getRequestURL() 를 통해서 쉽게 구할 수가
있습니다.
하지만 문제는 View에서 호출 URL을 구할 경우 입니다.
jsp/jstl 뷰 또는 사용자 정의 뷰 (AbstractView를 상속 받은)로
갔을때 위 와 같은 메서드를 콘솔에 출력 하면 호출 URL이 아닌
forwarding된 뷰의 경로가 출력 됩니다.
즉 "/sample/hello.do"를 호출 했을 경우 당연히 호출 된
URL이 나와야 하는데 "/views/sample/hello.jsp" 같은
JSP가 출력 됩니다.
물론 컨트롤러에서
request.getAttribute("sourceURL",request..getRequestURI() )
를 담어서 뷰에서 처리 할수도 있습니다.
하지만 그전에 만약 스프링에서 API를 제공 한다면 그것을
되도록 사용 하는것이 맞다고생각 합니다.
이유인즉은 처음 시스템을 개발 하시는 분들은 모르겠지만
구축 후 유지보수 하시는 분들은 저걸 왜 request 객체에
담았지 하고 의문에 빠지게 됩니다. 물론 comment를 상세히
기록 하면 될 수도 있지만 여전히 코드를 의심하게 될 것입니다.
당행히 스프링에서 호출 URL을 찾는 API를 제공하고 있습니다.
그런 놈을 찾기가 어렵지 사용법은 무지 easy 합니다.
* 호출 URL 찾는 방법
패키지 경로 : org.springframework.web.util.UrlPathHelper
UrlPathHelper urlPathHelper = new UrlPathHelper(); String originalURL = urlPathHelper.getOriginatingRequestUri(request); out.print("OriginalURL ==>" + originalURL );
JSP에서 실행 하면 포워딩 된 jsp가 출력 되는 것이 아니라
/sample/hello.do가 그대로 출력 됩니다.
이 메서드 외에 UrlPathHelper 클래스에서 제공하는 유용한 메서드가
있습니다. 꼭 API Docs를 참고 하시기 바랍니다.
'4. JAVA' 카테고리의 다른 글
[자바] 초간단 REST 서비스 하기 [#2] (0) | 2011.05.16 |
---|---|
[자바] 초간단 REST 서비스 하기 [#1] (0) | 2011.05.16 |
[자바] 암호화 만들기 (0) | 2011.01.05 |
[JAVA] EHCache를 이용한 캐시 사용 (0) | 2010.10.01 |
mx를 이용한 smtp 메일존재여부 EmailValidator체크 (0) | 2010.05.24 |
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
Comments