Le contenu de cet article explique pourquoi Spring MVC peut répondre aux requêtes HTTP ? (Explication détaillée des raisons), il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.
De nombreux intervieweurs Java aiment poser cette question :
Dans un fichier de projet Spring MVC, le développeur n'a pas développé son propre servlet, mais a uniquement défini la fonction home de la méthode via l'annotation @RequestMapping Répondez aux requêtes adressées à /mvc/test1.
En utilisant l'url http://localhost:9098/MavenSandbox/mvc/test1 pour tester, vous pouvez observer la chaîne renvoyée par la méthode home . Derrière ça Comment ça marche ?
Nous répondons à travers nos propres recherches. Définissez un point d'arrêt sur la ligne 53 du code ci-dessus. Visitez à nouveau l'URL http://localhost:9098/MavenSandbox/mvc/test1 et le point d'arrêt est déclenché. Nous observons la pile d'appels et constatons qu'il existe un cadre de pile DispatcherServlet.doService(HttpServletRequest, HttpServletResponse). Ce Servlet se chargera d'ajouter la chaîne de retour dans la méthode annotée avec @RequestMapping au HttpServletResponse. C'est pourquoi nous pouvons voir la chaîne de retour dans le navigateur.
Voyons si HttpServletResponse dans DispatcherServlet.doService contient la chaîne de sortie attendue. Développez la variable de réponse dans le débogueur :
response->outputBuffer->bb->buff, vous pouvez le voir dans buff String tampon de tableau :
104 est le code ASCII de H, 101 est le code ASCII de e et 108 est le code ASCII de l, donc c'est prouvé La réponse contient bien la chaîne renvoyée par le développeur dans la méthode home : bonjour c'est un exemple des plus simples
Enfin, d'où vient le DispatcherServlet ?
Trouvé dans le débogueur Eclipse, il s'agit d'une Servlet standard du framework Spring :
org.springframework.web.servlet.DispatcherServlet
Cette servlet est exactement la servlet que nous avons dans le fichier web.xml du dossier WEB-INF.
La réponse à l'intervieweur est donc : le framework Spring MVC nécessite toujours un servlet, mais ce servlet est fourni par le framework Spring et n'a pas besoin d'être implémenté à plusieurs reprises par les développeurs d'applications.
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!