(1). metoda forward() Uporabite razred javax.servlet.RequestDispatcher RequestDispatcher rd = getServletContext().getRequestDispatcher("url"); rd.forward(requestVar,requestVar); Prenesite vnosne parametre servleta Namreč: getServletContext().getRequestDispatcher("url").forward(requestVar,responseVar);
Obstajajo štirje načini za spreminjanje servletov na strežniški strani: 1. getRequestDispatcher() za ServletContext 2. getNamedDispatcher() za ServletContext 3. getRequestDispatcher() za ServletRequest 4. ServletResponse-ov sendredirect() za usmerjanje. Metoda naprej, ker so te bolj učinkovite. Uporabite metodo sendredirect() za servletresponse le, kadar metoda posredovanja ni na voljo.
(2).response.sendRedirect(url); Pravzaprav pošlje posebno glavo brskalniku, nato pa se brskalnik obrne na določeno stran, tako da lahko pri uporabi sendRedirect spremembo naslova opazite v naslovni vrstici brskalnika. Nova stran ne more obvladati konteksta strani (zahteve, odgovora,... stare strani. Predmet. response.sendRedirect naj sledi return;
(3). Samodejni preskok v HTML jezik <html> <head> <meta http-equiv="osveži" vsebina="0;url="http://www.baidu.com"> 0 je čas čakanja, če je nastavljen na 5, pomeni, da se skok začne po čakanju 5 sekund </head> …………
(4). JavaScript preskok A: <script languate="javascript"> window.location.replace("http://www.baidu.com"); </script> B: Lahko tudi neposredno dodelite vrednost atributu window.location, window.location="url", ki se razlikuje od A po tem, da ima zgodovino C: <script languate="javascript"> document.location.href("http://www.google.com"); </script> Za dokument lokacija ni objekt, document.location=document.url Metode forward(), back() in go() objekta D:history zahtevajo parameter za vnos oblikovanja <a href="javascript:history.go(-1)" > se vrnite na prejšnji korak</a> Ekvivalent <a href="javascript:history.back()" > vrni na prejšnji korak</a> E: document.formName.action="test.jsp"; document.formName.submit(); Metoda potrditve JS Prva vrsta: <script language="javascript" type="text/javascript"> window.location.href="login.jsp?backurl="+window.location.href; </script> Druga vrsta: <script jezik="javascript"> opozorilo ("vrni"); window.history.back(-1); </script> Tretja vrsta: <script jezik="javascript"> window.navigate("top.jsp"); </script> Četrta vrsta: <skriptni jezik="JavaScript"> self.location='top.htm'; </script> Peta vrsta: <script jezik="javascript"> opozorilo ("Nezakonit dostop!") ); top.location='xx.jsp'; </script>
(5). <jsp:forward page="nextpage.jsp"/> Kot: <jsp:forward page="/servlet/login" /> <jsp:forward page="/servlet/login"> <jsp:param name="uporabniško ime" vrednost="jsmith" /> </jsp:naprej> <jsp:forward> oznaka prenaša objekt zahteve, ki vsebuje uporabniško zahtevo, iz ene JSP datoteke v drugo. <jsp:forward>tag se ne bo izvedel. Lahko uporabite oznako <jsp:param> za prenos parametrov in vrednosti v objektno datoteko, ki mora biti dinamična datoteka, ki lahko obvladuje parametre. Če uporabljaš nemedpomnilni izhod, bodi previden pri uporabi <jsp:forward>. Če datoteka jsp že vsebuje podatke pred uporabo <jsp:forward>, bo izvedba datoteke napačna. Zbirka metod skakanja strani JSP 1. response.sendRedirct("Preskoči na stran"); Ta metoda spremeni del HEADER v HTTP protokolu tako, da brskalniku pošlje ukaz za preusmeritev, tako da brskalnik prikaže vsebino preusmeritvene spletne strani. Zahteva ne more prenesti vrednosti naprej. Pred skokom na stran izvedite vso kodo na strani. Skočite v naslovno vrstico za spremembo. Lahko skočiš na stran response.sendRedirct(http://www.sun.com) na drugem strežniku. 2.response.setHeader(); Ta metoda, podobno kot response.sendRedirect, se izvede z modifikacijo dela HEADER v HTTP protokolu. < % odziv.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); Struna newLocn="/index.html"; response.setHeader("Location",newLocn); % > 3.<jsp:forward page="jump page"/> Ta metoda uporablja mehanizem strežnika, da najprej izpiše podatke v medpomnilnik, preden pošlje vsebino medpomnilnika odjemalcu, original ne pošlje, ampak vsebino strani; če je pred <jsp:forward> veliko izhoda, je prejšnji izhod napolnil medpomnilnik, se samodejno izpiše odjemalcu, takrat izjava ne bo delovala, temu je treba posvetiti posebno pozornost. Zahteva lahko prenese vrednost naprej. Skočite neposredno na stran, naslednja koda se ne izvaja. Naslovna vrstica ostane nespremenjena po skoku. Ne morem preskočiti na stran na drugem strežniku. Slika ni absolutna pot, ki je ni mogoče prikazati. 4. request.getRequestDispatcher ("Preskoči na stran"); Zahteva lahko prenese vrednost naprej. Pred skokom na stran izvedite vso kodo na strani. Naslovna vrstica za skok ostaja nespremenjena. Na drugem strežniku ne morete skočiti na stran <% RequestDispatcher rd = request.getRequestDispatcher("to.jsp"); rd.forward(request,response); %> Obstajajo 3 načini za preusmeritev izhoda: RESPONSE. SETREDERECT("URL") Ta metoda spremeni del HEADER v HTTP protokolu, da brskalniku pošlje ukaz za preusmeritev, tako da brskalnik prikaže vsebino preusmerjene spletne strani. response.sendRedirect("http://localhost:7001/index.html"); Naslednja metoda lahko spremeni tudi lastnost HTTP HEADER, ki deluje enako kot 1. <%response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); String newLocn="/index.html"; response.setHeader("Location",newLocn); % > < JSP:FORWORD > je sprejet Ta metoda uporablja mehanizem strežnika, da najprej izpiše podatke v medpomnilnik, preden pošlje vsebino medpomnilnika odjemalcu; original ne pošlje, temveč vsebino strani; če je pred <JSP:FORWORD> veliko izhodov, je prejšnji izhod napolnil medpomnilnik in bo samodejno poslan odjemalcu, takrat izjava ne deluje, temu je treba posvetiti posebno pozornost. Obstajajo trije načini za gnezdenje druge JSP strani znotraj ene JSP strani: 1. Z <%@ include file="header.jsp"%> ta metoda omogoča le statično nalaganje strani in se najpogosteje uporablja za nalaganje splošnih header.jsp in footer.jsp glav strani v projektu. 2. Z <%@ include page="tt.jsp"%> ta metoda omogoča dinamično nalaganje strani, vendar mora posredovati parametre strani; 3. Naložite drugo jsp stran na stran z <iframe src="jsp's path" >, kar je inline ogrodje. Če za posredovanje parametra uporabite naprej, ga zapišite takole: <%String str="Prijavljeni ste!"; %> <jsp:forward page="index.jsp> <jsp:param name="name" value= <%=str%>/> </jsp:naprej> |