내가 ExternalContext에서 웹 응용 프로그램의 루트 URL을 검색하기 위해 노력하고있어,하지만 사용할 방법을 이해할 수 없다 ...ExternalContext에서 webapp의 절대 URL을 얻는 방법은 무엇입니까?
13
A
답변
13
당신은 FacesContext
에서 ExternalContext
를 얻을 수
request
를 추출
String file = request.getRequestURI();
if (request.getQueryString() != null) {
file += '?' + request.getQueryString();
}
URL reconstructedURL = new URL(request.getScheme(),
request.getServerName(),
request.getServerPort(),
file);
reconstructedURL.toString();
2
하자 나를 다시 문구 Jigar의 대답은 조금 :
final ExternalContext ectx = context.getExternalContext();
String url = ectx.getRequestScheme()
+ "://" + ectx.getRequestServerName()
+ ":" + ectx.getRequestServerPort()
+ "/" + ectx.getRequestContextPath();
16
더 간결 방법은 다음과 같습니다
HttpServletRequest request = (HttpServletRequest) externalContext.getRequest();
String url = request.getRequestURL().toString();
String baseURL = url.substring(0, url.length() - request.getRequestURI().length()) + request.getContextPath() + "/";
는 그런 다음 계획은 http
이며 포트 80
등 때 포트를 생략 바이올린 필요가 없습니다.
7
이것은 URL의 다양한 부분에서 신비한 문자열 조작을 포함하지 않는 가장 쉬운 방법입니다. 그것은 다른 프로토콜 및 포트를 포함하여 모든 경우에 작동하는 것으로 보입니다.
String getAbsoluteApplicationUrl() throws URISyntaxException {
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
HttpServletRequest request = (HttpServletRequest) externalContext.getRequest();
URI uri = new URI(request.getRequestURL().toString());
newUri = new URI(uri.getScheme(), null,
uri.getHost(),
uri.getPort(),
request.getContextPath().toString(),null, null);
return newUri.toString();
}
3
내가 BalusC의 유사 하나있다 : 우리가 "컨텍스트 경로"를 잃어버린하고이 경우
FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest)context.getExternalContext().getRequest();
String requestURL = request.getRequestURL().toString();
String url = requestURL.substring(0, requestURL.lastIndexOf("/"));
관련 문제
- 1. 루트없이 절대 URL을 얻는 방법?
- 2. ASP.NET MVC에서 절대 URL을 얻는 방법?
- 3. 이전 URL을 얻는 방법은 무엇입니까?
- 4. 요청 URL을 얻는 방법은 무엇입니까?
- 5. Xilinx Simulink에서 절대 수를 얻는 방법은 무엇입니까?
- 6. symlink 파일의 절대 경로를 얻는 방법은 무엇입니까?
- 7. 연락처 URI의 절대 경로를 얻는 방법은 무엇입니까?
- 8. 목표 C에서 상대 URL을 절대 URL로 변경하십시오.
- 9. 절대 URL을 긁어 내기
- 10. 외부 정보가없는 상대 URL에서 절대 경로를 얻는 방법은 무엇입니까?
- 11. 브라우저가 현재 방문하고있는 URL을 얻는 방법은 무엇입니까?
- 12. jQuery로 대상 URL을 얻는 방법은 무엇입니까?
- 13. fbjs에서 현재 URL을 얻는 방법은 무엇입니까?
- 14. WCF 서비스에서 클라이언트의 URL을 얻는 방법은 무엇입니까?
- 15. 일반보기의 역 URL을 얻는 방법은 무엇입니까?
- 16. Django에서 이와 같은 URL을 얻는 방법은 무엇입니까?
- 17. 문자열에서 유효한 URL을 얻는 방법은 무엇입니까?
- 18. 반환 된 페이지의 URL을 얻는 방법은 무엇입니까?
- 19. SharePoint에서 현재 URL을 얻는 방법은 무엇입니까?
- 20. java.sql.Connection에서 데이터베이스 URL을 얻는 방법은 무엇입니까?
- 21. AJAX에서 최종 도착 URL을 얻는 방법은 무엇입니까?
- 22. tkFileDialog를 사용하여 파일의 절대 경로를 얻는 방법은 무엇입니까?
- 23. make에서 vpath가 일치 한 후 절대 경로를 얻는 방법은 무엇입니까?
- 24. asp.net Response.Redirect url을 얻는 방법
- 25. 절대 URL 쿠키리스
- 26. Actionscript/Flex에서 상대 URL을 절대 URL로 변환
- 27. WCF 서비스에서 상대 URL을 확인하는 방법은 무엇입니까?
- 28. 웹 프레임을 사용하여 웹 페이지에서 플래시 URL을 얻는 방법은 무엇입니까?
- 29. Remember The Milk API를 사용하여 Java에서 URL을 얻는 방법은 무엇입니까?
- 30. Analytics 데이터 내보내기 API로 웹 사이트 URL을 얻는 방법은 무엇입니까?
을 – yegor256
죄송합니다, 귀하의 질문은 포함되지 않았다. 그냥'+ request.getContextPath()'를 추가하십시오. 나는 대답을 업데이트 할 것이다. – BalusC
여기서'request.getRequestURI(). substring (0)','.substring (0)'은 필수는 아닙니다. 아주 특정한 경우에 필요합니까? – Tiny