我在使用 JSP 页面的 Web 应用程序前面配置了 CloudFront,但它不会缓存我的页面,因为没有设置 Content-Length 标头。
有没有一种方法可以让 JSP 包含 Content-Length,或者我是否需要做一些丑陋的事情,比如有一个过滤器,而不是流式传输内容以确定它的长度,然后将其流式传输到响应流(设置 ContentLength 标头第一的)。
我在使用 JSP 页面的 Web 应用程序前面配置了 CloudFront,但它不会缓存我的页面,因为没有设置 Content-Length 标头。
有没有一种方法可以让 JSP 包含 Content-Length,或者我是否需要做一些丑陋的事情,比如有一个过滤器,而不是流式传输内容以确定它的长度,然后将其流式传输到响应流(设置 ContentLength 标头第一的)。
您可以使用 JSP 的HttpServletResponse设置 Content-Length
响应对象是 javax.servlet.http.HttpServletResponse 对象的一个实例。
我们可以使用以下方法在您的 servlet 程序中设置 HTTP 响应标头。
调用setContentLength方法
设置响应中内容主体的长度 在 HTTP servlet 中,此方法设置 HTTP Content-Length 标头。
我找到了一种方法来使用适合我需要的过滤器来做到这一点,我什至首先处理 JSP 以删除空格,然后将其结果链接到 ContentLengthFilter。