forword/ sendRediect

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

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

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

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

一般来说转发forward在本服务器内部使用。
重定向sendRedirect一般在外部服务器使用。(客户端向服务器端发送请求 收到服务器端响应的状态为302 客户端会取location里面的值即本地浏览器会帮你跳到这个指定的值里面去)




原文地址:https://www.cnblogs.com/shanheyongmu/p/5140916.html