最近在学习jsp,根据视频编写用户管理模块时,具有如下的需求:“当登录的用户为空时,直接跳转到登录界面”,方法是:使用filter对请求进行过滤,当用户为空,重定位到LoginInput.jsp界面。
但是当编写完成之后报出的错误是:“Cannot call sendRedirect() after the response has been committed“,尝试了多种解决方法,初始定位应该是“url-pattern”的问题,修改url-pattern为“/*”,发现tomcat一直在死循环,程序无法响应,
但是当值为“/user/*”时,执行没有问题,但是filter不起作用。
接着百度查之,有人提出应该将login.jsp和loginInput.jsp放在/user之外,尝试按照其方法解决,将redirect的对应的url改掉,还是不起作用,将web.xml里的“url-pattern”修改为“/user/*”问题解决;
但是运行一会发现还在报错,最后发现应该是在执行response.sndRedirect();之后加上return。
至此,这个问题解决。