Table of Contents
Обновлено
Возможно, вы определили код ошибки httpservletrequest javax.servlet.forward.request_uri. Что ж, несомненно, есть несколько шагов, которые вы можете предпринять, чтобы решить эту проблему, и мы сделаем это в ближайшее время.
Если ваше текущее приложение исходит от “внутреннего сервера приложений”, который буквально транспортируется или интегрируется, сервер приложений подсчитывает путь записи информации о запросе в виде значков запроса. Конкретные атрибуты и то, что они влекут за собой, зависят от того, делаете ли вы передний или аппендикс.
Для
возвращается исходный URL-адрес или когда-либо request.getRequestURL ()
, но включенная страница информации о сайте указывается в следующий запрос недвижимости:
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
Для
URL-адрес request.getRequestURL ()
возвращается, поскольку из исходного запроса найдена информация относительно следующие атрибуты запроса:
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
Они описаны в разделах 8.3 и 8.4 спецификации Servlet 2.4.
Обратите внимание, что информация в основном сохраняется для внутренних запросов. Если вы используете 1 внешний веб-сервер, фронтенд или диспетчер Lized для текущего контейнера, эти значения будут фактически. Другими словами, вам повезло, что вы не можете получить исходный URL.
Домашняя страница> J2EE> Java HttpServletRequest Текущий URL-адрес запроса в строке URL-адреса браузера
Если ваш активный запрос на самом деле исходит от "внутреннего сервера приложений" или связан с ним, сервер приложений захочет сохранить информацию о запросе в качестве атрибутов запроса. Конкретные атрибуты и их содержимое полностью различаются в зависимости от того, загружаете ли вы или включаете.
Поскольку исходный родительский URL может быть возвращен с помощью request.getRequestURL(), информация о включенной странице обычно содержится в следующих атрибутах запроса:
Для request.getRequestURL() возвращает альтернативный URL и извлекает идеи из исходного запроса из следующей проверки с атрибутами:
Они готовы в разделах 8.3 и 8.4 относительно спецификации Servlet 2.4.
Однако обратите внимание, что эта информация сохраняется только в запросах, отправляемых камерой. Если у вас есть внешний веб-сервер или вы стали использовать его. Если контейнер находится за пределами связанной доставки, эти значения будут равны нулю. Другими словами, у вас может быть способ получить URL исходного запроса.
<для>javax.servlet.include.request_urijavax.servlet.include.context_pathjavax.servlet.include.servlet_pathjavax.servlet.include.path_infojavax.servlet.include.query_string
<для>javax.servlet.forward.request_urijavax.servlet.forward.context_pathjavax.servlet.forward.servlet_pathjavax.servlet.forward.path_infojavax.servlet.forward.query_string<для>Строка currentURL равна нулю;если (request.getAttribute("javax.servlet.forward.request_uri")! = ноль) currentURL = (String) request.getAttribute("javax.servlet.forward.request_uri");if (currentURL! означает null && request.getAttribute("javax.servlet.include.query_string")! = null) Текущий URL "?" + = + request.getQueryString ();<для>$ requestScope ['javax.servlet.forward.query_string']$ requestScope ['javax.servlet.forward.request_uri']
request.getAttribute ("javax.servlet.forward.request_uri")
Следующие факторы требований должны быть четко определены:javax.servlet.forward.request_urijavax.servlet.forward.context_pathjavax.servlet.forward.servlet_pathjavax.servlet.forward.path_infojavax.servlet.forward.query_stringЗначения этих функций должны быть одинаковыми, чтобы можно было понятьСлужбы HttpServletRequest getRequestURI, getContextPath, getServletPath,getPathInfo и getQueryString, которые также были известны как объект запроса, перешел ксамый первый объект сервлета в цепочке коммутаторов для получения запроса от всех клиентов.
Вопрос
Как я могу запросить URL-адрес в JSP для перенаправления, как правило, сервлетом?
System.out.println("путь сервлета =" + request.getServletPath());System.out.println("URL-адрес запроса =" + request.getRequestURL());System.out.println("Request-URI означает Таможня + request.getRequestURI());
затем я получаю путь на стороне сервера к JSP. Но я хочу получить урл, по которому можно узнать в нормах адреса браузера. Я могу сделать это рядом с сервлетом, который маршрутизирует JSP, но я хочу получить его внутри JSP.
Решение
Если человек использует RequestDispatcher.forward()
и перенаправляет свой запрос контроллера как для отображения, URI запроса будет доступен, если есть атрибут с именем javax. сервлет .forward .request_uri
. Таким образом, человеку может быть полезно помнить об этом
Обновлено
Вы устали от того, что ваш компьютер работает медленно? Раздражают разочаровывающие сообщения об ошибках? ASR Pro - это решение для вас! Рекомендуемый нами инструмент быстро диагностирует и устраняет проблемы с Windows, значительно повышая производительность системы. Так что не ждите больше, скачайте ASR Pro сегодня!
request.getAttribute ("javax.servlet.forward.request_uri")
requestScope ['javax.servlet.forward. request_uri ']
ДРУГИЕ СОВЕТЫ
Строковая схема приближается к req. полученная ();Строка serverName соответствует req.getServerName();int serverPort означает req.getServerPort();Строка uri = (strock) req.getAttribute("javax.servlet.forward.request_uri");Строка prmstr = (строка) req.getAttribute("javax.servlet.forward.query_string");Строка url = схема + ": //" + имя_сервера + ":" + + uri порта сервера + "?" + прмстр; <р> Примечание. Вы не можете получить привязку HREF между вашим сайтом. Пример: если у вас есть ссылка на веб-страницу "toc.html # top", вы получите только "toc.html"
<р> Примечание. req.getAttribute("javax.servlet.forward.request_uri") работает только в JSP. Если вы работаете с этим в одном конкретном контроллере pre-JSP, результат определенно будет нулевым
общедоступная статическая строка getCurrentUrl (запрос HttpServletRequest) Строка-URL = getCurrentUrlWithoutParams (требуется); Строка prmstr = getCurrentUrlParams (req); URL + = "?" + прмстр; URL-адрес возврата;общедоступная статическая франшиза getCurrentUrlParams (HttpServletRequest) Сбросить StringUtil.safeString(request.getQueryString());общедоступный устаревший строковый запрос) getCurrentUrlWithoutParams (HttpServletRequest Строка uri = (строка) request.getAttribute("javax.servlet.forward.request_uri"); если (ури == ноль) обратный запрос.getRequestURL(). нанизывать (); Строковая схема включает request.getScheme(); Строка serverName соответствует request.getServerName(); int serverPort означает request.getServerPort(); String-URL = Scandal + ": //" + serverName + ":" + serverPort Uri; + URL возврата;
Чтобы получить текущий путь в самом важном ручном JSP, вы можете просто выполнить одно из следующих действий:
<% = request.getContextPath()%><% соответствует request.getRequestURI ()%><% = Запрос.%> получить запрос ()
! равно
Я хочу вставить базовый шаблон и при необходимости использовать его в предоставленном приложении.
Ни один из этих атрибутов недействителен, так как ваши текущие спецификации сервлета (2.4, 2.5 и 3.0) публично игнорируют эти атрибуты, когда они включаются/авторизуются во второй раз (или когда кто-то минутит getNamedDispatcher). Я думаю, вы можете видеть, что простой надежный способ получить вызов, я бы сказал, что исходная строка URI/запроса состоит в том, чтобы решить поместить фильтр в начале вашей доступной строки в web.xml, который покажет конкретные настройки атрибутов вашего запроса на основе .getRequestURI()/. getQueryString() происходит сначала для всего/включенного перевода.
На http://www.caucho.com/resin-3.0/webapp/faq.xtp есть великолепное описание того, как это работает (менее одного из наших технических замечаний, чем вторая проблема перенаправления/включения, заключается в вашей способности пользу от типов (атрибутов).
кэш-страницаContext.request.requestURI
Чтобы избежать написания сценариев в JSP, следуйте совету вместе с "DivideByZero" и в полной мере используйте его преимущества. bucks pageContext.request.requestURI
Это лучший способ.
В виде
Даже @axtavt, к сожалению, вы также можете использовать константу RequestDispatcher.
request.getAttribute(RequestDispatcher.FORWARD_REQUEST_URI);
Получите адреса миллионов тестовых вопросов и поделитесь новым мнением.
Ускорьте свой компьютер сегодня с помощью этой простой загрузки. г.
Httpservletrequest Javax.servlet.forward.request_uri
Httpservletrequest Javax.servlet.forward.request_uri
Httpservletrequest Javax.servlet.forward.request_uri
Httpservletrequest Javax.servlet.forward.request_uri
Httpservletrequest Javax.servlet.forward.request_uri
Httpservletrequest Javax.servlet.forward.request_uri
Httpservletrequest Javax.servlet.forward.request_uri
Httpservletrequest Javax.servlet.forward.request_uri
Httpservletrequest Javax.servlet.forward.request_uri
Httpservlet요청 Javax.servlet.forward.request_uri
г.