|
|
Opublikowano 03.01.2015 21:28:01
|
|
|

(1). metoda forward() Użyj klasy javax.servlet.RequestDispatcher RequestDispatcher rd = getServletContext().getRequestDispatcher("url"); rd.forward(requestVar,requestVar); Przekaż parametry wejściowe serletu Mianowicie: getServletContext().getRequestDispatcher("url").forward(requestVar,responseVar);
Istnieją 4 sposoby na przemianę servletów po stronie serwera: 1. getRequestDispatcher() dla ServletContext 2. getNamedDispatcher() for ServletContext 3. getRequestDispatcher() dla ServletRequest 4. Sendredirect() ServletResponse do sterowania. Metoda do przodu, ponieważ są one bardziej wydajne. Używaj metody sendredirect() w serwletodpowiedzi tylko wtedy, gdy metoda przekierowania nie jest dostępna.
(2).response.sendRedirect(url); W rzeczywistości wysyła specjalny nagłówek do przeglądarki, a następnie przeglądarka przełącza się na wskazaną stronę, więc podczas korzystania ze sendRedirect można zobaczyć zmianę adresu w pasku adresowym przeglądarki. Nowa strona nie obsługuje kontekstu strony (żądanie, odpowiedź,... starej strony. Cel. response.sendRedirect powinien być poprzedzony zwrotem;
(3). Automatyczne przejście do języka HTML <html> <head> <meta http-equiv="refresh" content="0;url="http://www.baidu.com"> 0 to czas oczekiwania, jeśli ustawiony na 5, oznacza to, że skok zaczyna się po odczekaniu 5 sekund </head> …………
(4). Skok do JavaScript A: <script languate="javascript"> window.location.replace("http://www.baidu.com"); </script> B: Możesz też bezpośrednio przypisać wartość atrybutowi window.location, window.location="url", który różni się od A tym, że ma historię C: <script languate="javascript"> document.location.href("http://www.google.com"); </script> Dla dokumentu lokalizacja nie jest obiektem, document.location=document.url Metody forward(), back() i go() obiektu D:history wymagają parametru wejścia shaping <a href="javascript:history.go(-1)" > wrócić do poprzedniego kroku</a> Równoważne <a href="javascript:history.back()" > powrót do poprzedniego kroku</a> E: document.formName.action="test.jsp"; document.formName.submit(); Metoda commit w JS Pierwszy typ: <Script Language="javascript" type="text/javascript"> window.location.href="login.jsp?backurl="+window.location.href; </script> Drugi typ: <Script Language="JavaScript"> alert("return"); window.history.back(-1); </script> Trzeci typ: <Script Language="JavaScript"> window.navigate("top.jsp"); </script> Czwarty typ: <język skryptowy="JavaScript"> self.location='top.htm'; </script> Piąty typ: <Script Language="JavaScript"> alert("Nielegalny dostęp!") ); top.location='xx.jsp'; </script>
(5). <jsp:forward page="nextpage.jsp"/> Gdy: <jsp:forward page="/servlet/login" /> <jsp:forward page="/servlet/login"> <jsp:param name="username" value="jsmith" /> </jsp:forward> <jsp:forward> tag przekazuje obiekt żądania zawierający żądanie użytkownika z jednego pliku JSP do innego. <jsp:forward>tag, nie zostanie wykonany. Możesz użyć tagu <jsp:param> do przeniesienia parametrów i wartości do pliku obiektowego, który musi być plikiem dynamicznym obsługującym parametry. Jeśli używasz wyjścia bez buforowania, uważaj przy używaniu <jsp:forward>. Jeśli plik jsp już zawiera dane zanim użyjesz <jsp:forward>, to wykonanie pliku będzie błędne. Kolekcja metod przeskoków stron JSP 1. response.sendRedirct("Przejdź do strony"); Ta metoda modyfikuje część HEADER protokołu HTTP, aby wydać polecenie przekierowania do przeglądarki, tak aby przeglądarka wyświetlała zawartość strony przekierowania. Żądanie nie może przepuścić wartości dalej. Wykonaj cały kod na stronie, zanim przejdziesz do niej. Przejdź do paska adresu, aby zmienić. Możesz przejść na stronę response.sendRedirct(http://www.sun.com) na innym serwerze. 2.response.setHeader(); Ta metoda, podobnie jak response.sendRedirect, polega na modyfikacji części HEADER protokołu HTTP. <% response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); Struna newLocn="/index.html"; response.setHeader("Location",newLocn); % > 3.<jsp:forward page="jump page"/> Ta metoda wykorzystuje mechanizm serwera, który najpierw wysyła dane do bufora, zanim wyśle zawartość bufora klientowi, oryginał nie wysyła, lecz wysyła zawartość strony. Jeśli jest dużo wyjścia przed <jsp:forward>, poprzednie wyjście wypełniło bufor, zostanie automatycznie wysłane do klienta, wtedy instrukcja nie działa, co należy zwrócić szczególną uwagę. Żądanie może przekazać wartość dalej. Przejdź bezpośrednio na stronę, następujący kod nie jest wykonywany. Pasek adresowy pozostaje niezmieniony po przeskoczeniu. Nie mogę przeskoczyć na stronę na innym serwerze. Obraz nie jest absolutną ścieżką, której nie można wyświetlić. 4. request.getRequestDispatcher ("Przejdź do strony"); Żądanie może przekazać wartość dalej. Wykonaj cały kod na stronie, zanim przejdziesz do niej. Pasek adresowy skoku pozostaje bez zmian. Nie można przejść do strony na innym serwerze <% RequestDispatcher rd = request.getRequestDispatcher("to.jsp"); rd.forward(request,response); %> Istnieją 3 sposoby przekierowania wyjścia: RESPONSE. SETREDERECT("URL") Ta metoda modyfikuje część HEADER protokołu HTTP, aby wydać polecenie przekierowania do przeglądarki, tak aby przeglądarka wyświetlała treść przekierowanej strony internetowej. response.sendRedirect("http://localhost:7001/index.html"); Poniższa metoda może również zmienić właściwość HTTP HEADER, która działa tak samo jak 1. <%response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); String newLocn="/index.html"; response.setHeader("Location",newLocn); % > < JSP:FORWORD > zostaje przyjęte Ta metoda wykorzystuje mechanizm serwera, który najpierw przesyła dane do bufora, a przed wysłaniem zawartości bufora do klienta, oryginał nie wysyła, lecz wysyła zawartość strony; jeśli przed <JSP:FORWORD> jest dużo wyjścia, poprzednie wyjście wypełniło bufor i zostanie automatycznie wysłane do klienta, wtedy instrukcja nie działa, na co należy zwrócić szczególną uwagę. Istnieją trzy sposoby zagnieżdżenia innej strony JSP w obrębie jednej strony JSP: 1. Przy <%@ include file="header.jsp"%> ta metoda pozwala jedynie na statyczne ładowanie strony i jest najczęściej stosowana do ładowania ogólnych nagłówków strony header.jsp i footer.jsp w projekcie. 2. Przez <%@ include page="tt.jsp"%> ta metoda może umożliwić dynamiczne ładowanie strony, ale musi przekazywać parametry stronie; 3. Załadowanie kolejnej strony jsp na stronę przez <iframe src="jsp's path" >, czyli ramę inline. Jeśli używasz forward, aby przekazać parametr, zapisz go tak: <%String str="Jesteś zalogowany!"; %> <jsp:forward page="index.jsp> <jsp:param name="name" value= <%=str%>/> </jsp:forward> |
Poprzedni:JSP niszczy sesję, unieważniając logowanie użytkownikaNastępny:Użycie tagu jstl <c:if>
|