Servlet:
Tentu saja, di servlet, lompatan umumnya terjadi di doGet, doPost, dan metode lainnya.
1) metode pengalihan
respon.sendRedirect("/a.jsp");
Jalur menuju halaman adalah jalur relatif. sendRedirect dapat melompat ke halaman mana pun, tidak terbatas pada aplikasi web ini, seperti:
respon.sendRedirect("//www.VeVB.COM");
Bilah alamat browser berubah setelah lompatan.
Jika Anda ingin meneruskan nilai dengan cara ini, Anda hanya dapat membawa parameter di URL atau memasukkannya ke dalam sesi. Anda tidak dapat menggunakan request.setAttribute untuk meneruskannya.
2) metode maju
Petugas operator RequestDispatcher = request.getRequestDispatcher("/a.jsp");
operator .forward(permintaan, tanggapan);
Jalur menuju halaman adalah jalur relatif. Metode forward hanya dapat melompat ke halaman pada aplikasi web ini.
Bilah alamat browser tidak akan berubah setelah lompatan.
Dengan menggunakan metode ini untuk melompat, Anda dapat menggunakan tiga metode untuk meneruskan nilai: parameter, sesi, request.setAttribute di URL
JSP:
1) respon.sendRedirect();
Metode yang sama dengan respon.sendRedirect() servlet.
Out.flush() tidak diperbolehkan sebelum pernyataan ini. Jika ada, pengecualian akan terjadi:
java.lang.IllegalStateException: Tidak dapat sendRedirect() setelah data dikomit ke klien.
di com.caucho.server.connection.AbstractHttpResponse.sendRedirect(AbstractHttpResponse.java:558)
...
Bilah alamat browser berubah setelah lompatan
Jika Anda ingin melompat ke host lain, setelah lompatan, pernyataan yang mengikuti pernyataan ini akan terus dijalankan, seolah-olah thread baru telah dibuka, tetapi pengoperasian respons tidak ada artinya;
Jika Anda ingin melompat ke host yang sama, lompatan tidak akan terjadi sampai pernyataan yang mengikuti pernyataan ini dijalankan;
2) respon.setHeader("Lokasi","");
Out.flush() tidak diperbolehkan sebelum pernyataan ini. Jika ada, halaman tidak akan melompat.
Bilah alamat browser berubah setelah lompatan
Lompatan tidak akan terjadi sampai pernyataan yang mengikuti pernyataan ini dieksekusi.