Maison >Java >javaDidacticiel >Dispatcher de requêtes de servlet
L'interface RequestDispatcher permet d'acheminer la requête vers une autre ressource, qui peut être HTML, Servlet ou JSP. Cette interface peut également être utilisée pour incorporer le contenu d'une ressource supplémentaire. C'est l'une des méthodes de coopération de servlets. L'interface RequestDispatcher fait partie de Java. Paquet de servlets. Grâce à cette interface, la servlet renvoie un objet après avoir reçu une requête.
PUBLICITÉ Cours populaire dans cette catégorie SERVLET JAVA - Spécialisation | 18 séries de cours | 6 tests simulésCommencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
Le servlet RequestDispatcher utilise une interface utilisateur pour demander un lien source vers un autre. Le requestdispatcher envoie les données du formulaire à la page du servlet de validation. Si la page du servlet valide les informations, le répartiteur de requêtes transmet le lien vers un autre servlet ou une autre page JSP à l'aide d'un chemin ou d'un nom de chaîne. Si la page Web ne valide pas les informations, l'objet répartiteur de requête inclut une page HTML ou JSP et affiche un message d'erreur.
Un objet RequestDispatcher peut envoyer une requête à une ressource ou l'inclure dans une réponse. La ressource peut être statique ou dynamique. Il existe trois façons de créer un répartiteur de requêtes de servlet sur la page du servlet. Tout d'abord, nous devons utiliser le nom de chaîne du chemin ou du chemin de la page.
La syntaxe suivante montre comment créer un objet du répartiteur de requêtes avec un chemin.
Syntaxe :
RequestDispatcher requestdispatcherObject = ServletContext.getRequestDispatcher(" String file_path");
Explication :
La syntaxe suivante montre comment créer un objet du répartiteur de requêtes.
Syntaxe :
RequestDispatcher requestdispatcherObject = ServletContext.getNamedDispatcher(" String name");
Explication :
La syntaxe suivante montre comment créer un objet d'un répartiteur de requêtes avec une interface de requête.
Syntaxe :
RequestDispatcher requestdispatcherObject = request.getRequestDispatcher(" String file_path");
Explication :
Le requestdispatcher dispose de deux méthodes pour les pages servlet et HTML. Cette méthode transfère ou inclut la source du fichier vers la source suivante.
Si les informations sont validées et que la page Web est transférée vers la page de servlet suivante, utilisez la méthode forward.
Syntaxe :
La syntaxe suivante montre comment utiliser la méthode forward.
void forward(ServletRequest req, ServletResponse resp) throws ServletException, IOException
Explication :
Exemple :
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); } }
Si les informations ne sont pas validées, alors la page inclut la même page avec un message d'erreur.
Syntaxe :
La syntaxe suivante montre comment utiliser la méthode include.
void include(ServletRequest req, ServletResponse resp) throws ServletException, IOException
Explication :
Exemple :
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.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!