Cannot call sendRedirect() after the response has been committed
在做项目的时候需要登陆验证然后进行页面跳转,而在使用response重定向的时候,却报了以下错误:
Cannot call sendRedirect() after the response has been committed
转发和重定向的区别:
重定向:以前的response中存放的变量全部失效,并进入一个新的response作用域。
转发:以前的request中存放的变量不会失效,就像把两个页面拼到了一起。
重定向是两次请求,重定向后地址栏变为第二次请求的页面,但是response重定向没有rutern
而转发之后地址栏地址不变,请求还是第一次的地址
解决方法:
将重定向改为转发
resp.sendRedirect("frame.html");
↓
req.getRequestDispatcher("frame.html").forward(req, resp);