forward,include和sendRedirect整理

forward,include和sendRedirect整理1 forward 有 2 种叫法 请求转发 服务端跳转 原理 你 客户端 向服务器发送一个请求 请求的 servlet 就是页面 1 服务器会把你的请求在服务器内部进行跳转 并把 页面 2 的数据返回给你 客户端 ServletReqeu

大家好,我是讯享网,很高兴认识大家。

1. forward

有2种叫法:请求转发、服务端跳转。
原理:你(客户端)向服务器发送一个请求(请求的servlet就是页面1),服务器会把你的请求在服务器内部进行跳转,并把 页面2的数据返回给你(客户端)

ServletReqeust.getRequestDispatcher(“相对路径”)   可以用相对路径
ServletContext.getRequestDispatcher(“/ 相对路径”);   一定要用/开始
ServletContext.getNamedDispatcher(“Servlet的名字”)   用servlet的name来找Servlet


req.getRequestDispatcher("success.html").forward(req, resp);

讯享网

特点

  1. 你收到的内容是页面2的内容,地址栏不变
  2. 可以使用 req.setAttribute的内容,因为这是一个请求
  3. 缺点是你不能访问其他服务器的资源,你只能访问本服务器的资源
    在这里插入图片描述
    讯享网

2.include

原理:类似于include,区别是include包括了页面1页面2的内容,而forward只有页面1的内容,特点也和forward相同

讯享网req.getRequestDispatcher("success.html").include(req, resp);

在这里插入图片描述

3.sendRedirect

有2种叫法:重定向、客户端跳转。
原理:服务器向浏览器发送一个状态码(302),告诉浏览器重新去请求指定地址。注意,这次是2个请求,而之前是一个请求。所以不能使用request.setAttribute了,但是可以使用session。

特点

  1. 地址栏改变
  2. 是2个请求,不能使用request.setAttribute
  3. 可以访问其他服务器的资源
 resp.sendRedirect("http://www.baidu.com"); 

注意:当你访问其他服务器资源时要加上http:// ,否则会自动访问本项目下的路径,报404错误。

在这里插入图片描述

小讯
上一篇 2025-01-11 14:20
下一篇 2025-03-24 14:25

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/122922.html