我的网络应用程序中有以下代码片段:
if (request.getParameter("user").equals("luke")||session == null && !(uri.endsWith("html") || uri.endsWith("LoginServlet"))) {
System.out.println("<<<----------denied------------->>>>");
pw.println("zzzzzzzzzz");
this.context.log("Unauthorized access request");
pw.flush();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//res.sendRedirect("login.html");
req.getRequestDispatcher("login.html").include(request,response);
}
当我在 Forward() 之前使用 flush 时,它会抛出IllegalStateException
(因为响应是在我们调用 flush 的那一刻发送的,后来我们尝试使用 forward 重新发送响应)但是即使我在rd.include()
. 为什么它不在这里抛出异常?
TIA