java - 识别哪些 JSP 文件正在运行

标签 java debugging jsp servlets

我从事一个巨大的 jsp/servlet 项目,它有一个模板系统,并且相当复杂(很难指出导入了哪些 jsp 文件,因为它基于所选的模板和一些其他参数)。当我测试站点时使用网络浏览器,我想确定哪个 jsp 文件正在运行,而不向大量 jsp 文件添加调试信息。我怎么能这么做呢?有什么窍门吗? 顺便说一下我用的是eclipse和tomcat。

最佳答案

创建 Filter映射如下

<filter-mapping>
    <filter-name>yourFilterName</filter-name>
    <url-pattern>*.jsp</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>INCLUDE</dispatcher>
</filter-mapping>

并在 doFilter() 方法中大致执行以下工作。

String requestURI = ((HttpServletRequest) request).getRequestURI();
String forwardURI = (String) request.getAttribute(RequestDispatcher.FORWARD_REQUEST_URI);
String includeURI = (String) request.getAttribute(RequestDispatcher.INCLUDE_REQUEST_URI);

if (includeURI != null) {
    System.out.println("JSP included: " + includeURI);
} else if (forwardURI != null) {
    System.out.println("JSP forwarded: " + requestURI); // No, not forwardURI!
} else {
    System.out.println("JSP requested: " + requestURI);
}

chain.doFilter(request, response);

关于java - 识别哪些 JSP 文件正在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5353751/

相关文章:

java - 如何替换数组中字符串的一部分?

Java 11 根据枚举值选择一种方法应用于流

java - 检查纬度和经度是否在一个圆圈内

javascript - 为什么 firebug 调试有时有效有时无效?

c++ - 为什么 Valgrind 不检测未初始化变量的使用?

java - 忽略 Java 流中的 null

debugging - 在自定义 Ansible 模块中是否有调试日志记录的标准/首选方法。

javascript - 从 JSTL 代码在 javascript 中设置数组值

java - 未配置嵌入式 jetty web 服务器 JSP 支持

java - 从 JSP 标记文件访问托管 Bean