java 转发与重定向_Java 转发和重定向的区别

java 转发与重定向_Java 转发和重定向的区别转发是服务器行为,重定向是客户端行为1.转发在服务器端完成的;重定向是在客户端完成的2.转发的速度快;重定向速度慢3.转发的是同一次请求;重定向是两次不同请求4.转发不会执行转发后的代码;重定向会执行重定向之后的代码5.转发地址栏没有变化;重定向地址栏有变化6.转发必须是在同一台服务器下完成;重定向可以在不同的服务器下完成在servlet中调用转发、重定向的语句如下:request.getRequ…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

转发是服务器行为,重定向是客户端行为

1.转发在服务器端完成的;重定向是在客户端完成的

2.转发的速度快;重定向速度慢

3.转发的是同一次请求;重定向是两次不同请求

4.转发不会执行转发后的代码;重定向会执行重定向之后的代码

5.转发地址栏没有变化;重定向地址栏有变化

6.转发必须是在同一台服务器下完成;重定向可以在不同的服务器下完成

在servlet中调用转发、重定向的语句如下:

request.getRequestDispatcher(“index.jsp”).forward(request,

response);//转发到index.jsp

response.sendRedirect(“index.jsp”);//重定向到index.jsp

转发过程:客户浏览器发送http请求,web服务器接受此请求,调用内部的一个方法在容器内部完成请求处理和转发动作,将目标资源发送给客户;在这里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的request。在客户浏览器路径栏显示的仍然是其第一次访问的路径,也就是说客户是感觉不到服务器做了转发的。转发行为是浏览器只做了一次访问请求。

重定向过程:客户浏览器发送http请求,web服务器接受后发送302状态码响应及对应新的location给客户浏览器,客户浏览器发现是302响应,则自动再发送一个新的http请求,请求url是新的location地址,服务器根据此请求寻找资源并发送给客户。在这里location可以重定向到任意URL,既然是浏览器重新发出了请求,则就没有什么request传递的概念了。在客户浏览器路径栏显示的是其重定向的路径,客户可以观察到地址的变化的。重定向行为是浏览器做了至少两次的访问请求的。

重定向,其实是两次request

第一次,客户端request

A,服务器响应,并response回来,告诉浏览器,你应该去B。这个时候IE可以看到地址变了,而且历史的回退按钮也亮了。重定向可以访问自己web应用以外的资源。在重定向的过程中,传输的信息会被丢失。

(来源百度…)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197295.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • android之常用控件大集合

    android之常用控件大集合android中的控件可谓应有尽有,从简单的Button到复杂的WebView,无所不能,无所不有。在开发的早期阶段,这些控件应该完全能够满足开发者的要求.随着知识的不断深入,开发者完全可以根据自己的

    2022年7月2日
  • webide配置_web vscode

    webide配置_web vscode背景为了解决函数计算本地环境差异和配置繁琐的问题,在此背景下,就有了我们的WebIDE产品,WebIDE能让函数的开发、测试和部署更加流畅,降低了函数计算的学习成本和缩短了函数的开发周期。WebIDE入口地址:https://ide.fc.aliyun.com介绍WebIDE是一个基于H5支持多语言的集成开发环境。相当于VSCo…

    2022年10月18日
  • mac idea2022.01永久激活【2021免费激活】

    (mac idea2022.01永久激活)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月30日
  • vue 修改引入组件的样式_vue子组件的子组件布局

    vue 修改引入组件的样式_vue子组件的子组件布局意义vue被广大前端推崇很重要一点就是组件封装,但是在组件封装的时候,组件可能在各处都要用到,但是在各处的样式可能不太一样,例如:按钮组件,这时怎么办,难道不同样式但是结构相同的组件进行多次封装么?很明显是很不合算的。用代码说话父组件:<template><el-containerclass=”layout_container”><el-headerheight=”auto”><header-top></header-top&

    2022年9月2日
  • JS中鼠标拖拽div(2)(setCapture()方法和releaseCapture()方法)

    JS中鼠标拖拽div(2)(setCapture()方法和releaseCapture()方法)接着鼠标拖拽div(1)解决问题,当在拖拽事件所在的页面按下键盘的ctrl+A全选后,再去拖拽div,浏览器会默认去搜索网页中的内容,拖拽功能就会失效,(搜索网页内容是浏览器的默认行为,所以要想不发生这种情况,就得将其取消,是谁执行之后触发了浏览器的默认行为,就在谁里面returnfalse即可取消浏览器的默认行为,但这种方式ie8及以下的版本不支持。)在ie8及以下版本浏览器中,如果调用了元素的setCapture()方法,那么点击任何事物都会来执行这个元素绑定的响应函数。例如:btn.oncl

    2022年5月8日
  • JAVA对象转JSON字符串时格式化日期_oracle clob转字符串

    JAVA对象转JSON字符串时格式化日期_oracle clob转字符串本案例所有代码均为原创,使用Java手写,没有借鉴其他类似工具库和网上论坛博客,也许没有经过充分测试,可能出现未知bug,因此不建议拿到正式的项目里使用。Java对象就像一个文件夹一样,没有办法知道其深度,所以采用了递归。性能方面没有测试,个人认为没有特别耗费性能的地方,除非你的对象包含很多层级。它可以支持null,字符串,数字、日期、集合等多种类型,包括以上类型的多层嵌套,都没有问题。源码不多,如下:importjava.lang.reflect.Field;importjava.lang

    2022年9月21日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号