下面的代码为什么无法重定向呀
login.jsp页面路径为 ProjectRoot/web-inf/jsp/login.jsp
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.sendRedirect(request.getServletContext().getContextPath()+"/jsp/login.jsp");
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
WEB-INF目录应该是隐藏的啊,不能暴露给访问者
重定向属相对路径跳转,绝对路径会导致路径找不到,
重定向一般对其他网站的地址是使用绝对路径,自己的网站地址使用相对路径http://www.cnblogs.com/linson...
WEB-INF目录下的资源通过response.sendRedirect是跳不到的吧?你可以试试request转发。另外,路径什么的试试就行了,不是问题
request.getServletContext().getContextPath()获取的是项目部署名,重定向默认是以项目部署名为起点,所有你只需要将重定向配置调整一下即可,改成如下:
response.sendRedirect("WEB-INF/jsp/login.jsp");
【纠正】
重定向不能直接访问WEB-INF下的资源,两种做法:
1、将login.jsp移到WEB-INF目录外,但仍保持在WebRoot目录下,比如WebRoot/jsp/login.jsp
2、重定向至一个URL资源,该URL指向服务器后台的一个方法,由该方法跳转访问WEB-INF/jsp/login.jsp,具体代码如下:(推荐)