Die RequestDispatcher-Schnittstelle ermöglicht die Weiterleitung der Anfrage an eine andere Ressource, bei der es sich um HTML, Servlet oder JSP handeln kann. Diese Schnittstelle kann auch verwendet werden, um den Inhalt einer zusätzlichen Ressource einzubinden. Es handelt sich um eine der Servlet-Kooperationsmethoden. Die RequestDispatcher-Schnittstelle ist Teil von Java. Servlet-Paket. Über diese Schnittstelle gibt das Servlet nach Erhalt einer Anfrage ein Objekt zurück.
WERBUNG Beliebter Kurs in dieser Kategorie JAVA SERVLET - Spezialisierung | 18 Kursreihe | 6 ProbetestsStarten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Das Servlet RequestDispatcher verwendet eine Benutzeroberfläche, um einen Quelllink zu einem anderen anzufordern. Der Requestdispatcher sendet Formulardaten an die Validierungs-Servlet-Seite. Wenn die Servlet-Seite die Informationen validiert, leitet der Anforderungs-Dispatcher den Link unter Verwendung eines Pfad- oder Zeichenfolgennamens an eine andere Servlet- oder JSP-Seite weiter. Wenn die Webseite die Informationen nicht validiert, enthält das Anforderungs-Dispatcher-Objekt eine HTML- oder JSP-Seite und zeigt eine Fehlermeldung an.
Ein RequestDispatcher-Objekt kann eine Anfrage an eine Ressource senden oder sie in eine Antwort einschließen. Die Ressource kann entweder statisch oder dynamisch sein. Es gibt drei Möglichkeiten, einen Servlet-Requestdispatcher auf der Servlet-Seite zu erstellen. Zuerst müssen wir den Stringnamen des Pfads oder des Seitenpfads verwenden.
Die folgende Syntax zeigt, wie ein Objekt des Anforderungs-Dispatchers mit einem Pfad erstellt wird.
Syntax:
RequestDispatcher requestdispatcherObject = ServletContext.getRequestDispatcher(" String file_path");
Erklärung:
Die folgende Syntax zeigt, wie ein Objekt des Anforderungs-Dispatchers erstellt wird.
Syntax:
RequestDispatcher requestdispatcherObject = ServletContext.getNamedDispatcher(" String name");
Erklärung:
Die folgende Syntax zeigt, wie man ein Objekt eines Request-Dispatchers mit einer Request-Schnittstelle erstellt.
Syntax:
RequestDispatcher requestdispatcherObject = request.getRequestDispatcher(" String file_path");
Erklärung:
Der requestdispatcher verfügt über zwei Methoden für die Servlet- und HTML-Seiten. Diese Methode leitet die Dateiquelle entweder weiter oder schließt sie in die nächste Quelle ein.
Wenn die Informationen validiert sind und die Webseite zur nächsten Servlet-Seite weitergeleitet wird, verwenden Sie die Weiterleitungsmethode.
Syntax:
Die folgende Syntax zeigt, wie die Weiterleitungsmethode verwendet wird.
void forward(ServletRequest req, ServletResponse resp) throws ServletException, IOException
Erklärung:
Beispiel:
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"); RequestDispatcher rdispatcher = req.getRequestDispatcher("/index.html"); rdispatcher.include(req, resp); } }
Wenn die Informationen nicht gültig sind, enthält die Seite dieselbe Seite mit einer Fehlermeldung.
Syntax:
Die folgende Syntax zeigt, wie die Include-Methode verwendet wird.
void include(ServletRequest req, ServletResponse resp) throws ServletException, IOException
Erklärung:
Beispiel:
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"); 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.
Das obige ist der detaillierte Inhalt vonServlet RequestDispatcher. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!