为了账号安全,请及时绑定邮箱和手机立即绑定

帮忙看看:关于response.sendRedirect(""); 的用法哦!

帮忙看看:关于response.sendRedirect(""); 的用法哦!

慕侠2389804 2021-10-11 15:11:51
response.sendRedirect(""); 和 reqeust.getRequestDispatcher("").forward(request, response); 请问 都是转向另一个页面吗?? 它们有什么异同??什么情况下该用哪个??
查看完整描述

3 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

1、首先第一步要知道response和request一样都是jsp内置对象,request是获取用户的请求,response处理用户请求。sendRedirect()函数的作用是重定向网页,向浏览器发送一个特殊的Header,然后由浏览器来做重定向,转到指定的页面。

2、接着就是sex.jsp,注意的是有一个下拉列表和提交按钮确定,选择“男”,就跳转到male.jsp,选择“女”就跳到female.jsp,然后中间通过sex_action.jsp进行重定向。

3、然后就是sponse.sendRedirect(""); 地址栏会改变,request作用域丢失。

这时候注意的是reqeust.getRequestDispatcher("").forward(request, response);转发request作用域保存即可。

4、最后就是次请求一次响应,这时候注意的是request依然存在,但是重定向是请求两次的,所以作用域丢失了。转发则反之即可。这就是 response.sendRedirect(""); 的用法。



查看完整回答
反对 回复 2021-10-18
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

response.sendRedirect(""); 地址栏会改变,request作用域丢失。reqeust.getRequestDispatcher("").forward(request, response);转发request作用域保存,地址栏不改变,另外两者请求次数不同。request作用域存在生命周期,一次请求一次响应,request依然存在,但是重定向是请求两次的,所以作用域丢失了。

查看完整回答
反对 回复 2021-10-18
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

response.sendRedirect(""); 不会共享request请求reqeust.getRequestDispatcher("").forward(request, response);跳转过后的页面会共享request请求这样 大量数据可以不必要存储在session中 存储在request中 跳转过去 的 servlet 或者 jsp取 即可

查看完整回答
反对 回复 2021-10-18
  • 3 回答
  • 0 关注
  • 366 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信