Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检测web应用程序中包含网页的jsp_Jsp_Tomcat_Web Applications - Fatal编程技术网

如何检测web应用程序中包含网页的jsp

如何检测web应用程序中包含网页的jsp,jsp,tomcat,web-applications,Jsp,Tomcat,Web Applications,我想检测web应用程序中何时出现jsp中的包含,特别是包含哪个页面。我想在请求菜单页面时执行此操作。一种选择是覆盖PageContext,但结果是您无法在任何地方访问它来包装它。据我所知,PageContext是唯一提供包含回调的类。我可能会使用响应过滤器来检测何时发生包含,但看起来也不可能 有什么想法吗 顺便说一句,我想实现的是,当请求一个jsp时,我想在请求的jsp末尾附加所有包含作为注释。一些(大多数?)应用服务器将重用请求对象作为动态包含——我知道Tomcat和Weblogic是这样做的

我想检测web应用程序中何时出现jsp中的包含,特别是包含哪个页面。我想在请求菜单页面时执行此操作。一种选择是覆盖PageContext,但结果是您无法在任何地方访问它来包装它。据我所知,PageContext是唯一提供包含回调的类。我可能会使用响应过滤器来检测何时发生包含,但看起来也不可能

有什么想法吗

顺便说一句,我想实现的是,当请求一个jsp时,我想在请求的jsp末尾附加所有包含作为注释。

一些(大多数?)应用服务器将重用请求对象作为动态包含——我知道Tomcat和Weblogic是这样做的。因此,您可以创建一个筛选器,在第一次调用时将列表作为请求属性插入,并在后续调用时更新它,然后让页面转储此列表的内容


但我必须问:这样做的真正原因是什么?我无法想象在生产代码中这样做,所以我猜您正在寻找构建某种依赖关系图。如果是这样,我建议创建一个静态分析工具,而不是动态分析工具。如果您的应用程序非常复杂,需要这样一个映射,那么很可能它会有条件包含,除非您可以执行所有可能的路径,否则动态工具不会检测到条件包含(这是不可能的).

谢谢。虽然我决定创建一个单独的程序来确定依赖项,但这会起作用,因为您无法捕获declaritive includes,而且从一开始它似乎是一个更好的解决方案。我想补充一点,如果有人尝试这样做,不要忘记在web.xml中的filter xml中添加dispatcher元素,比如:DependencyFilter*.jsp REQUEST INCLUDE ERROR FORWARD