0

基本上,我们想创建一个标签库,可以将请求执行转发到另一个页面,类似于<jsp:forward />. 我们如何防止 JSP 页面的其余部分从 taglib 中执行?

4

3 回答 3

0

您不应该在 taglib 中执行此操作。而是在将任何位发送到响应之前在ServletFilter中执行此操作。否则你可能会IllegalStateException: response already committed遇到麻烦。

于 2009-12-14T11:05:23.690 回答
0

对我来说,以下几行效果很好:

String url = "http://google.com";

response.reset();
response.setStatus(HttpServletResponse.SC_TEMPORARY_REDIRECT);
response.setHeader("Location", url);
response.getWriter().close();
response.getWriter().flush();
于 2016-02-18T15:21:23.330 回答
-1

如果您不想在将控制权传递给另一个页面后继续处理原始页面,则最好使用重定向而不是转发。

response.sendRedirect("foo.jsp");

这将重定向到新页面并停止处理旧页面。

但是 - 重定向仅在您尚未向响应正文中写入任何内容(即未将任何数据发送回客户端)时才可用。

于 2009-12-14T10:09:02.307 回答