在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。但是,我想要在浏览器中看到的同一页面。
对于凌乱的帖子抱歉,询问您需要哪些信息,我会相应更新我的帖子。
答案 0 :(得分:2)
如果您在编写完成后尝试获取响应正文,则需要使用自定义HttpServletResponse
包装器来跟踪直接写入OutputStream
的内容或使用Writer
。
在Filter
返回后,您将在servlet chain.doFilter(request, yourResponseWrapper)
中执行此操作。可以找到一个简单的例子here。