|
|
Geplaatst op 03-01-2015 21:28:01
|
|
|

(1). voorwaarts()-methode Gebruik de javax.servlet.RequestDispatcher-klasse RequestDispatcher rd = getServletContext().getRequestDispatcher("url"); rd.forward(requestVar,requestVar); Geef de invoerparameters van de servlet door Namelijk: getServletContext().getRequestDispatcher("url").forward(requestVar,responseVar);
Er zijn 4 manieren om server-side servlets te draaien: 1. getRequestDispatcher() voor ServletContext 2. getNamedDispatcher() voor ServletContext 3. getRequestDispatcher() voor ServletRequest 4. ServletResponse's sendredirect() om te sturen. Voorop-methode, omdat deze efficiënter zijn. Gebruik alleen de sendredirect()-methode van servletresponse wanneer de forward-methode niet beschikbaar is.
(2).response.sendRedirect(url); Sterker nog, het stuurt een speciale header naar de browser, waarna de browser naar de opgegeven pagina gaat, zodat je bij het gebruik van sendRedirect de adreswijziging in de adresbalk van de browser kunt zien. De nieuwe pagina kan de paginacontext (verzoek, antwoord,... van de oude pagina niet verwerken. Object. response.sendRedirect moet gevolgd worden door een return;
(3). Automatische sprong naar HTML-taal <html> <head> <meta http-equiv="refresh" content="0;url="http://www.baidu.com"> 0 is de wachttijd, als deze op 5 staat, betekent dit dat de sprong begint na het wachten op 5 seconden </head> …………
(4). JavaScript-sprong A: <script languate="javascript"> window.location.replace("http://www.baidu.com"); </script> B: Je kunt ook direct een waarde toewijzen aan het window.location-attribuut, window.location="url", wat verschilt van A doordat het een geschiedenis heeft C: <script languate="javascript"> document.location.href("http://www.google.com"); </script> Voor document is locatie geen object, document.location=document.url De forward(), back() en go() methoden van het D:history-object vereisen een shaping entry-parameter <a href="javascript:history.go(-1)" > terug naar de vorige stap</a> Equivalent aan <a href="javascript:history.back()" > keer terug naar de vorige stap</a> E: document.formName.action="test.jsp"; document.formName.submit(); JS-commitmethode Het eerste type: <scripttaal="javascript" type="text/javascript"> window.location.href="login.jsp?backurl="+window.location.href; </script> Het tweede type: <scripttaal="javascript"> alert("return"); window.history.back(-1); </script> Het derde type: <scripttaal="javascript"> window.navigate("top.jsp"); </script> Het vierde type: <scripttaal="JavaScript"> self.location='top.htm'; </script> Het vijfde type: <scripttaal="javascript"> alert("Illegale toegang!") ); top.location='xx.jsp'; </script>
(5). <jsp:forward page="nextpage.jsp"/> Als: <jsp:pagina doorgestuurd="/servlet/login" /> <jsp:forward page="/servlet/login"> <jsp:param name="gebruikersnaam" waarde="jsmith" /> </jsp:vooruit> <jsp:forward> tag geeft een verzoekobject met een gebruikersverzoek door van het ene JSP-bestand naar het andere. <jsp:forward>tag, wordt niet uitgevoerd. Je kunt de tag <jsp:param> gebruiken om parameters en waarden over te zetten naar het objectbestand, dat een dynamisch bestand moet zijn dat parameters kan verwerken. Als je ongebuffte output gebruikt, wees dan voorzichtig met <jsp:forward>. Als het jsp-bestand al data bevat voordat je <jsp:forward> gebruikt, dan zal de bestandsuitvoering verkeerd zijn. JSP pagina sprongmethodencollectie 1. response.sendRedirct("Spring naar pagina"); Deze methode wijzigt het HEADER-gedeelte van het HTTP-protocol om een redirect-commando aan de browser te geven, zodat de browser de inhoud van de redirect-webpagina weergeeft. Verzoek kan de waarde niet voorbij geven. Voer alle code op de pagina uit voordat je naar de pagina springt. Spring naar de adresbalk om te veranderen. Je kunt naar de pagina response.sendRedirct(http://www.sun.com) op een andere server springen. 2.response.setHeader(); Deze methode, net als response.sendRedirect, wordt uitgevoerd door het HEADER-gedeelte van het HTTP-protocol aan te passen. <% response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); Snaar newLocn="/index.html"; response.setHeader ("Locatie",newLocn); % > 3.<jsp:vooruit pagina="pagina springen"/> Deze methode gebruikt het mechanisme van de server om eerst data naar de buffer te leveren; voordat de inhoud van de buffer naar de client wordt gestuurd, stuurt het origineel niet, maar stuurt het de inhoud van de pagina. Als er veel output is vóór <jsp:forward>, de vorige output de buffer vol heeft gemaakt, wordt deze automatisch naar de client gestuurd, dan werkt de instructie niet; hier moet speciale aandacht aan worden besteed. Verzoek kan de waarde voorbij geven. Spring direct naar de pagina, de volgende code wordt niet uitgevoerd. De adresbalk blijft ongewijzigd na het springen. Kan niet naar een pagina op een andere server springen. De afbeelding is geen absoluut pad dat niet getoond kan worden. 4. request.getRequestDispatcher("Spring naar pagina"); Verzoek kan de waarde voorbij geven. Voer alle code op de pagina uit voordat je naar de pagina springt. De jump address bar blijft ongewijzigd. Je kunt niet naar een pagina op een andere server springen <% RequestDispatcher rd = request.getRequestDispatcher("to.jsp"); rd.forward(request,response); %> Er zijn 3 manieren om de output te herleiden: RESPONSE. SETREDERECT("URL") Deze methode wijzigt het HEADER-gedeelte van het HTTP-protocol om een redirect-commando naar de browser te sturen, zodat de browser de inhoud van de doorgestuurde webpagina weergeeft. response.sendRedirect("http://localhost:7001/index.html"); De volgende methode kan ook de eigenschap HTTP HEADER wijzigen, die hetzelfde werkt als 1. <%response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); string newLocn="/index.html"; response.setHeader("Location",newLocn); % > < JSP:FORWORD > wordt aangenomen Deze methode gebruikt het mechanisme van de server om eerst data naar de buffer te verzenden; voordat de bufferinhoud naar de client wordt gestuurd, stuurt het origineel niet, maar stuurt in plaats daarvan de inhoud van de pagina. Als er veel output is vóór <JSP:FORWORD>, de vorige output de buffer heeft gevuld en automatisch naar de client wordt gestuurd, werkt de instructie niet; hier moet speciale aandacht aan worden besteed. Er zijn drie manieren om een andere JSP-pagina binnen één JSP-pagina te nesten: 1. Door <%@include file="header.jsp"%> kan deze methode alleen statisch paginaladen bereiken, en wordt het meest gebruikt om het laden van algemene paginaheader-header.jsp en footer.jsp in een project te realiseren. 2. Door <%@include page="tt.jsp"%> kan deze methode dynamisch paginaladen realiseren, maar moet parameters aan de pagina worden doorgegeven; 3. Laad een andere jsp-pagina op de pagina via <iframe src="jsp's path" >, wat een inline framework is. Als je forward gebruikt om de parameter door te geven, schrijf het dan als volgt: <%String str="Je bent ingelogd!"; %> <jsp:vooruit pagina="index.jsp> <jsp:param name="name" waarde= <%=str%>/> </jsp:vooruit> |
Vorig:JSP vernietigt de sessiesessie, waardoor gebruikerslogin ongeldig wordtVolgend:Gebruik van de jstl-tag <c:if>
|