(1). fremover()-metoden Bruk javax.servlet.RequestDispatcher-klassen RequestDispatcher rd = getServletContext().getRequestDispatcher("url"); rd.forward(requestVar, requestVar); Pass inngangsparametrene til servleten Nemlig: getServletContext().getRequestDispatcher("url").forward(requestVar,responseVar);
Det finnes 4 måter å gjøre server-side servlets på: 1. getRequestDispatcher() for ServletContext 2. getNamedDispatcher() for ServletContext 3. getRequestDispatcher() for ServletRequest 4. ServletResponses sendredirect() to steer. fremover-metoden, fordi disse er mer effektive. Bruk kun sendredirect()-metoden servletresponse når forward-metoden ikke er tilgjengelig.
(2).response.sendRedirect(url); Faktisk sender den en spesiell header til nettleseren, og så går nettleseren videre til den angitte siden, så når du bruker sendRedirect, kan du se adresseendringen i nettleserens adresselinje. Den nye siden kan ikke håndtere sidekonteksten (forespørsel, svar,... til den gamle siden. Objekt. response.sendRedirect bør følges av en return;
(3). Automatisk hopp til HTML-språk <html> <head> <meta http-equiv="refresh" content="0;url="http://www.baidu.com"> 0 er ventetiden, hvis den er satt til 5, betyr det at hoppet starter etter å ha ventet i 5 sekunder </head> …………
(4). JavaScript-hopp A: <script languate="javascript"> window.location.replace("http://www.baidu.com"); </script> B: Du kan også direkte tilordne en verdi til window.location-attributtet, window.location="url", som skiller seg fra A ved at det har en historikk C: <script languate="javascript"> document.location.href("http://www.google.com"); </script> For dokument er ikke location et objekt, document.location=document.url Forward(), back() og go()-metodene i D:history-objektet krever en forming-inngangsparameter <a href="javascript:history.go(-1)" > gå tilbake til forrige steg</a> Tilsvarende <a href="javascript:history.back()" > gå tilbake til forrige steg</a> E: document.formName.action="test.jsp"; document.formName.submit(); JS-commit-metoden Den første typen: <script language="javascript" type="text/javascript"> window.location.href="login.jsp?backurl="+window.location.href; </script> Den andre typen: <script language="javascript"> alert("return"); window.history.back(-1); </script> Den tredje typen: <script language="javascript"> window.navigate("top.jsp"); </script> Den fjerde typen: <script language="JavaScript"> self.location='top.htm'; </script> Den femte typen: <script language="javascript"> alert("Ulovlig tilgang!") ); top.location='xx.jsp'; </script>
(5). <jsp:forward page="nextpage.jsp"/> Som: <jsp:forward page="/servlet/login" /> <jsp:videresend side="/servlet/login"> <jsp:param name="brukernavn" value="jsmith" /> </jsp:fremover> <jsp:forward>-taggen sender et forespørselsobjekt som inneholder en brukerforespørsel fra én JSP-fil til en annen. <jsp:forward>tag, vil ikke bli utført. Du kan bruke taggen <jsp:param> for å overføre parametere og verdier til objektfilen, som må være en dynamisk fil som kan håndtere parametere. Hvis du bruker ubufret utdata, vær forsiktig når du bruker <jsp:forward>. Hvis jsp-filen allerede har data før du bruker <jsp:forward>, vil filkjøringen være feil. JSP sidehoppmetodesamling 1. response.sendRedirct("Hopp til siden"); Denne metoden endrer HEADER-delen av HTTP-protokollen for å gi en omdirigeringskommando til nettleseren, slik at nettleseren viser innholdet på omdirigeringssiden. forespørsel kan ikke sende verdien forbi. Kjør all koden på siden før du hopper til siden. Hopp til adresselinjen for å bytte. Du kan hoppe til siden response.sendRedirct(http://www.sun.com) på en annen server. 2.response.setHeader(); Denne metoden, som response.sendRedirect, gjøres ved å endre HEADER-delen av HTTP-protokollen. <% response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); Streng newLocn="/index.html"; response.setHeader ("Location",newLocn); % > 3.<jsp:forward page="jump page"/> Denne metoden bruker serverens mekanisme for å sende data til bufferen først, før innholdet fra bufferen sendes til klienten, sender ikke originalen, men i stedet innholdet på siden. Hvis det er mye utdata før <jsp:forward>, og forrige utdata har gjort bufferen full, vil den automatisk bli sendt til klienten, vil ikke setningen fungere, dette bør vies spesiell oppmerksomhet. forespørsel kan sende verdien videre. Hopp direkte til siden, følgende kode blir ikke kjørt. Adresselinjen forblir uendret etter hopp. Kan ikke hoppe til en side på en annen server. Bildet er ikke en absolutt sti som ikke kan vises. 4. request.getRequestDispatcher ("Hopp til siden"); forespørsel kan sende verdien videre. Kjør all koden på siden før du hopper til siden. Hoppadresselinjen forblir uendret. Du kan ikke hoppe til en side på en annen server <% RequestDispatcher rd = request.getRequestDispatcher("to.jsp"); rd.forward(request,response); %> Det finnes 3 måter å omdirigere utdataene på: RESPONSE. SETREDERECT("URL") Denne metoden endrer HEADER-delen av HTTP-protokollen for å gi en omdirigeringskommando til nettleseren, slik at nettleseren viser innholdet på den omdirigerte nettsiden. response.sendRedirect("http://localhost:7001/index.html"); Følgende metode kan også endre HTTP HEADER-egenskapen, som fungerer på samme måte som 1. <%response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); streng newLocn="/index.html"; response.setHeader("Location",newLocn); % > < JSP:FORWORD > blir vedtatt Denne metoden bruker serverens mekanisme for å sende data til bufferen først, før bufferinnholdet sendes til klienten, sender ikke originalen, men i stedet innholdet fra siden. Hvis det er mye output før <JSP:FORWORD>, har forrige output fylt bufferen og vil automatisk bli sendt til klienten, vil ikke setningen fungere, dette bør vies spesiell oppmerksomhet. Det finnes tre måter å legge en annen JSP-side innenfor én JSP-side: 1. Ved <%@include file="header.jsp"%> kan denne metoden kun oppnå statisk sidelasting, og brukes oftest for å realisere lasting av generelle sideheader-header.jsp og footer.jsp i et prosjekt. 2. Ved <%@include page="tt.jsp"%> kan denne metoden oppnå dynamisk sidelasting, men den må sende parametere til siden; 3. Last en annen jsp-side til siden ved <iframe src="jsp's path" >, som er et inline-rammeverk. Hvis du bruker forward for å sende parameteren, skriv den slik: <%String str="Du er logget inn!"; %> <jsp:forward page="index.jsp> <jsp:param name="name" value= <%=str%>/> </jsp:fremover> |