【问题标题】:How to know which jsp's were included in the final rendering of the page如何知道页面的最终渲染中包含了哪些 jsp
【发布时间】:2014-03-20 15:53:35
【问题描述】:

我目前正在维护一个包含一百万个 jsp 文件的应用程序。 有没有办法知道在给定页面的渲染中包含了哪些 jsp 文件?

Firefox 和 chrome 的元素控制台仅允许检查呈现的元素,但不提供有关 jsp 包含的信息。我正在使用 eclipse kepler(和 tomcat)进行远程调试,但我不知道可以设置哪些 jsp 页面的调试点,因为渲染的最终模板有很多条件,可以渲染数百个 jsp

【问题讨论】:

  • 你的意思是有类似嵌套的jsp:includes?
  • @developerwjk 是的,情况也是如此。此外,加载的 jsps 的嵌套“图”取决于各种条件
  • 如果您只需要在开发环境中的客户端进行视觉检查,您可以以编程方式将 html cmets 放在每个的开头和结尾,并使用某种符号来指示 jsp 的名称。然后在浏览器中查看源代码。
  • @Tap 那是一种方式。无法放入 cmets 或 log 语句的原因是因为涉及的 jsps 数量庞大。我只会猜测哪个文件需要注释(这就是我现在正在做的)

标签: eclipse jsp debugging


【解决方案1】:

你可以做的是这样的:找到一个可以对许多文件进行批量替换的文本编辑器(例如TextPad)并使用正则表达式替换功能将<jsp:include page="\([^"]+?\)" />的每个出现替换为out.print("<br/>Including \1<br/>"); <jsp:include page="\1" />正则表达式语法可以因工具而异,如果您使用参数等,您将有更多案例要替换,但这是基本思想。请务必先备份所有文件。

【讨论】:

  • 您能解释一下 \1 在这种情况下是如何工作的吗?
  • 在此语法中,\(\) 表示捕获标记,\1 是捕获的内容。所以 \1 代表正则表达式替换从 page="whatever.jsp" 的引号中提取的页面名称
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-09
  • 2020-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多