Maison  >  Article  >  Java  >  Pourquoi Spring MVC peut-il répondre aux requêtes HTTP ? (Explication détaillée des raisons)

Pourquoi Spring MVC peut-il répondre aux requêtes HTTP ? (Explication détaillée des raisons)

不言
不言avant
2018-10-22 15:14:522029parcourir

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.

Pourquoi Spring MVC peut-il répondre aux requêtes HTTP ? (Explication détaillée des raisons)

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 ?

Pourquoi Spring MVC peut-il répondre aux requêtes HTTP ? (Explication détaillée des raisons)

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.

Pourquoi Spring MVC peut-il répondre aux requêtes HTTP ? (Explication détaillée des raisons)

Voyons si HttpServletResponse dans DispatcherServlet.doService contient la chaîne de sortie attendue. Développez la variable de réponse dans le débogueur :

Pourquoi Spring MVC peut-il répondre aux requêtes HTTP ? (Explication détaillée des raisons)

response->outputBuffer->bb->buff, vous pouvez le voir dans buff String tampon de tableau :

Pourquoi Spring MVC peut-il répondre aux requêtes HTTP ? (Explication détaillée des raisons)

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

Pourquoi Spring MVC peut-il répondre aux requêtes HTTP ? (Explication détaillée des raisons)

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.

Pourquoi Spring MVC peut-il répondre aux requêtes HTTP ? (Explication détaillée des raisons)

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer