项目场景:
Javaweb项目 Servlet3.0+Tomcat8.0
问题描述:
项目添加Filter过滤器之后,访问过滤的网页就会报Cannot forward after response has been committed,通过一番搜索,说是因为两次跳转导致的,需要在第一次跳转后进行return;(return null),发现是Filter里面的forward转发没有
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request1 = (HttpServletRequest)request;
HttpSession session = request1.getSession();
Object user = session.getAttribute("user");
if(user==null){
request1.getRequestDispatcher("/WEB-INF/errorpage.jsp").forward(request1, response);
return;
}
chain.doFilter(request1, response);
return;
}
解决方案:
只需要在这句后面加上return;就不会报错了
request1.getRequestDispatcher("/WEB-INF/errorpage.jsp").forward(request1, response);
return;
chain.doFilter(request1, response);
return;