|
|
Pubblicato su 03/01/2015 21:28:01
|
|
|

(1). metodo forward() Usa la classe javax.servlet.RequestDispatcher RequestDispatcher rd = getServletContext().getRequestDispatcher("url"); rd.forward(requestVar, requestVar); Passa i parametri di ingresso del servlet Ovversa: getServletContext().getRequestDispatcher("url").forward(requestVar,responseVar);
Ci sono 4 modi per girare i servlet lato server: 1. getRequestDispatcher() per ServletContext 2. getNamedDispatcher() per ServletContext 3. getRequestDispatcher() per ServletRequest 4. Sendredirect() di ServletResponse per sterzare. Metodo in avanti, perché sono più efficienti. Utilizzare il metodo sendredirect() della risposta servletresponse solo quando il metodo forward non è disponibile.
(2).response.sendRedirect(url); In effetti, invia un'intestazione speciale al browser, che poi si sposta alla pagina specificata, così quando usi sendRedirect puoi vedere il cambiamento dell'indirizzo nella barra degli indirizzi del browser. La nuova pagina non può gestire il pagecontext(request, response,... della pagina precedente. Obietta. response.send Redirect dovrebbe essere seguito da un return;
(3). Salto automatico al linguaggio HTML <html> <head> <meta http-equiv="refresh" content="0;url="http://www.baidu.com"> 0 è il tempo di attesa, se impostato a 5, significa che il salto inizia dopo aver aspettato 5 secondi </head> …………
(4). Salto JavaScript Un: <script languate="javascript"> window.location.replace("http://www.baidu.com"); </script> B: Puoi anche assegnare direttamente un valore all'attributo window.location, window.location="url", che è diverso da A in quanto ha una cronologia C: <script languate="javascript"> document.location.href("http://www.google.com"); </script> Per document, location non è un oggetto, document.location=document.url I metodi forward(), back() e go() dell'oggetto D:history richiedono un parametro di inserimento di shaping <a href="javascript:history.go(-1)" > tornare al passaggio precedente</a> Equivalente a <a href="javascript:history.back()" > torna al passaggio precedente</a> E: document.formName.action="test.jsp"; document.nomeForma.submit(); Metodo commit JS Il primo tipo: <script language="javascript" type="text/javascript"> window.location.href="login.jsp?backurl="+window.location.href; </script> Il secondo tipo: <script language="javascript"> allerta("ritorno"); window.history.back(-1); </script> Il terzo tipo: <script language="javascript"> window.navigate("top.jsp"); </script> Il quarto tipo: <script language="JavaScript"> self.location='top.htm'; </script> Il quinto tipo: <script language="javascript"> allerta("Accesso illegale!") ); top.location='xx.jsp'; </script>
(5). <jsp:pagina di invio="nextpage.jsp"/> Come: <jsp:pagina di avanzamento="/servlet/login" /> <jsp:pagina di avanzamento="/servlet/login"> <jsp:param name="username" value="jsmith" /> </jsp:avanti> <jsp:forward> passa un oggetto richiesta contenente una richiesta utente da un file JSP a un altro. <jsp:forward>tag, non verrà eseguito. Puoi usare il tag <jsp:param> per trasferire parametri e valori al file oggetto, che deve essere un file dinamico in grado di gestire i parametri. Se usi un'uscita non bufferata, fai attenzione quando usi <jsp:forward>. Se il file jsp ha già dati prima che tu usi <jsp:forward>, allora l'esecuzione del file sarà errata. Raccolta dei metodi di salto delle pagine JSP 1. response.sendRedirct("Salta alla pagina"); Questo metodo modifica la parte HEADER del protocollo HTTP per emettere un comando di reindirizzamento al browser, in modo che il browser mostri il contenuto della pagina web di reindirizzamento. La richiesta non può far passare il valore oltre. Esegui tutto il codice sulla pagina prima di saltare alla pagina. Vai alla barra degli indirizzi per cambiare. Puoi saltare alla page response.sendRedirct(http://www.sun.com) su un server diverso. 2.response.setHeader(); Questo metodo, come response.sendRedirect, viene eseguito modificando la parte HEADER del protocollo HTTP. <% response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); Corda newLocn="/index.html"; response.setHeader("Location",newLocn); % > 3.<jsp:pagina avanti="pagina di salto"/> Questo metodo utilizza il meccanismo del server per inviare prima i dati al buffer; prima di inviare il contenuto del buffer al client; l'originale non invia, ma invia invece il contenuto della pagina; se c'è molto output prima di <jsp:forward>, l'output precedente ha riempito il buffer, verrà automaticamente inviato al client, allora l'istruzione non funzionerà, quindi questo dovrebbe essere prestato particolare attenzione. La richiesta può far passare il valore oltre. Saltando direttamente alla pagina, il codice seguente non viene eseguito. La barra degli indirizzi rimane invariata dopo il salto. Impossibile saltare a una pagina su un altro server. L'immagine non è un percorso assoluto che non può essere mostrato. 4. request.getRequestDispatcher ("Vai alla pagina"); La richiesta può far passare il valore oltre. Esegui tutto il codice sulla pagina prima di saltare alla pagina. La barra degli indirizzi del salto rimane invariata. Non puoi saltare a una pagina su un altro server <% RequestDispatcher rd = request.getRequestDispatcher("to.jsp"); rd.forward(request,response); %> Ci sono 3 modi per reindirizzare l'output: RESPONSE. SETREDERECT("URL") Questo metodo modifica la parte HEADER del protocollo HTTP per emettere un comando di reindirizzamento al browser, in modo che il browser mostri il contenuto della pagina web reindirizzata. response.sendRedirect("http://localhost:7001/index.html"); Il metodo seguente può anche modificare la proprietà HTTP HEADER, che funziona allo stesso modo di 1. <%response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); Stringa newLocn="/index.html"; response.setHeader("Location",newLocn); % > < JSP:FORWORD > è adottato Questo metodo utilizza il meccanismo del server per inviare prima i dati al buffer; prima di inviare il contenuto del buffer al client; l'originale non invia, ma invia il contenuto della pagina; se c'è molta uscita prima di <JSP:FORWORD>, l'output precedente ha riempito il buffer e verrà automaticamente inviata al client, allora l'istruzione non funzionerà, quindi questo dovrebbe essere prestato particolare attenzione. Ci sono tre modi per annidare un'altra pagina JSP all'interno di una sola pagina JSP: 1. Con <%@ include file="header.jsp"%> questo metodo può ottenere solo caricamenti statici della pagina, ed è più comunemente usato per realizzare il caricamento di header.jsp e footer.jsp generali dell'intestazione della pagina in un progetto. 2. Con <%@ include page="tt.jsp"%> questo metodo può realizzare un caricamento dinamico della pagina, ma deve passare i parametri alla pagina; 3. Carica un'altra pagina jsp sulla pagina tramite <iframe src="jsp's path" >, che è un framework inline. Se usi forward per passare il parametro, scrivilo così: <%String str="Sei loggato!"; %> <jsp:pagina di avanzamento="index.jsp> <jsp:param name="name" value= <%=str%>/> </jsp:avanti> |
Precedente:JSP distrugge la sessione di sessione, invalidando l'accesso utenteProssimo:Uso del tag jstl <c:if>
|