确定正在运行的JSP文件

时间:2011-03-18 14:55:17

标签: java debugging jsp servlets

我在一个巨大的jsp / servlet项目上工作,它有一个模板系统,它相当复杂(很难指出导入哪些jsp文件,因为它基于所选模板和其他一些参数)。当我测试网站时使用Web浏览器我想识别哪个jsp文件正在运行而不向许多jsp文件添加调试信息。我怎么能这样做?任何诡计? 顺便说一下,我使用eclipse和tomcat。

1 个答案:

答案 0 :(得分:2)

创建一个映射如下的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);