首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RequestDispatcher.include只工作一次

问RequestDispatcher.include只工作一次
EN

Stack Overflow用户
提问于 2015-02-26 17:00:47
回答 1查看 730关注 0票数 0

我试图使用以下方法使用RequestDispatcher.include()输出JSP页面的呈现:

代码语言:javascript
复制
public static String readTemplate(HttpServletRequest request, HttpServletResponse response, String template) {
    HttpServletResponseWrapper responseWrapper = new HttpServletResponseWrapper(response) {
        private final StringWriter sw = new StringWriter();

        @Override
        public PrintWriter getWriter() throws IOException {
            return new PrintWriter(sw);
        }

        @Override
        public String toString() {
            return sw.toString();
        }
    };

    String templateFile = "/templates/" + template + ".jsp";
    logger.log(Level.INFO, "Reading template {0} ...", templateFile);

    try {
        request.getRequestDispatcher(templateFile).include(request, responseWrapper);

    } catch (ServletException | IOException | IllegalStateException e) {
        logger.log(Level.SEVERE, e.getMessage());
    }

    logger.log(Level.INFO, "Completed reading template {0}", templateFile);

    // retrieve HTML from response
    return responseWrapper.toString();
}

该方法是我使用Tomcat8运行的servlet的一部分。这在第一次运行时非常好,但是挂在包含调用第二次运行时(即,如果我在浏览器上单击refresh )。

我已经验证过调度员不是空的。

这就是我从catalina.log中看到的(为您的审查而清理)。

第一轮:

代码语言:javascript
复制
26-Feb-2015 17:41:17.921 INFO [http-nio-8081-exec-2] ism.Reports.readTemplate Reading template /templates/INCIDENT_REPORT.jsp ...
26-Feb-2015 17:41:18.046 INFO [http-nio-8081-exec-2] ism.Reports.readTemplate Completed reading template /templates/INCIDENT_REPORT.jsp

第二次运行(响应永不返回,即浏览器总是加载页面):

代码语言:javascript
复制
26-Feb-2015 17:41:26.327 INFO [http-nio-8081-exec-8] ism.Reports.readTemplate Reading template /templates/INCIDENT_REPORT.jsp ...

在我重新启动Tomcat之前,这种情况不会改变。

有人能解释我做错了什么或者至少如何调试吗?谢谢!

编辑1:忘了说这个方法是静态的,但是我也试着让它不是静态的没有任何区别

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-27 13:44:24

上面的代码起作用了,我意识到问题出在哪里。包含的JSP页面打开了许多MySQL连接,但只有一个被关闭。因此,第二个请求是在执行任务之前等待释放MYSQL资源。很抱歉,直到现在我才注意到这一点,而且我一开始甚至没有提到MySQL连接。我想这里没有收到回复会导致我在JSP文件本身上找到解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28748334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档