User user = (User) request.getSession().getAttribute("user");
if(user==null){
request.setAttribute("message", "请先登陆!!,3秒后自动跳转!");
request.getRequestDispatcher("/message.jsp").forward(request, response);
try {
Thread.sleep(3000);
response.sendRedirect("/client/register.jsp");
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
之后就抛出异常了,如下:
java.lang.IllegalStateException: Cannot call sendRedirect() after the response has been committed
这样写当然不行,因为你已经forword,请求转走了,forword一下代码都不会执行的。如果要实现楼主这种问题,应该可以在forword后Jsp页面内嵌java脚本,写response.sendRedirect("/client/register.jsp");但这样可能得到结果会是当前JSP页面一闪而过。。所以建议楼主可以采用Refrese方式,及
在servlet中设置响应头 setHandler,来达到显示信息,3秒后跳转。。
这样写当然不行,因为你已经forword,请求转走了,forword一下代码都不会执行的。如果要实现楼主这种问题,应该可以在forword后Jsp页面内嵌java脚本,写response.sendRedirect("/client/register.jsp");但这样可能得到结果会是当前JSP页面一闪而过。。所以建议楼主可以采用Refrese方式,及
在servlet中设置响应头 setHandler,来达到显示信息,3秒后跳转。。