我的想法是:可以直接访问success.jsp的原因可能是:session的作用域是一次会话,如果你之前登录成功的话,session就保留了username(因为代码上有一段session.setAttribute("username", username);),在servlet那里判断能不能进的逻辑是看username是不是为空,显然上一次登录成功后username不为空了,所以可以直接访问success.jsp,(意思是,如果你人为销毁这次session就不能直接访问success.jsp了)说到底是代码的逻辑不够严谨,我再想想怎么解决这个问题
自己试了下老师的代码有两个bug.
bug1,输入后缀名fclogin.jsp这类的地址,过滤不了,直接放行了,导致报404的错误。就是说只要是后缀名带login.jsp的都过滤不了。
bug2,直接访问failure.jsp时不能转到登录页面。bug2的改进是在servlet中将重定向换成转发,用request.getRequestDispatcher("/failure.jsp").forward(request, response);来代替response.sendRedirect("/failure.jsp");
bug1我还没有想到怎么改,知道的告诉我一下吧
bug1,输入后缀名fclogin.jsp这类的地址,过滤不了,直接放行了,导致报404的错误。就是说只要是后缀名带login.jsp的都过滤不了。
bug2,直接访问failure.jsp时不能转到登录页面。bug2的改进是在servlet中将重定向换成转发,用request.getRequestDispatcher("/failure.jsp").forward(request, response);来代替response.sendRedirect("/failure.jsp");
bug1我还没有想到怎么改,知道的告诉我一下吧
自己试了下老师的代码有两个bug.
bug1,输入后缀名fclogin.jsp这类的地址,过滤不了,直接放行了,导致报404的错误。就是说只要是后缀名带login.jsp的都过滤不了。
bug2,直接访问failure.jsp时不能转到登录页面。bug2的改进是在servlet中将重定向换成转发,用request.getRequestDispatcher("/failure.jsp").forward(request, response);来代替response.sendRedirect("/failure.jsp");
bug1我还没有想到怎么改,知道的告诉我一下吧
bug1,输入后缀名fclogin.jsp这类的地址,过滤不了,直接放行了,导致报404的错误。就是说只要是后缀名带login.jsp的都过滤不了。
bug2,直接访问failure.jsp时不能转到登录页面。bug2的改进是在servlet中将重定向换成转发,用request.getRequestDispatcher("/failure.jsp").forward(request, response);来代替response.sendRedirect("/failure.jsp");
bug1我还没有想到怎么改,知道的告诉我一下吧