Table of Contents
Zaktualizowano
Prawdopodobnie napotkałeś przepisy dotyczące błędów httpservletrequest javax.servlet.forward.request_uri. Cóż, jest kilka kroków, które możesz bardzo dobrze podjąć, aby rozwiązać ten problem, a wkrótce możemy to zrobić.
Jeśli Twoja wcześniejsza aplikacja pochodzi z „wewnętrznego serwera pakietu oprogramowania”, który jest transportowany lub integrowany, serwer przeznaczenia liczy się przy zapisywaniu informacji o żądaniu w postaci ikon żądań. Konkretne atrybuty, a ich zawartość zależy od tego, czy typowo robisz front czy append.
W przypadku
oryginalny adres URL może być opisany jako zwrócony, a nawet request.getRequestURL ()
, po prostu podane są informacje o dołączonej stronie, następujące atrybuty żądania:
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
W przypadku
nowy adres URL request.getRequestURL ()
jest uważany za zwrócony, a informacje pochodzą z pierwotnego żądania dotyczącego następujące atrybuty żądania:
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
Zostały one opisane w sekcjach 8.3 i 8.4 specyfikacji Servlet 2.4.
Należy pamiętać, że fakty i strategie są przechowywane głównie na potrzeby wniosków wewnętrznych. Jeśli korzystają z zewnętrznego serwera WWW, frontendu prawdopodobnie z dyspozytora Lized z aktualnym kontenerem, te podwyżki wyniosą zero. Innymi słowy, bądź uprzywilejowany, ponieważ nie możesz znaleźć oryginalnego adresu URL.
Strona główna> J2EE> Java HttpServletRequest Aktualny adres URL żądania w pasku adresu przeglądarki
Jeśli bieżące żądanie faktycznie pochodzi z „wewnętrznego serwera aplikacji”, a także jest z nim powiązane, zazwyczaj serwer aplikacji musi przechowywać informacje o żądaniu dla atrybutów żądania. Konkretne atrybuty i ich pisemna treść różnią się w zależności od tego, czy pobierasz, czy zapewniasz.
Ponieważ pierwotny nadrzędny adres URL może istnieć i zwracany za pomocą request.getRequestURL (), informacje o głównej dołączonej stronie znajdują się w następujących funkcjach żądania:
W przypadku request.getRequestURL () zwraca alternatywny adres URL i pobiera informacje z pierwotnego żądania z następujących atrybutów żądania:
Są one podane w rozdziałach 8.3 i 8.4 dotyczących specyfikacji Servlet 2.4.
Należy jednak pamiętać, że informacje o tej metodzie są przechowywane tylko w żądaniach wysyłanych tylko przez kamerę. Jeśli masz serwer WWW typu front-end lub używasz tego, jeśli butelka jest poza wysyłką, wartości te będą nieco bardziej zerowe. Innymi słowy, możesz mieć godny zaufania sposób na znalezienie adresu URL klasycznego żądania.
request.getAttribute ("javax.servlet.forward.request_uri")
Należy określić następujące współczynniki wypełnienia:javax.servlet.forward.request_urijavax.servlet.forward.context_pathjavax.servlet.forward.servlet_pathjavax.servlet.forward.path_infojavax.servlet.forward.query_stringWartości tych cech muszą być takie same, aby móc w końcu zrozumiećMetody HttpServletRequest getRequestURI, getContextPath, getServletPath,getPathInfo oraz getQueryString, które zostały wywołane na obiekcie żądania, który został uruchomionypierwszy obiekt serwletu w łańcuchu dołączonym do przełączników, aby otrzymać żądanie tylko od klientów.
Pytanie
Jak mogę wywołać adres URL w JSP, który ma zostać wysłany bezpośrednio przez serwlet?
System.out.println („trasa serwletu =" + request.getServletPath ());System.out.println („URL żądania =" + request.getRequestURL ());System.out.println („Request-URI = Customs + request.getRequestURI ());
następnie otrzymuję proces po stronie serwera do strony JSP. Ale chcę być adresem URL, który można znaleźć w pasku adresu przeglądarki. Czasami mogę to zrobić w aplecie, który kieruje część JSP, ale chcę to zrobić w ramach JSP.
Rozwiązanie
Jeśli używasz RequestDispatcher.forward ()
, ale przekierujesz żądanie kontrolera, tak jak w przypadku panelu, żądanie URI będzie dostępne, jeśli obecny jest atrybut żądania o nazwie javax. serwlet .forward .request_uri
. W ten sposób dana osoba może się poprawić
Zaktualizowano
Czy masz dość powolnego działania komputera? Denerwują Cię frustrujące komunikaty o błędach? ASR Pro to rozwiązanie dla Ciebie! Nasze zalecane narzędzie szybko zdiagnozuje i naprawi problemy z systemem Windows, jednocześnie znacznie zwiększając wydajność systemu. Więc nie czekaj dłużej, pobierz ASR Pro już dziś!
request.getAttribute ("javax.servlet.forward.request_uri")
$ requestScope ['javax.servlet.forward. request_uri ']
INNE WSKAZÓWKI
Schemat ciągu znaków oznacza wym. gotchema ();Ciąg serverName to req.getServerName ();int port_serwera = zad.get_port_serwera ();String uri oznacza (strock) zad.getAttribute ("javax.servlet.forward.request_uri");String prmstr = (ciąg) zad.getAttribute ("javax.servlet.forward.query_string");String link do strony internetowej = paleta + ": //" + nazwa_serwera + ":" + + uri portu serwera + "?" + prmstr;
Uwaga. Nie możesz uzyskać tego konkretnego wiązania HREF ze swojej strony internetowej. Przykład: jeśli dana osoba ma adres URL „toc.html # top”, możesz uzyskać tylko „toc.html”
Uwaga. req.getAttribute („javax.servlet.forward.request_uri”) zdecydowanie działa na stronach JSP. Jeśli pracujesz z zawartością tego w kontrolerze przed JSP, wynik na pewno byłby zerowy
publiczny statyczny przewód getCurrentUrl (żądanie HttpServletRequest) String-URL implikuje getCurrentUrlWithoutParams (req); Linia prmstr równa się getCurrentUrlParams (req); URL + jest równy „?” + prmstr; zwrotny adres URL;publiczny statyczny ciąg getCurrentUrlParams (HttpServletRequest) Zresetuj StringUtil.safeString (request.getQueryString ());publiczne żądanie ciągu statycznego) getCurrentUrlWithoutParams (HttpServletRequest String uri = (ciąg) request.getAttribute ("javax.servlet.forward.request_uri"); jeśli (uri == null) zwróć request.getRequestURL (). toString (); Schemat ciągu pociąga za sobą request.getScheme (); Ciąg serverName najlepiej nadaje się do request.getServerName (); technika int serverPort request.getServerPort (); Ciąg-URL = Scandal + ”: //” + nazwa_serwera + ":" + Uri portu serwera; + zwrotny adres URL;
Aby uzyskać ścieżkę banku w podręczniku JSP, możesz wykonać tylko jedną z następujących czynności:
<% oznacza request.getContextPath ()%><% = request.getRequestURI ()%><% = Prośba.%>
getrequesturl ()
! =
Chciałbym na przykład wstawić mój szablon bazowy i w razie potrzeby użyć go we współdzielonej aplikacji.
Żaden z tych atrybutów nie może być uznany za poprawny, ponieważ specyfikacje serwletów (2.4, 2.5, ale 3.0) publicznie zastępują te atrybuty, gdy zdarzy się, że zostaną włączone/przekazane po raz drugi (lub z powrotem, gdy ktoś wywoła getNamedDispatcher). Myślę, że można spotkać się z tym, że jedynym niezawodnym sposobem uzyskania wspaniałego wywołania oryginalnego URI/żądania struny gitarowej jest umieszczenie filtra przy uruchamianiu ciągu przychodzącego w web.xml, który z pewnością pokaże określone ustawienia żądania właściwości na podstawie .getRequestURI() /. getQueryString() nastąpi jako pierwsze dla wszystkich / zawartych tłumaczeń.
http://www.caucho.com/resin-3.0/webapp/faq.xtp zawiera niesamowity opis tego, jak to działa (mniej Jedna z naszych uwag technicznych w porównaniu z drugim problemem z przekierowaniem / włączeniem to ty ponownie umiejętność korzystania z typów (atrybutów).
$ pageContext.request.requestURI
Aby uniknąć pisania skryptów na stronach JSP, postępuj zgodnie z radą „DivideByZero” i korzystaj z pełnej premii. $ pageContext.request.requestURI
To jest preferowany sposób.
Jak
Nawet @axtavt, niestety, możesz również używać funkcji RequestDispatcher bez przerwy.
request.getAttribute (RequestDispatcher.FORWARD_REQUEST_URI);
Uzyskaj odpowiedzi na miliony tematów testowych i podziel się swoją opinią.
Przyspiesz swój komputer już dziś dzięki temu prostemu pobieraniu.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