我有一个包含页面顶部内容的 JSP,我们将其称为 header.jsp。出于性能原因,我想在构建页面的其余部分之前呈现此 JSP 并将其刷新给用户。 (看here http://developer.yahoo.com/performance/rules.html#flush以获得性能优势的解释。)
我能想到的最好方法是创建一个名为 FlushingFilter 的过滤器,并让它将 JSP 的内容写入响应,然后在执行链的其余部分之前将其刷新。作为概念验证,我手动将 header.jsp 转换为 FlushingFilter 内的一堆 response.getWriter().println() 调用,之后调用 response.getWriter().flush() ,然后调用 doFilter()继续过滤器链。这个 println() 设置产生了所需的行为,并且页面速度要快得多。
但在启动之前,如果可能的话,我希望通过以编程方式调用过滤器内部的 JSP 来使其更清晰,而不必手动调用 println() 。我发现的最接近的解决方案是第一个答案这个问题 https://stackoverflow.com/questions/1075827/execute-jsp-directly-from-java,但它涉及调用 RequestDispatcher 上的 include() 方法。据我所知,我无法访问过滤器内的任何 RequestDispatcher,尽管这可能只是我的 JSP/servlet 经验不足所致。
有谁知道我如何以编程方式调用这样的 JSP,并以字符串格式返回其输出?
我知道,我无法访问过滤器内的任何 RequestDispatcher,尽管这可能只是我的 JSP/servlet 经验不足所致
它肯定可以在过滤器中使用。
request.getRequestDispatcher("/WEB-INF/header.jsp").include(request, response);
response.flushBuffer();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)