转发后获取jsp内容

时间:2013-10-01 19:37:01

标签: java jsp servlets

在servlet转发之后,如何获取jsp页面的内容。在他们那一刻我正在尝试以下方法:

request.getRequestDispatcher(DESTINATION_PAGE).forward(request, response);
URL teamsURL = new URL(request.getScheme(), request.getServerName(), request.getServerPort(), request.getContextPath() + DESTINATION_PAGE);
URLConnection teamsCon = teamsURL.openConnection();
String fileName = request.getServletContext().getRealPath("/") + System.currentTimeMillis() + ".html";
System.out.println(fileName);
try (BufferedReader in = new BufferedReader(new InputStreamReader(teamsCon.getInputStream()));
     PrintWriter out = new PrintWriter(fileName)) {
    String inputLine = null;
    while ((inputLine = in.readLine()) != null) {
        out.println(inputLine);
    }
}

我得到了带有空div的html。但是,我想要在浏览器中看到的同一页面。

对于凌乱的帖子抱歉,询问您需要哪些信息,我会相应更新我的帖子。

1 个答案:

答案 0 :(得分:2)

如果您在编写完成后尝试获取响应正文,则需要使用自定义HttpServletResponse包装器来跟踪直接写入OutputStream的内容或使用Writer

Filter返回后,您将在servlet chain.doFilter(request, yourResponseWrapper)中执行此操作。可以找到一个简单的例子here