(1). metoda forward() Použijte třídu javax.servlet.RequestDispatcher RequestDispatcher rd = getServletContext().getRequestDispatcher("url"); rd.forward(requestVar,requestVar); Předejte vstupní parametry servletu Konkrétně: getServletContext().getRequestDispatcher("url").forward(requestVar,responseVar);
Existují 4 způsoby, jak otočit servlety na straně serveru: 1. getRequestDispatcher() pro ServletContext 2. getNamedDispatcher() for ServletContext 3. getRequestDispatcher() pro ServletRequest 4. Sendredirect() od ServletResponse pro řízení. Metoda vpřed, protože tyto jsou efektivnější. Používejte metodu sendredirect() servletresponse pouze tehdy, když není dostupná metoda přesměrování.
(2).response.sendRedirect(url); Ve skutečnosti pošle prohlížeči speciální hlavičku a prohlížeč se pak přepne na zadanou stránku, takže při použití sendRedirect můžete změnu adresy vidět v adresním řádku prohlížeče. Nová stránka nedokáže zpracovat stránkový kontext (požadavek, odpověď,... staré stránky. Objekt. response.sendRedirect by měl být následován returnem;
(3). Automatický přechod do HTML jazyka <html> <head> <meta http-equiv="refresh" content="0;url="http://www.baidu.com"> 0 je doba čekání, pokud je nastaveno na 5, znamená to, že skok začíná po čekání 5 sekund </head> …………
(4). JavaScript přeskočit A: <script languate="javascript"> window.location.replace("http://www.baidu.com"); </script> B: Můžete také přímo přiřadit hodnotu atributu window.location, window.location="url", což se liší od A tím, že má historii C: <script languate="javascript"> document.location.href("http://www.google.com"); </script> Pro dokument není lokalita objekt, document.location=document.url Metody forward(), back() a go() objektu D:history vyžadují parametr pro vstup shaping <a href="javascript:history.go(-1)" > se vrátit k předchozímu kroku</a> Ekvivalent <a href="javascript:history.back()" > návrat k předchozímu kroku</a> E: document.formName.action="test.jsp"; document.formName.submit(); Metoda commit v JS První typ: <Script Language="javascript" type="text/javascript"> window.location.href="login.jsp?backurl="+window.location.href; </script> Druhý typ: <script language="javascript"> upozornění ("návrat"); window.history.back(-1); </script> Třetí typ: <script language="javascript"> window.navigate("top.jsp"); </script> Čtvrtý typ: <skriptový jazyk="JavaScript"> self.location='top.htm'; </script> Pátý typ: <script language="javascript"> alert("Nelegální přístup!") ); top.location='xx.jsp'; </script>
(5). <jsp:forward page="nextpage.jsp"/> Protože: <jsp:forward page="/servlet/login" /> <jsp:forward page="/servlet/login"> <jsp:param name="username" value="jsmith" /> </jsp:forward> <jsp:forward> tag předává objekt požadavku obsahující uživatelský požadavek z jednoho JSP souboru do druhého. <jsp:forward>tag, nebude vykonán. Můžete použít tag <jsp:param> k přenosu parametrů a hodnot do objektového souboru, který musí být dynamický soubor, který zvládne parametry. Pokud používáte výstup bez bufferu, buďte opatrní při používání <jsp:forward>. Pokud už soubor jsp obsahuje data před použitím <jsp:forward>, pak bude spuštění souboru špatné. Kolekce metod skoku stránek JSP 1. response.sendRedirct("Přeskočit na stránku"); Tato metoda upravuje část HEADER protokolu HTTP tak, aby vydala příkaz k přesměrování prohlížeči, takže prohlížeč zobrazí obsah webové stránky s přesměrováním. Požadavek nemůže přenést hodnotu dál. Spusť veškerý kód na stránce, než na ni skočíš. Přejděte do adresního řádku pro změnu. Můžete přejít na stránku response.sendRedirct(http://www.sun.com) na jiném serveru. 2.response.setHeader(); Tato metoda, podobně jako response.sendRedirect, se provádí úpravou části HEADER protokolu HTTP. < % response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); Struna newLocn="/index.html"; response.setHeader("Location",newLocn); % > 3.<jsp:forward page="jump page"/> Tato metoda využívá mechanismus serveru, který nejprve vydává data do bufferu, před odesláním obsahu bufferu klientovi, originál neodešle, ale místo toho odešle obsah stránky. Pokud je před <jsp:forward> výstup hodně výstupu, předchozí výstup naplnil buffer, automaticky se vypíše klientovi, pak příkaz nefunguje, což je třeba zvlášť sledovat. Požadavek může předávat hodnotu dál. Přejděte přímo na stránku, následující kód se nespouští. Adresní lišta zůstává po skoku beze změny. Nemohu přeskočit na stránku na jiném serveru. Obraz není absolutní cesta, kterou nelze zobrazit. 4. request.getRequestDispatcher ("Přeskočit na stránku"); Požadavek může předávat hodnotu dál. Spusť veškerý kód na stránce, než na ni skočíš. Adresní lišta pro skok zůstává beze změny. Nemůžete přeskočit na stránku na jiném serveru <% RequestDispatcher rd = request.getRequestDispatcher("to.jsp"); rd.forward(request,response); %> Existují 3 způsoby, jak přesměrovat výstup: RESPONSE. SETREDERECT("URL") Tato metoda upravuje část HEADER protokolu HTTP tak, aby prohlížeči vydala příkaz k přesměrování, takže prohlížeč zobrazí obsah přesměrované webové stránky. response.sendRedirect("http://localhost:7001/index.html"); Následující metoda může také změnit vlastnost HTTP HEADER, která funguje stejně jako 1. <%response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); String newLocn="/index.html"; response.setHeader("Location",newLocn); % > < JSP:FORWORD > je přijat Tato metoda využívá mechanismus serveru, který nejprve vydává data do bufferu, před odesláním obsahu bufferu klientovi, originál neodešle, ale místo toho odesílá obsah stránky. Pokud je před <JSP:FORWORD> výstup hodně výstupu, předchozí výstup zaplnil buffer a bude automaticky odeslán klientovi, pak příkaz nebude fungovat, což je třeba zvlášť sledovat. Existují tři způsoby, jak vnořit jinou JSP stránku do jedné JSP stránky: 1. Při <%@ include file="header.jsp"%> tato metoda umožňuje pouze statické načítání stránky a nejčastěji se používá k realizaci načítání obecných záhlaví stránky header.jsp a footer.jsp v projektu. 2. Pojmem <%@ include page="tt.jsp"%> tato metoda umožňuje dynamické načítání stránky, ale musí předávat parametry na stránku; 3. Načíst další stránku jsp na stránku pomocí <iframe src="jsp's path" >, což je inline framework. Pokud použijete forward pro předání parametru, napište to takto: <%String str="Jste přihlášeni!"; %> <jsp:forward page="index.jsp> <jsp:param name="name" value= <%=str%>/> </jsp:forward> |