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

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

路径问题


假设当前 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 错误。


相关文章
|
6月前
|
前端开发
请求转发和重定向的区别
请求转发和重定向的区别
86 0
|
6月前
springmvc请求转发和重定向的四种跳转方式
springmvc请求转发和重定向的四种跳转方式
SpringMVC 如何设定重定向和转发的?
SpringMVC 如何设定重定向和转发的?
62 0
重定向和请求转发的区别
重定向和请求转发的区别
95 0
|
存储 Java 应用服务中间件
一文了解转发与重定向
一文了解转发与重定向
108 0
QGS
|
容器
浅谈SpringMVC之转发与重定向
SpringMVC转发与重定向的使用 转发:由web服务器跳转(可携带数据集合)。 重定向:由浏览器跳转(跳转页面)。
QGS
119 0
|
XML 数据格式
Javaweb 请求转发和请求重定向
1.请求转发和请求重定向区别 请求转发和请求重定向主要区别,包含以下 5 点: 定义不同 请求方不同 数据共享不同 最终 URL 地址不同 代码实现不同 定义不同:🙌
129 0
Javaweb 请求转发和请求重定向
SpringMVC 请求转发和重定向
SpringMVC 实现请求转发和重定向也很方便: 实现请求转发: 🙌
72 0
SpringMVC 请求转发和重定向
|
前端开发
请求转发与请求重定向
请求转发与请求重定向
268 0
请求转发与请求重定向
|
Java PHP
路由重定向
路由重定向
139 0