我想检测何时在Web应用程序中出现jsp中的包含,特别是包含哪个页面。我想在请求菜单页面时执行此操作。一种选择是覆盖PageContext但事实证明你不能在任何地方访问它来包装它。据我所知,PageContext是唯一提供包含回调的类。我可能会使用响应过滤器来检测包含何时发生但看起来不可能。
有什么想法吗?
我想要实现的目标是,当请求jsp时,我想在所请求的jsp的末尾附加所有包含作为注释。
答案 0 :(得分:0)
一些(大多数?)app-servers将重用请求对象用于动态包含 - 我知道Tomcat和Weblogic。因此,您可以创建一个过滤器,在第一次调用时将List作为请求属性插入,并在后续调用中更新它,然后让您的页面转储此列表的内容。
但我不得不问:这样做的真正原因是什么?我无法想象在生产代码中这样做,所以我猜你正在寻找构建某种依赖图。如果是这种情况,我建议创建静态分析工具而不是动态。如果您的应用程序足够复杂以至于需要这样的映射,那么它将具有条件包含的可能性很好,除非您可以执行所有可能的路径(并且不太可能),否则动态工具将无法检测到这些包含。