Я работаю с JAX-RS на Java. Мне нужно получить от UriInfo относительный путь URI, то есть URI без частей схемы и полномочий, но с параметрами пути и запроса. Каков наилучший способ сделать это?Как получить относительный путь от UriInfo
ответ
String sourceUrl = "http://www.example.com/mysite/whatever/somefolder/bar/unsecure!+?#whätyöühäv€it/site.html"; // your current site
String targetUrl = "http://www.example.com/mysite/whatever/otherfolder/other.html"; // the link target
String expectedTarget = "../../../otherfolder/other.html";
String[] sourceElements = sourceUrl.split("/");
String[] targetElements = targetUrl.split("/"); // keep in mind that the arrays are of different length!
StringBuilder uniquePart = new StringBuilder();
StringBuilder relativePart = new StringBuilder();
boolean stillSame = true;
for(int ii = 0; ii < sourceElements.length || ii < targetElements.length; ii++) {
if(ii < targetElements.length && ii < sourceElements.length &&
stillSame && sourceElements[ii].equals(targetElements[ii]) && stillSame) continue;
stillSame = false;
if(targetElements.length > ii)
uniquePart.append("/").append(targetElements[ii]);
if(sourceElements.length > ii +1)
relativePart.append("../");
}
String result = relativePart.toString().substring(0, relativePart.length() -1) + uniquePart.toString();
System.out.println("result: " + result);
По https://jsr311.java.net/nonav/javadoc/javax/ws/rs/core/UriInfo.html если вы звоните
getPath()
Вы «Получить путь текущего запроса относительно основания URI в виде строки.»
Спасибо, но это решение не даст мне запрос Params – abr
Не знаю, что сервер приложений вы используете, вы можете попытаться придать это: @ Контекст private HttpServletRequest servletRequest; а затем использовать servletRequest для получения данных –
проверить это:
String uri = "http://google.com/path?q1=va";
int index = -1;
if ((index = uri.indexOf("://")) > 0) {
uri = uri.substring(index + 3);
}
index = uri.indexOf('/');
uri = uri.substring(index);
System.out.println(uri);
или как это:
URI uri = new URI("http://google.com/path?q1=va");
System.out.println(uri.getPath()+"?"+uri.getQuery());
Спасибо, я думаю, что лучшим решением пока является ваш второй ответ ... – abr
мне нужна точно такая же вещь хотя и несколько лет спустя. Тем не менее вот как.
URI requestURI = this.uriInfo.getRequestUri();
URI baseUri = this.uriInfo.getBaseUri();
URI uri = baseUri.relativize(requestURI);
- 1. Как получить относительный путь
- 2. Получить относительный путь от $(). Css ("background-image")
- 3. Gradle получить относительный путь
- 4. Wix - Как получить относительный путь
- 5. Попытка получить относительный путь
- 6. Получить относительный путь RegistryKey
- 7. Получение относительный путь от папки
- 8. Java относительный путь от jar
- 9. Транспортир: относительный путь от элемента
- 10. Как получить относительный путь от маршрутизатора Symfony в
- 11. Получить относительный путь в Javascript
- 12. Относительный путь
- 13. Как получить относительный путь с помощью Ant
- 14. Как получить относительный путь в XPath?
- 15. Как получить относительный путь в Java
- 16. Как получить относительный путь в файле web.config
- 17. Как получить относительный путь содержимого ASP.NET
- 18. Как получить относительный путь в c
- 19. Как получить относительный путь к файлу изображения
- 20. Как я могу получить относительный путь?
- 21. Как получить относительный путь из текущей папки?
- 22. как получить URL, используя относительный путь
- 23. Как получить относительный путь в ASP.NET MVC
- 24. Как использовать относительный путь?
- 25. Получить относительный путь в черепичной карте
- 26. Получить относительный путь пути к файлу?
- 27. Получить Абсолютный URL-адрес От Относительный путь (refactored method)
- 28. Hadoop получить относительный путь от абсолютного пути и базового пути
- 29. Относительный путь от colorPicker до кнопки меню
- 30. Получить относительный путь двух URI, в Java
Пожалуйста, отметьте его как ответ, если это поможет вам ... –