2011-10-04 13 views
3

J'écris un filtre de servlet qui mesure la requête http et les temps de réponse.Filtres de servlet - Identification de la servlet/JSP appelée

Le filtre est déployé sur le serveur Web Apache Tomcat 7. Je me demandais s'il y avait un moyen d'identifier quelle Servlet ou JSP est appelée sur chaque requête autre que l'analyse de l'URI de la requête (et par exemple, vérifier le suffixe .jsp)?

Répondre

4

Non sans modifier les servlets/JSP afin qu'ils définissent un attribut de requête spécifique que vous obtenez à son tour après l'appel FilterChain#doFilter().

Je peux seulement donner l'indice que HttpServletRequest#getServletPath() est probablement un moyen plus agréable d'obtenir la ressource réellement demandée. Il le fait de manière indépendante du contexte afin que vous n'ayez pas besoin de manipuler getRequestURI() pour couper le chemin du contexte. En outre, s'il existe une servlet qui est mappée par exemple sur /foo/*, cela renvoie uniquement /foo au lieu de /foo/bar/baz. Juste au cas où vous êtes intéressé. Puisque vous utilisez Tomcat, vous pouvez être intéressé par son builtin Access Log Valve qui vous offre un moyen de journaliser les requêtes de la même manière que le célèbre HTTPD Apache, y compris les temps. Ceci n'est bien sûr intéressant que si vous avez un contrôle d'administration complet sur l'instance Tomcat.

Questions connexes