gpt4 book ai didi

jsp - 在过滤器中执行和呈现 JSP

转载 作者:行者123 更新时间:2023-12-04 20:46:41 29 4
gpt4 key购买 nike

我有一个包含页面顶部内容的 JSP,我们称它为 header.jsp。出于性能原因,我想呈现此 JSP 并将其刷新给用户,然后再构建页面的其余部分。 (有关性能优势的解释,请参阅 here。)

我能想到的最好的方法是创建一个名为 FlushingFilter 的过滤器,让它将 JSP 的内容写入响应,然后在执行链的其余部分之前将其清除。作为概念验证,我在 FlushingFilter 中手动将 header.jsp 转换为一堆 response.getWriter().println() 调用,之后我调用 response.getWriter().flush() 然后调用 doFilter()继续过滤器链。此 println() 设置产生了所需的行为,并且页面速度快了很多。

但在启动之前,如果可能的话,我想通过以编程方式调用过滤器内部的 JSP 而不是必须使用手动 println() 调用来使其更清晰。我找到的最接近的解决方案是对 this question 的第一个答案。 ,但它涉及调用 RequestDispatcher 上的 include() 方法。据我所知,我无法访问我的过滤器内的任何 RequestDispatcher,尽管这可能只是我的 JSP/servlet 经验不足。

有谁知道我如何以编程方式调用这样的 JSP,并以字符串格式取回其输出?

最佳答案

I'm aware, I don't have access to any RequestDispatcher inside my filter, although that could just be my JSP/servlet inexperience talking

它肯定在过滤器中可用。

request.getRequestDispatcher("/WEB-INF/header.jsp").include(request, response);
response.flushBuffer();

关于jsp - 在过滤器中执行和呈现 JSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5983361/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com