基本上,我们想要创建一个可以将请求执行转发到另一个页面的taglib,类似于<jsp:forward />
。我们如何防止JSP页面的其余部分在taglib中执行?
答案 0 :(得分:0)
你不应该在taglib中这样做。而是在将任何位发送到响应之前,在Servlet或Filter中执行此操作。否则你可能会陷入IllegalStateException: response already committed
麻烦。
答案 1 :(得分:0)
对我来说,以下几行非常有效:
String url = "http://google.com";
response.reset();
response.setStatus(HttpServletResponse.SC_TEMPORARY_REDIRECT);
response.setHeader("Location", url);
response.getWriter().close();
response.getWriter().flush();
答案 2 :(得分:-1)
如果您不希望在将控制权传递给另一个人之后继续处理原始页面,那么最好使用重定向而不是转发。
response.sendRedirect("foo.jsp");
这将重定向到新页面并停止处理旧页面。
但是 - 重定向仅在您尚未向响应主体写入任何内容时才可用(即未将任何数据发送回客户端)。