2009-07-07 6 views
0

Je souhaite détecter la présence d'une inclusion dans une application Web dans une application Web et, en particulier, la page incluse. Je veux faire ceci quand la page de menu est demandée. Une option consiste à remplacer PageContext mais il s'avère que vous ne pouvez pas y accéder pour l'envelopper. Autant que je puisse voir PageContext est la seule classe qui fournit des callbacks. Je pourrais utiliser un filtre de réponse pour détecter quand un include se produit mais cela ne semble pas possible non plus.Comment puis-je détecter quel jsp inclut une page Web utilise dans une application Web?

Des idées? Ce que je veux atteindre btw est que quand un jsp est demandé, je veux ajouter tous les inclus comme un commentaire à la fin de la jsp demandée.

Répondre

0

Certains (plus?) Serveurs d'applications réutiliseront l'objet de requête pour les inclusions dynamiques - je sais que Tomcat et Weblogic le font. Vous pouvez donc créer un filtre qui insère une liste en tant qu'attribut de requête lors du premier appel, et le met à jour lors des appels suivants, puis faire en sorte que votre page affiche le contenu de cette liste.

Mais je dois demander: quelle est la véritable raison de faire cela? Je ne peux pas imaginer le faire en code de production, donc je suppose que vous cherchez à construire une sorte de graphique de dépendance. Et si c'est le cas, je vous recommande de créer un outil d'analyse statique plutôt que dynamique. Si votre application est suffisamment complexe pour que vous ayez besoin d'une telle carte, il y a de fortes chances qu'elle contienne des inclusions conditionnelles, qui ne seront pas détectées par un outil dynamique sauf si vous pouvez exécuter tous les chemins possibles.

+0

Merci cela aurait fonctionné bien que j'ai décidé de créer un programme séparé pour déterminer les dépendances parce que vous ne pouvez pas attraper des inclusifs déclaratifs et il semble une meilleure solution en premier lieu. Je voudrais ajouter que si quelqu'un essaie jamais ce ne pas oublier d'ajouter les éléments dispatcher dans votre xml filtre web.xml comme: DependencyFilter *. jsp DEMANDE INCLURE erreur AVANT Benjamin

Questions connexes