【发布时间】:2011-08-24 09:52:29
【问题描述】:
我有一个包含页面顶部内容的 JSP,我们称之为 header.jsp。出于性能原因,我想在构建页面的其余部分之前呈现此 JSP 并将其刷新给用户。 (有关性能优势的说明,请参阅 here。)
我能想到的最好方法是创建一个名为 FlushingFilter 的过滤器,让它将 JSP 的内容写入响应,然后在执行链的其余部分之前将其刷新。作为概念验证,我手动将 header.jsp 转换为 FlushingFilter 中的一组 response.getWriter().println() 调用,然后调用 response.getWriter().flush() 和 doFilter()继续过滤器链。此 println() 设置会产生所需的行为,并且页面速度要快得多。
但是在启动之前,如果可能的话,我想通过编程调用过滤器内部的 JSP 来使其更简洁,而不必使用手动 println() 调用。我找到的最接近的解决方案是this question 的第一个答案,但它涉及调用RequestDispatcher 上的include() 方法。据我所知,我无法访问过滤器中的任何 RequestDispatcher,尽管这可能只是我的 JSP/servlet 缺乏经验。
有谁知道我如何以编程方式调用这样的 JSP,并以字符串格式取回其输出?
【问题讨论】:
标签: jsp servlets servlet-filters