Heim >Java >javaLernprogramm >Mehrere Methoden zum Seitensprung im Java-Servlet
Java-Servlet verfügt über mehrere Methoden zum Seitensprung. Freunde, die es benötigen, können sich auf
Servlet beziehen:
Natürlich treten im Servlet allgemeine Sprünge in doGet, doPost und anderen Methoden auf. In.
1) Umleitungsmethode
response.sendRedirect("/a.jsp");
Der Pfad der Seite ist ein relativer Pfad. sendRedirect kann zu jeder Seite springen, nicht unbedingt auf diese Webanwendung beschränkt, wie zum Beispiel:
response.sendRedirect("http://www.jb51.net");
Die Browseradresse Der Balken ändert sich nach dem Sprung.
Wenn Sie den Wert auf diese Weise übergeben möchten, können Sie den Parameter nur in die URL einfügen oder in die Sitzung einfügen. Sie können ihn nicht mit request.setAttribute übergeben.
2) Weiterleitungsmethode
RequestDispatcher Dispatcher = request.getRequestDispatcher("/a.jsp");
dispatcher .forward(request, Response);
Der Pfad der Seite ist ein relativer Pfad. Die Forward-Methode kann nur zu Seiten in dieser Webanwendung springen.
Die Adressleiste des Browsers ändert sich nach dem Sprung nicht.
Verwenden Sie diese Methode zum Springen. Es gibt drei Methoden zum Übergeben von Werten: Parameter, Sitzung, request.setAttribute in der URL
JSP:
1) Response.sendRedirect ( );
ist dasselbe wie Response.sendRedirect() des Servlets.
Out.flush() ist vor dieser Anweisung nicht zulässig. Wenn dies der Fall ist, tritt eine Ausnahme auf:
java.lang.IllegalStateException: Can't sendRedirect() after data has commit to der Client .
bei com.caucho.server.connection.AbstractHttpResponse.sendRedirect(AbstractHttpResponse.java:558)
...
Die Adressleiste des Browsers ändert sich nach dem springen
Wenn Sie zu einem anderen Host springen möchten, werden die auf diese Anweisung folgenden Anweisungen weiterhin ausgeführt, als ob ein neuer Thread geöffnet würde, aber der Antwortvorgang ist bedeutungslos
Wenn Sie zum selben Host springen möchten, springt die Anweisung nach dieser Anweisung nicht, bis die Ausführung abgeschlossen ist.
🎜>Diese Anweisung ist nicht zulässig, bevor out.flush() vorhanden ist. Wenn dies der Fall ist, springt die Seite nicht.
Die Adressleiste des Browsers ändert sich nach dem Sprung
Der Sprung erfolgt erst, wenn die auf diese Anweisung folgende Anweisung ausgeführt wird
Das obige ist der detaillierte Inhalt vonMehrere Methoden zum Seitensprung im Java-Servlet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!