响应已在自定义servlet转发中写入两次

时间:2014-11-13 08:04:42

标签: java tomcat servlets

我需要使用外部配置文件转发到主servlet中自定义类加载器从jar动态加载的servlet。 servlet本身未映射到web.xml中。 我已经能够加载servlet并使用反射和转换构建一个新实例:

Object o = loadedClass.newInstance() ;
HttpServlet loadedServlet = (HttpServlet) o ;

我已将servlet初始化为:

loadedServlet.init(getServletConfig()) ;

然后在主servlet中实现每个do ...方法:

loadedServlet.service(request, response) ;

除了获得两次输出的响应之外,一切都按预期工作:

hello, world!hello, world!

加载的servlet不是问题:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    PrintWriter printWriter = response.getWriter() ;
    printWriter.write("hello, world!") ;
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response) ;
}

很抱歉,如果这还不够具体。我应该看一下什么提示?

1 个答案:

答案 0 :(得分:0)

没关系,我自己找到了解决方案。 在调用servlet.service()之后调用response.reset()就是我所需要的。

loadedServlet.service(request, response) ;
response.reset() ;