|
|
Δημοσιεύτηκε στις 3/1/2015 9:28:01 μ.μ.
|
|
|

(1). Μέθοδος forward(). Χρησιμοποιήστε την κλάση javax.servlet.RequestDispatcher RequestDispatcher rd = getServletContext().getRequestDispatcher("url"); rd.forward(requestVar,requestVar); Μεταβιβάστε τις παραμέτρους εισόδου της μικροεφαρμογής εξυπηρετητή Δηλαδή: getServletContext().getRequestDispatcher("url").forward(requestVar,responseVar);
Υπάρχουν 4 τρόποι για να ενεργοποιήσετε τις μικροεφαρμογές εξυπηρετητή από την πλευρά του διακομιστή: 1. getRequestDispatcher() για το ServletContext 2. getNamedDispatcher() για το ServletContext 3. getRequestDispatcher() για ServletRequest 4. ServletResponse's sendredirect() για να κατευθύνετε. μέθοδο προς τα εμπρός, επειδή αυτές είναι πιο αποτελεσματικές. Χρησιμοποιήστε τη μέθοδο sendredirect() του servletresponse μόνο όταν η μέθοδος προώθησης δεν είναι διαθέσιμη.
(2).response.sendRedirect(url); Στην πραγματικότητα, στέλνει μια ειδική κεφαλίδα στο πρόγραμμα περιήγησης και, στη συνέχεια, το πρόγραμμα περιήγησης μεταβαίνει στην καθορισμένη σελίδα, οπότε όταν χρησιμοποιείτε το sendRedirect, μπορείτε να δείτε την αλλαγή διεύθυνσης στη γραμμή διευθύνσεων του προγράμματος περιήγησης. Η νέα σελίδα δεν μπορεί να χειριστεί το pagecontext(αίτημα, απάντηση,... της παλιάς σελίδας. Αντικείμενο. response.sendRedirect θα πρέπει να ακολουθείται από μια επιστροφή.
(3). Αυτόματη μετάβαση στη γλώσσα HTML <html> <head> <meta http-equiv="ανανέωση" content="0;url="http://www.baidu.com"> 0 είναι ο χρόνος αναμονής, αν οριστεί σε 5, σημαίνει ότι το άλμα ξεκινά μετά από αναμονή 5 δευτερολέπτων </head> …………
(4). Άλμα JavaScript A: <script languate="javascript"> window.location.replace("http://www.baidu.com"); </script> B: Μπορείτε επίσης να αντιστοιχίσετε απευθείας μια τιμή στο χαρακτηριστικό window.location, window.location="url", το οποίο διαφέρει από το A στο ότι έχει ιστορικό C: <script languate="javascript"> document.location.href("http://www.google.com"); </script> Για έγγραφο, η τοποθεσία δεν είναι αντικείμενο, document.location=document.url Οι μέθοδοι forward(), back() και go() του αντικειμένου D:history απαιτούν μια παράμετρο καταχώρισης διαμόρφωσης <a href="javascript:history.go(-1)" > επιστρέψετε στο προηγούμενο βήμα</a> Ισοδυναμεί με <a href="javascript:history.back()" > επιστρέψετε στο προηγούμενο βήμα</a> E: document.formName.action="test.jsp"; document.formName.submit(); Μέθοδος υποβολής JS Ο πρώτος τύπος: <script language="javascript" type="text/javascript"> window.location.href="login.jsp?backurl="+window.location.href; </script> Ο δεύτερος τύπος: <script language="javascript"> alert("επιστροφή"); window.history.back(-1); </script> Ο τρίτος τύπος: <script language="javascript"> window.navigate("top.jsp"); </script> Ο τέταρτος τύπος: <script language="JavaScript"> self.location='top.htm'; </script> Ο πέμπτος τύπος: <script language="javascript"> alert("Παράνομη πρόσβαση!") ); top.location='xx.jsp'; </script>
(5). <jsp:forward page="nextpage.jsp"/> Όπως: <jsp:forward page="/servlet/login" /> <jsp:forward page="/servlet/login"> <jsp:param name="όνομα χρήστη" value="jsmith" /> </jsp:προώθηση> <jsp:forward> μεταβιβάζει ένα αντικείμενο αιτήματος που περιέχει ένα αίτημα χρήστη από ένα αρχείο JSP σε ένα άλλο. <jsp:forward>tag, δεν θα εκτελεστεί. Μπορείτε να χρησιμοποιήσετε το tag <jsp:param> για να μεταφέρετε παραμέτρους και τιμές στο αρχείο αντικειμένου, το οποίο πρέπει να είναι ένα δυναμικό αρχείο που μπορεί να χειριστεί παραμέτρους. Εάν χρησιμοποιείτε έξοδο χωρίς buffer, να είστε προσεκτικοί όταν χρησιμοποιείτε το <jsp:forward>. Εάν το αρχείο jsp έχει ήδη δεδομένα πριν χρησιμοποιήσετε το <jsp:forward>, τότε η εκτέλεση του αρχείου θα είναι λανθασμένη. Συλλογή μεθόδων μεταπήδησης σελίδας JSP 1. response.sendRedirct("Μετάβαση στη σελίδα"); Αυτή η μέθοδος τροποποιεί το τμήμα HEADER του πρωτοκόλλου HTTP για να εκδώσει μια εντολή ανακατεύθυνσης στο πρόγραμμα περιήγησης, έτσι ώστε το πρόγραμμα περιήγησης να εμφανίζει το περιεχόμενο της ιστοσελίδας ανακατεύθυνσης. Το αίτημα δεν μπορεί να περάσει την τιμή. Εκτελέστε όλο τον κώδικα στη σελίδα πριν μεταβείτε στη σελίδα. Μεταβείτε στη γραμμή διευθύνσεων για να αλλάξετε. Μπορείτε να μεταβείτε στη σελίδα response.sendRedirct(http://www.sun.com) σε διαφορετικό διακομιστή. 2.response.setHeader(); Αυτή η μέθοδος, όπως και το response.sendRedirect, γίνεται τροποποιώντας το τμήμα HEADER του πρωτοκόλλου HTTP. <% response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); Σειρά newLocn="/index.html"; response.setHeader("Τοποθεσία",newLocn); % > 3.<jsp:forward page="μετάβαση σελίδας"/> Αυτή η μέθοδος χρησιμοποιεί τον μηχανισμό του διακομιστή για την έξοδο δεδομένων στο buffer πρώτα, πριν στείλει το περιεχόμενο του buffer στον πελάτη, το πρωτότυπο δεν στέλνει, αλλά στέλνει το περιεχόμενο της σελίδας, εάν υπάρχει πολλή έξοδος πριν από το <jsp:forward>, η προηγούμενη έξοδος έχει γεμίσει το buffer, θα εξαχθεί αυτόματα στον πελάτη, τότε η δήλωση δεν θα λειτουργήσει, αυτό θα πρέπει να δοθεί ιδιαίτερη προσοχή. Το αίτημα μπορεί να περάσει την τιμή στο παρελθόν. Μεταβείτε απευθείας στη σελίδα, ο παρακάτω κώδικας δεν εκτελείται. Η γραμμή διευθύνσεων παραμένει αμετάβλητη μετά το άλμα. Δεν είναι δυνατή η μετάβαση σε μια σελίδα σε διαφορετικό διακομιστή. Η εικόνα δεν είναι μια απόλυτη διαδρομή που δεν μπορεί να εμφανιστεί. 4. request.getRequestDispatcher("Μετάβαση στη σελίδα"); Το αίτημα μπορεί να περάσει την τιμή στο παρελθόν. Εκτελέστε όλο τον κώδικα στη σελίδα πριν μεταβείτε στη σελίδα. Η γραμμή διευθύνσεων μετάβασης παραμένει αμετάβλητη. Δεν μπορείτε να μεταβείτε σε μια σελίδα σε άλλο διακομιστή <% RequestDispatcher rd = request.getRequestDispatcher("to.jsp"); rd.forward(request,response); %> Υπάρχουν 3 τρόποι για να ανακατευθύνετε την έξοδο: RESPONSE. SETREDERECT("URL") Αυτή η μέθοδος τροποποιεί το τμήμα HEADER του πρωτοκόλλου HTTP για να εκδώσει μια εντολή ανακατεύθυνσης στο πρόγραμμα περιήγησης, έτσι ώστε το πρόγραμμα περιήγησης να εμφανίζει το περιεχόμενο της ανακατευθυνόμενης ιστοσελίδας. response.sendRedirect("http://localhost:7001/index.html"); Η ακόλουθη μέθοδος μπορεί επίσης να αλλάξει την ιδιότητα HTTP HEADER, η οποία λειτουργεί το ίδιο με το 1. <%response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); συμβολοσειρά newLocn="/index.html"; response.setHeader("Τοποθεσία",newLocn); % > < Υιοθετείται το JSP:FORWORD > Αυτή η μέθοδος χρησιμοποιεί τον μηχανισμό του διακομιστή για την έξοδο δεδομένων στο buffer πρώτα, πριν στείλει το περιεχόμενο του buffer στον πελάτη, το πρωτότυπο δεν στέλνει, αλλά στέλνει το περιεχόμενο της σελίδας, εάν υπάρχει πολλή έξοδος πριν από το <JSP:FORWORD>, η προηγούμενη έξοδος έχει γεμίσει το buffer και θα εξάγεται αυτόματα στον πελάτη, τότε η δήλωση δεν θα λειτουργήσει, αυτό θα πρέπει να δοθεί ιδιαίτερη προσοχή. Υπάρχουν τρεις τρόποι για να ενσωματώσετε μια άλλη σελίδα JSP σε μία σελίδα JSP: 1. Με <%@ include file="header.jsp"%> αυτή η μέθοδος μπορεί να επιτύχει μόνο στατική φόρτωση σελίδας και χρησιμοποιείται πιο συχνά για την πραγματοποίηση της φόρτωσης γενικών header.jsp και footer.jsp κεφαλίδας σελίδας σε ένα έργο. 2. Με <%@ include page="tt.jsp"%> αυτή η μέθοδος μπορεί να πραγματοποιήσει δυναμική φόρτωση σελίδας, αλλά πρέπει να μεταβιβάσει παραμέτρους στη σελίδα. 3. Φορτώστε μια άλλη σελίδα jsp στη σελίδα με το <iframe src="jsp's path" >, το οποίο είναι ένα ενσωματωμένο πλαίσιο. Εάν χρησιμοποιείτε το forward για να περάσετε την παράμετρο, γράψτε την ως εξής: <%String str="Είστε συνδεδεμένοι!"; %> <jsp:forward page="index.jsp> <jsp:param name="name" value= <%=str%>/> </jsp:προώθηση> |
Προηγούμενος:Το JSP καταστρέφει τη συνεδρία συνεδρίας, ακυρώνοντας τη σύνδεση χρήστηΕπόμενος:Χρήση της ετικέτας jstl <c:if>
|