Próbuję odzyskać główny adres URL aplikacji internetowej z ExternalContext, ale nie mogę zrozumieć, której metody użyć ...Jak uzyskać bezwzględny adres URL aplikacji webapp z ExternalContext?
13
A
Odpowiedz
13
Można uzyskać ExternalContext
z FacesContext
i wyodrębnić request
z kontekstu zewnętrznego następnie
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
Pozwól mi ponownie fraza odpowiedź Jigar trochę:
final ExternalContext ectx = context.getExternalContext();
String url = ectx.getRequestScheme()
+ "://" + ectx.getRequestServerName()
+ ":" + ectx.getRequestServerPort()
+ "/" + ectx.getRequestContextPath();
16
bardziej zwięzły sposób to:
HttpServletRequest request = (HttpServletRequest) externalContext.getRequest();
String url = request.getRequestURL().toString();
String baseURL = url.substring(0, url.length() - request.getRequestURI().length()) + request.getContextPath() + "/";
Wtedy nie trzeba się bawić z pominięciem portów gdy system jest http
i port jest 80
i tak dalej.
7
To jest najprostszy sposób, jaki odkryłem, że nie obejmuje on tajemniczej manipulacji ciągiem na różnych częściach adresu URL. Wydaje się, że działa we wszystkich przypadkach, w tym w różnych protokołach i portach.
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
mam jeden podobny do BalusC to:
FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest)context.getExternalContext().getRequest();
String requestURL = request.getRequestURL().toString();
String url = requestURL.substring(0, requestURL.lastIndexOf("/"));
Powiązane problemy
- 1. Django Uzyskaj bezwzględny adres URL
- 2. Adres bezwzględny w jsp
- 3. Bezwzględny adres URL w pakiecie ASP
- 4. Jak uzyskać bieżący adres URL aplikacji Appengine?
- 5. Bezwzględny adres URL z link_to ... Ruby on Rails
- 6. Generowanie bezwzględny adres URL do działania od wewnątrz kontrolera Api
- 7. Ustal, czy adres URL jest bezwzględny lub względny od vb
- 8. Jak uzyskać pełny adres url
- 9. Jak uzyskać aktualny adres URL
- 10. Jak uzyskać adres URL żądania?
- 11. Jak uzyskać adres URL z UIImage
- 12. C# Pobierz adres URL aplikacji
- 13. Jak wygenerować adres URL zasobu z usługi?
- 14. Jak uzyskać podstawowy adres URL aplikacji MVC przy użyciu javascript
- 15. Budowanie bezwzględny URL z względnego adresu URL w Javie
- 16. Zend Framework: uzyskać drogę publiczną, uzyskać adres URL aplikacji
- 17. Jak uzyskać adres URL żądania przy uruchamianiu aplikacji
- 18. Jak uzyskać długi adres URL z krótkiego adresu URL?
- 19. Jak uzyskać adres URL żądania w Spring Boot RestController
- 20. Uzyskaj bezwzględny adres URL w Django podczas korzystania z widoków opartych na klasach
- 21. pobierz adres URL aplikacji z bieżącego żądania
- 22. Jak uzyskać pełny adres URL strony Drupal?
- 23. Jak uzyskać adres URL w http.Request
- 24. Jak uzyskać adres URL odpowiedzi w XMLHttpRequest?
- 25. Jak uzyskać docelowy adres URL zdarzenia onbeforeunload?
- 26. Jak uzyskać adres URL zdalnego repozytorium svn?
- 27. Jak uzyskać adres URL bazy w OctoberCMS?
- 28. Jak uzyskać adres URL pliku .nupkg?
- 29. Jak uzyskać adres URL strony głównej?
- 30. Jak uzyskać adres URL nadrzędny w Javie?
W tym przypadku mamy do Zgubienie „ścieżki kontekstu” – yegor256
Twoje pytanie nie obejmują go. Po prostu dodaj '+ request.getContextPath()'. Zaktualizuję odpowiedź. – BalusC
Myślę, że tutaj 'request.getRequestURI(). Substring (0)', '.substring (0)' nie jest obowiązkowe. Czy jest to wymagane w niektórych bardzo szczególnych przypadkach? – Tiny