指定web默认首页,导致访问路径的问题
今天写了一个登陆页面,登陆成功跳转时,url中的路径不对
这是目录结构
|-web
|---login
|-----login.jsp
|---success
|-----success.jsp
这是web.xml中的默认首页设置
<welcome-file-list>
<welcome-file>/login/login.jsp</welcome-file>
</welcome-file-list>
这是跳转部分的java代码
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String uname=req.getParameter("uname");
String upassword=req.getParameter("upassword");
if(uname.equals("a")&&upassword.equals("1")){
resp.sendRedirect("../success/success.jsp");
}
}
将相对路径改为这样就可以成功跳转
success/success.jsp
观察首页的url
http://localhost:8080/login/
恍然大悟,虽然显示首页,但是一直在根目录下,自己把自己绕晕了。
得出结论:
指定web项目首页后,无论这个jsp在什么位置,其相对位置都是项目根目录(通过url判断),因此跳转页面时的相对路径就是根目录,而不是jsp实际所在位置