内部跳转(请求转发)和外部跳转(重定向)的区别?

总结归纳要点:
1、内部跳转的时候实际上是通过服务器端将请求转发到另外的页面或者servlet中,这个时候跳转到的目标页面或者servlet可以获取到请求对象,
也可以获取到请求中的属性和参数。而外部跳转的时候实际上是第一次请求后,服务器端向客户端发送了一个指令,让客户端再次请求了一次服务器端,这个时候服
务器第二次拿到的request对象已经不是第一次请求的request对象了,所以无法获取到第一次请求里的参数和属性。

2、内部跳转的url地址栏不会发生变化,外部跳转url则会发生变化。
3、内部跳转无法跳转到工程以外的jsp或者servlet,外部跳转则可以。
4、内部跳转实现的方法:

  1. request.getRequestDispatcher("XXX.jsp或者servlet").forward(request, response),
  1. request.getRequestDispatcher("XXX.jsp或者servlet").forward(request, response),

而外部跳转实现的方法:

response.sendRedirect("XXX.jsp或者servlet")。

时间: 2024-10-12 22:42:47

内部跳转(请求转发)和外部跳转(重定向)的区别?的相关文章

请求转发(Forward)和重定向(Redirect)的区别

forward(转发): 是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,因为这个跳转过程实在服务器实现的,并不是在客户端实现的所以客户端并不知道这个跳转动作,所以它的地址栏还是原来的地址. redirect(重定向): 是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL. 转发是服务器行为,重定向是客户端行为. 区别: 1. 从地址栏显示来说for

请求转发(forward) 和重定向(redirect)的区别?

   forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取   过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,   所以它的地址栏中还是原来的地址.   redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,地址栏中   是新的地址.    前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址:后者则   是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接.这样,从浏览

forward(请求转发)和redirect(重定向)的区别

原理: forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址. redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取 所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接.

servlet请求转发与重定向的区别

1.请求转发(forward) request.getRequestDispatcher("parameter").forward(request,response);跳转到指定的服务器资源,地址栏URL不变,请求响应不变. 2请求包含(include)request.getRequestDispatcher("parameter").include(request,response);跳转到指定的服务器资源且包含之前的资源,地址栏URL不变,请求响应不变. 注* 

HTTP协议基础与web服务的重定向,跳转以及请求转发

JavaWeb中,HttpServletRequest与HttpServletResponse几乎是处理各种请求与操作必备的参数,与原始的ServletRequest/ServletResponse相比,它们符合HTTP协议,所以首先从http协议入手,回顾一些基本的内容,而后根据协议来总结常用的知识点. 首先来介绍一下dos环境下简单的http发送报文,接收报文的方法.运行输入cmd,打开命令提示符输入telnet 127.0.0.1 8080,回车后会出现一个输入界面,但此时输入的字符都无法

重定向与请求转发的区别

req.getRequestDiapatcher("hello.jsp").forward(req,resp);//重定向 resp.sendRedirect("login.jsp");//请求转发 重定向,服务器内部跳转.一次请求,跳转一次.Url不变. 请求转发,一次请求,2次跳转.请求的Url变成跳转成功的Url.

请求转发 和 URL 重定向

五 请求转发 和 URL 重定向 1 请求转发和重定向 干什么用? 是我们在java后台servlet中 由一个servlet跳转到 另一个 servlet/jsp 要使用的技术 前端发送请求到后台 : A 浏览器地址栏输入链接 B a标签 <a href="url地址">跳转</a> C form表单 <form action="url地址" method="get/post"> <input type

servlet的同步请求异步请求以及请求转发与重定型的区别

在javaWeb阶段,前端页面发送请求有两种: 1.同步请求 2.异步请求 同步请求与异步请求的区别是:同步请求跳转界面,异步请求只传递数据,不会跳转界面 (即使用同步请求,servelt响应的是一个界面,前台需要加载这个新的界面的图片样式脚本等诸多资源,而是用异步请求的话,只传递数据,不会刷新资源) 做一个简单的案例: 1.新建一个页面login.jsp <%@ page contentType="text/html;charset=UTF-8" language="

请求转发,重定向

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%> //page:指定的属性: //language:jsp页面使用的脚本语言: //import:导入类: //pageEncoding:jsp文件自身编码: //contentType:浏览器解析jsp的编码:   <!DOCTYPE html>