Rumah >Java >javaTutorial >Servlet RequestDispatcher
Antara muka RequestDispatcher membenarkan permintaan dihalakan ke sumber lain, yang mungkin HTML, Servlet atau JSP. Antara muka ini juga boleh digunakan untuk menggabungkan kandungan sumber tambahan. Ia adalah salah satu kaedah kerjasama servlet. Antara muka RequestDispatcher adalah sebahagian daripada java. Pakej Servlet. Menggunakan antara muka ini, servlet mengembalikan objek selepas menerima permintaan.
IKLAN Kursus Popular dalam kategori ini JAVA SERVLET - Pengkhususan | 18 Siri Kursus | 6 Ujian Olok-olokMulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Servlet RequestDispatcher menggunakan antara muka pengguna untuk meminta satu pautan sumber kepada yang lain. Requestdispatcher menghantar data borang ke halaman servlet pengesahan. Jika halaman servlet mengesahkan maklumat, penghantar permintaan memajukan pautan ke halaman servlet atau JSP lain menggunakan laluan atau nama rentetan. Jika halaman web tidak mengesahkan maklumat, objek penghantar permintaan termasuk halaman HTML atau JSP dan menunjukkan mesej ralat.
Objek RequestDispatcher boleh menghantar permintaan kepada sumber atau memasukkannya dalam respons. Sumber mungkin sama ada statik atau dinamik. Terdapat tiga cara untuk mencipta servlet requestdispatcher pada halaman servlet. Pertama, kita perlu menggunakan nama rentetan laluan atau laluan halaman.
Sintaks berikut menunjukkan cara mencipta objek penghantar permintaan dengan laluan.
Sintaks:
RequestDispatcher requestdispatcherObject = ServletContext.getRequestDispatcher(" String file_path");
Penjelasan:
Sintaks berikut menunjukkan cara mencipta objek penghantar permintaan.
Sintaks:
RequestDispatcher requestdispatcherObject = ServletContext.getNamedDispatcher(" String name");
Penjelasan:
Sintaks berikut menunjukkan cara membuat objek penghantar permintaan dengan antara muka permintaan.
Sintaks:
RequestDispatcher requestdispatcherObject = request.getRequestDispatcher(" String file_path");
Penjelasan:
Requestdispatcher mempunyai dua kaedah untuk halaman servlet dan Html. Kaedah ini sama ada memajukan atau memasukkan sumber fail ke sumber seterusnya.
Jika maklumat disahkan dan halaman web dimajukan ke halaman servlet seterusnya, kemudian gunakan kaedah ke hadapan.
Sintaks:
Sintaks berikut menunjukkan cara menggunakan kaedah ke hadapan.
void forward(ServletRequest req, ServletResponse resp) throws ServletException, IOException
Penjelasan:
Contoh:
Kod:
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Register extends HttpServlet { public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter printout = resp.getWriter(); String first_id = req.getParameter("fn"); RequestDispatcher rdispatcher = req.getRequestDispatcher("/index.html"); rdispatcher.include(req, resp); } }
Jika maklumat tidak disahkan, maka halaman tersebut termasuk halaman yang sama dengan mesej ralat.
Sintaks:
Sintaks berikut menunjukkan cara menggunakan kaedah sertakan.
void include(ServletRequest req, ServletResponse resp) throws ServletException, IOException
Penjelasan:
Contoh:
Kod:
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Register extends HttpServlet { public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter printout = resp.getWriter(); String first_id = req.getParameter("fn"); printout.print("Sorry!! Wrong UserId!"); RequestDispatcher rdispatcher = req.getRequestDispatcher("/index.html"); rdispatcher.include(req, resp); } }
The servlet requestdispatcher requires the following four files:
index.html: create the required form
Code:
<!DOCTYPE html> <html> <head> <title> Basic form </title> </head> <body> <form action = "first_servlet" method = "post"> <label for = "fn"> User Id: </label> <input type = "text" id = "fn" name = "fn"><br><br> <label for = "ln"> First name: </label> <input type = "text" id = "ln" name = "ln"><br> <input type = "submit" value = "Submit"> </form> </body> </html>
Register.java: create the first servlet with a request dispatcher interface
Code:
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Register extends HttpServlet { public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter printout = resp.getWriter(); String first_id = req.getParameter("fn"); String first_name = req.getParameter("ln"); if(first_id.equals("servlet"){ RequestDispatcher rdispatcher = req.getRequestDispatcher("sec_servlet"); rdispatcher.forward(req, resp); } else{ printout.print("Sorry!! Wrong UserId!"); RequestDispatcher rdispatcher = req.getRequestDispatcher("/index.html"); rdispatcher.include(req, resp); } } }
FinalServlet.java: create a second servlet page for the required output
Code:
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class FinalServlet extends HttpServlet { public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter printout = resp.getWriter(); String name = req.getParameter("ln"); printout.print("Welcome "+name); } }
Web.xml: create servlet parameters with its page
Code:
<web-app> <servlet> <servlet-name> Register </servlet-name> <servlet-class> Register </servlet-class> </servlet> <servlet> <servlet-name> FinalServlet </servlet-name> <servlet-class> FinalServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name> Register </servlet-name> <url-pattern> /first_servlet </url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name> FinalServlet </servlet-name> <url-pattern> /sec_servlet </url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file> index.html </welcome-file> </welcome-file-list> </web-app>
Output 1: form page
Output 2: servlet page output with an error message
Output 2: servlet page final output
The servlet requestdispatcher interface moves users from one source to another web application source. It is forward and includes the file path per requirement and source output.
Atas ialah kandungan terperinci Servlet RequestDispatcher. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!