response.sendRedirect() 重定向问题
response.sendRedirect() 中的路径的规律:
假设在http://localhost:8080/smbms/jsp/frame.jsp
我们服务器的默认地址是http://localhost:8080/smbms
login.jsp 放在webapp目录中, jsp 目录外面
我们重定向到 login.jsp 页面
-
直接写login.jsp---> response.sendRedirect("login.jsp")
访问路径就会变成 http://localhost:8080/smbms/jsp/login.jsp
-
写 "/login.jsp" ---> response.sendRedirect("/login.jsp")
访问路径就会变成 http://localhost:8080/login.jsp
-
写成 response.sendRedirect(request.getContextPath()+"login.jsp")
访问路径就会变成 http://localhost:8080/smbmslogin.jsp
-
写成 response.sendRedirect(request.getContextPath()+"/login.jsp")
所以重定向时,一定要注意jsp文件在哪个目录下,否则会报出一系列的错误:
-
localhost重定向过多 --重定向页面混乱
-
404 --找不到资源