Java 发送前编辑HTML响应

Java 发送前编辑HTML响应,java,http,response,Java,Http,Response,我有一个Web服务,它将接收一个请求,用java执行一个操作,然后作为标准返回一个响应 但是,希望得到响应的客户端希望HTTP响应在消息的末尾附加两个字符,这无关紧要,目前只是\n\n,并且由于我不知道的原因-它是头和正文之外的遗留代码 目前,它是通过首先将HTTP消息发送到代理来完成的,代理会附加字符并转发消息,但是有人知道一种不用代理就可以在java中完成的方法吗 也就是说,我可以访问完整的HTML响应以在发送之前对其进行编辑吗 编辑:客户端不是浏览器,而是发送SOAP消息的应用程序 假设这

我有一个Web服务,它将接收一个请求,用java执行一个操作,然后作为标准返回一个响应

但是,希望得到响应的客户端希望HTTP响应在消息的末尾附加两个字符,这无关紧要,目前只是\n\n,并且由于我不知道的原因-它是头和正文之外的遗留代码

目前,它是通过首先将HTTP消息发送到代理来完成的,代理会附加字符并转发消息,但是有人知道一种不用代理就可以在java中完成的方法吗

也就是说,我可以访问完整的HTML响应以在发送之前对其进行编辑吗


编辑:客户端不是浏览器,而是发送SOAP消息的应用程序

假设这是按照servlet规范作为Web服务器运行的,您可以使用过滤器

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletResponse;

@WebFilter(asyncSupported = true, filterName = "LegacyAppender", urlPatterns = { "/paths/tofile" })
public class AppendFilter implements Filter {

    @Override
    public void destroy() {

    }

    @Override
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
        chain.doFilter(req, resp);
        HttpServletResponse hsr = (HttpServletResponse) resp;
        hsr.getWriter().print("\r\n");
    }

    @Override
    public void init(FilterConfig arg0) throws ServletException {

    }
}

我们最终使用了ApacheCXF拦截器,因为我们最终只需要完整的SOAP消息。通过添加一个传出拦截器,将SoapMessage内容转换为字符串,添加两个字符并再次设置内容,我们的问题得到了解决


无论如何谢谢你

是的,你能做到。这取决于您如何向浏览器发送响应。响应不会发送到浏览器,而是作为SOAP消息从应用程序发送到服务并返回?您是否在servlet规范中运行此功能?公猫如果是这样的话,你可以用一个过滤器来完成它。@Krroae27目前还没有,但是有一些变化正在进行中,所以你可以扩展吗?谢谢我添加了一个答案,因为它是一大块代码。