Захват сгенерированного динамического контента на стороне сервера
ичок в сервлете и читаю текст о фильтрах и обертках. Я могу понять фильтры, но запутался в обертках. В книге автор приводит пример:
Если нет обертки:
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
String name = request.getParameter("name").trim();
try {
chain.doFilter(request, response);
PrintWriter out = response.getWriter();
if (name.length() == 0) {
out.println("Some message");
out.println("</body>");
out.println("</html>");
out.close();
}
} catch (Throwable t) {
}
}
В случае обертки:
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
String name = request.getParameter("name").trim();
HttpServletResponse httpRes = (HttpServletResponse) response;
HttpServletResponseWrapper resWrapper = new HttpServletResponseWrapper(httpRes);
try {
chain.doFilter(request, response);
PrintWriter out = resWrapper.getWriter(); // why dont we just use response.getWriter();
if (name.length() == 0) {
out.println("<h3>Some message");
out.println("</body>");
out.println("</html>");
out.close();
}
} catch (Throwable t) {
}
}
Зачем намHttpServletResponseWrapper
в то время как мы можем сделать то же самое сServletResponse
в случае 1? Может ли кто-нибудь дать мне четкий пример, который мы ДОЛЖНЫ использоватьHttpServletResponseWrapper
вместоServletResponse
? Я пытался гуглить, но не нашел удачи.