Web アプリに次のコード スニペットがあります。
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()
。ここで例外をスローしないのはなぜですか?
ティア