2010-11-29 27 views
0

Disons que j'ai une demande écrite avec le cadre de printemps, et je veux savoir, quand je tapé:
http://localhost:8080/test
lien , ce tomcat fera pour générer une réponse à cette demande?
Devrait-il passer tous les filtres en premier?Que fera Tomcat après avoir tapé le lien racine d'une application de ressort?

Et après avoir tapé l'URL, il est toujours dirigé vers un autre lien comme http://localhost:8080/test/login, où cette redirection a-t-elle été implémentée?

S'il est difficile de m'expliquer, alors s'il vous plaît, recommandez-moi un livre pour cela, merci beaucoup!

Répondre

1

En règle générale, Tomcat enverra la requête à l'instance DispatcherServlet appropriée, telle que configurée dans votre fichier "web.xml". Ceci est décrit dans le Spring documentation.

Devrait-il passer tous les filtres en premier?

Oui. Les filtres sont appliqués avant (et après) les demandes sont passées au Servlet. Et après avoir tapé l'URL, il est toujours dirigé vers un autre lien comme http://localhost:8080/test/login, où cette redirection a-t-elle été implémentée?

Cela dépend de la manière dont vous avez implémenté la sécurité. Cela pourrait être fait au niveau de Tomcat (je pense), en utilisant SpringSecurity, ou une logique câblée dans votre contrôleur Spring MVC, ou dans une simple servlet, filtre ou valve (spécifique à Tomcat).

Si vous recherchez des conseils sur la meilleure façon d'implémenter la connexion/sécurité, je vous recommande d'utiliser SpringSecurity. SpringSecurity fonctionne à l'aide de filtres.

S'il est difficile de m'expliquer, alors recommandez-moi un livre pour cela, merci beaucoup!

La documentation en ligne Spring et SpringSecurity est aussi bon endroit que tout. Cette documentation a tendance à ne pas décrire exactement comment les demandes sont traitées dans le contexte d'un conteneur Web particulier, mais vous devriez être capable de comprendre les détails à partir des documents Tomcat et de la spécification Servlet.

+0

Où est le code que DispatcherServlet va faire avant de rediriger vers/test/login? – MemoryLeak

+0

Comme je l'ai dit, cela dépend de la manière dont vous avez implémenté votre sécurité. Il peut s'agir de vannes ou de filtres, ou du code du contrôleur que DispatcherServlet appelle. –

0

S'il existe un contrôleur mappé à cette URL, le DispatcherServlet de Spring lui envoie la demande pour la gestion.

Si le contrôleur détermine que la vue suivante doit correspondre à/test/login, il le spécifiera lorsqu'il définira ModelAndView. Qu'est-ce que Tomcat va faire pour générer une réponse à cette demande?

+0

Où est le code que DispatcherServlet va faire avant de rediriger vers/test/login? – MemoryLeak

+0

Vous ne toucheriez pas le DispatcherServlet. Vous mettez la logique avant de rediriger dans le contrôleur pour cette URL. – duffymo