【发布时间】:2023-03-05 00:54:01
【问题描述】:
我有一个过滤器,它处理生成的 HTML 并重写某些元素。例如,它将类属性添加到某些锚点。最后,它将处理后的 HTML 写入响应(HttpServletResponseWrapper 的子类)。自然,这意味着处理后的 HTML 在通过过滤器后的长度不同。
我可以看到两种解决方法。
一种是遍历 HTML,使用 StringBuilder 构建处理后的 HTML,并在所有过滤完成后将处理后的 HTML 写入响应。 另一种是遍历 HTML,但在处理完每个元素后立即将其写入响应。
哪种方法更适合此操作,或者是否有其他更好的选择?我希望主要减少临时内存使用量。
【问题讨论】:
-
你确定这是你想要在服务器端做的事情吗?解析 html 可能会变得丑陋。
-
是的——也许我给出的例子很糟糕。它还重写了资源的 URL,所以我不能在客户端上这样做。是的,过滤器很丑。
标签: java response servlet-filters