关于重定向与请求转发中的路径问题

简介: 关于重定向与请求转发中的路径问题

路径问题


假设当前 web 应用地址为 localhost:8080/test。

  • 请求转发:/代表的是当前 web 站点的根目录,eg:localhost:8080/
  • 重定向:/代表的是当前 web 应用的根目录,eg:localhost:8080/test


举例


假设当前 web 应用地址为 localhost:8080/test,需要跳转到 webapp下的 login.jsp 页面。


正确写法


  • 请求转发:


    req.getRequestDispatcher(“login.jsp”).forward(req, resp);

    req.getRequestDispatcher("/login.jsp").forward(req, resp);

    req.getRequestDispatcher("./login.jsp").forward(req, resp);


  • 重定向:

     resp.sendRedirect(“login.jsp”);

     resp.sendRedirect("./login.jsp");

     resp.sendRedirect(req.getContextPath() + “/login.jsp”);


错误写法


  • 重定向:
  • resp.sendRedirect("/login.jsp");

    错误原因: 因为 / 代表的是当前 web 站点的根目录,即 localhost:8080/,如果像上面这样写,最终响应回去的地址为 localhost:8080/login.jsp,login.jsp 在 test/login.jsp 下,所以找不到资源,最终报 404 错误。


相关文章
|
8月前
|
前端开发
请求转发和重定向的区别
请求转发和重定向的区别
106 0
|
8月前
springmvc请求转发和重定向的四种跳转方式
springmvc请求转发和重定向的四种跳转方式
重定向和请求转发的区别
重定向和请求转发的区别
110 0
|
应用服务中间件
重定向(重要)!!
重定向(重要)!!
187 1
重定向(重要)!!
|
存储 C++ iOS开发
C++中的I/O重定向
在 C 中,我们可以使用函数freopen()将现有的 FILE 指针重定向到另一个流。freopen() 的原型为
88 0
|
XML 数据格式
Javaweb 请求转发和请求重定向
1.请求转发和请求重定向区别 请求转发和请求重定向主要区别,包含以下 5 点: 定义不同 请求方不同 数据共享不同 最终 URL 地址不同 代码实现不同 定义不同:🙌
137 0
Javaweb 请求转发和请求重定向
SpringMVC 请求转发和重定向
SpringMVC 实现请求转发和重定向也很方便: 实现请求转发: 🙌
78 0
SpringMVC 请求转发和重定向
|
前端开发
请求转发与请求重定向
请求转发与请求重定向
292 0
请求转发与请求重定向
|
前端开发 Java
重定向与请求转发
介绍JavaWeb中的实现页面跳转的同卵双胞胎兄弟—重定向与请求转发以及代码实现流程
重定向与请求转发
45请求转发和请求重定向区别
45请求转发和请求重定向区别
94 0
45请求转发和请求重定向区别