博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于request、response转发与重定向的简述
阅读量:5016 次
发布时间:2019-06-12

本文共 940 字,大约阅读时间需要 3 分钟。

  在做页面的请求与响应的时候我们多用request与response进行操作,而我们大家也知道,request是表示用户发向服务器的请求,而response是对用户请求的一个响应。

     关于转发和重定向,通俗的讲转发就像是你向售后技术支持打电话问问题,打过去是客服小王接的,但是小王无法解决,他让你等会儿,别挂电话,然后他去把问题告诉小李,让小李过来帮你解决,虽然换了人解决可是还是在这个售后处解决了问题。而重定向呢,就是小王说这个不归他们管,我们处理不了,让你打给12315投诉吧。然后你打电话给12315投诉解决了。大概就是这样的。

       因此在转发的时候你的地址栏内容不会变,发过去的请求也在,也就是说request中的内容没有改变,可以使用request进行值传递。

而重定向的过程地址栏发生改变,你的请求也在重定向的时候丢失,原因是在第二次请求时,是再一次对服务器的访问,服务器会重写request内容。

下面是转发和重定向的代码:

转发:

request.getRequestDispatcher("").forward(request, response);

重定向:

response.sendRedirect("");

谈到转发和重定向就不得不提一下其中的区别:

 

 

转发

重定向

请求次数

浏览器仅发送一次请求、一次响应

发送两次请求,两次响应

地址栏是否变化

地址栏不发生变化

地址栏变成重定向的地址

范围

只能转到本项目的Servlet或其他页面

能重定向到不只本项目的Servlet或者其他页面

实施及地址

是有服务器转发的,根目录为项目地址

是由浏览器再次请求,根目录是浏览器目录

 

*用到重定向和转发时要注意的问题:

在做增删改请求操作的时候不可用转发,只能用重定向

原因:由于转发之后地址栏不变,请求(request)内容不变,再次刷新页面的时候,请求将再次发送,造成重复操作执行,造成错误。

在做查询操作时,只能转发,不能使用重定性。

原因:重定向后请求会将原本的查询请求覆盖,刷新之后将得不到要查询的数据。

 

 

以上为个人学习总结,欢迎技术大牛路过指定批评。

转载于:https://www.cnblogs.com/Mr-Dawei/p/7355933.html

你可能感兴趣的文章
Makefile ===> Makefile 快速学习
查看>>
face detection[HR]
查看>>
java性能调优工具
查看>>
C# 其他的Url 文件的路径转化为二进制流
查看>>
cmake使用
查看>>
ios7上隐藏status bar
查看>>
构造方法和全局变量的关系
查看>>
python3基础05(有关日期的使用1)
查看>>
ArrayList的使用方法
查看>>
面向对象高级
查看>>
Bitwise And Queries
查看>>
打印Ibatis最终的SQL语句
查看>>
HBase之八--(3):Hbase 布隆过滤器BloomFilter介绍
查看>>
oracle连接问题ORA-00604,ORA-12705
查看>>
NOI 2019 退役记
查看>>
java的几个日志框架log4j、logback、common-logging
查看>>
Java从零开始学十三(封装)
查看>>
Python2和Python3中的rang()不同之点
查看>>
MySQL的外键,修改表,基本数据类型,表级别操作,其他(条件,通配符,分页,排序,分组,联合,连表操作)...
查看>>
UVALive 4128 Steam Roller 蒸汽式压路机(最短路,变形) WA中。。。。。
查看>>