java 高手:res.sendRedirect()和req.getRequestDispatcher().forwar...

发布网友 发布时间:2024-10-05 05:17

我来回答

6个回答

热心网友 时间:2024-10-05 18:42

res.sendRedirect(),是重定向,相当于两次请求,两次相应,地址栏会发生变化。

在实际使用中,重定向不能传指。也就是在requset中储存的值在跳转到另外一个页面后,在目标页面提取不出来。

req.getRequestDispatcher().forward(req,res)是跳转,转发,前后页面共同使用一个request,地址栏没变化,等于一次请求两次相应,

实际应用中你在上一个页面储存在request中的值在跳转到目标页面后在目标页面仍然可以request.getAttribute();这个方法取出来。

热心网友 时间:2024-10-05 18:40

sendRedirect()是向浏览器发送一个重定向信息,http代号好像是302.
而req.getRequestDispatcher()是在服务器内部进行处理,再返回到客户端

热心网友 时间:2024-10-05 18:41

第一个是绝对跳转,地址栏相应变化,相当于重启ie到新的地址
第二个是相对跳转,保留了一下信息,而且地址栏里边的地址不变

热心网友 时间:2024-10-05 18:34

res.sendRedirect();两次请求 两次响应 通俗一点就是 地址栏变化
request.getRequestDispatcher()是请求转发,前后页面共享一个request ;
forward(req,res);一次请求 两次响应 地址栏不变化

热心网友 时间:2024-10-05 18:35

1)他们的路径写法不同 sendRedirect(/工程名/xx.jsp)
req.getRequestDispatcher().forward(req,res) 是/xx.jsp

2)后者可以绑定requeset的属性,前者不能

3)剩下的他们说的都对

热心网友 时间:2024-10-05 18:35

不带参数与带参数跳转

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com