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

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

路径问题


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


相关文章
|
5月前
|
存储 Java 应用服务中间件
Javaweb | 转发、重定向
Javaweb | 转发、重定向
40 0
|
4月前
|
前端开发
请求转发和重定向的区别
请求转发和重定向的区别
31 0
|
4月前
springmvc请求转发和重定向的四种跳转方式
springmvc请求转发和重定向的四种跳转方式
|
5月前
|
存储 数据处理
Request请求转发与Respones请求重定向有什么区别?
Request请求转发与Respones请求重定向有什么区别?
|
8月前
|
存储 应用服务中间件 数据库
Servlet请求转发和重定向
Servlet请求转发和重定向
113 0
|
10月前
|
应用服务中间件 nginx
重定向和反向代理的区别
重定向和反向代理的区别
154 0
|
11月前
重定向和请求转发的区别
重定向和请求转发的区别
63 0
|
Java PHP
路由重定向
路由重定向
93 0
|
Java 数据库
Servlet的请求转发和重定向的区别
Servlet的请求转发和重定向的区别
90 0
Servlet的请求转发和重定向的区别
|
XML 数据格式
Javaweb 请求转发和请求重定向
1.请求转发和请求重定向区别 请求转发和请求重定向主要区别,包含以下 5 点: 定义不同 请求方不同 数据共享不同 最终 URL 地址不同 代码实现不同 定义不同:🙌
101 0
Javaweb 请求转发和请求重定向

热门文章

最新文章