之前我们简单介绍过request和response了:https://blog.nowcoder.net/n/a49e8a23fe584df5a185c248df989604
这次简单复习下forward转发和Redirect重定向。

【关于此类型文章网上很多,此处为了是为了后续文章的参考建立的简要介绍】


1. 请求转发:

(1) 使用requestDispatcher对象:

转发格式:request.getRequestDispatcher("path").forward(response,request)

(2) 使用jsp动作元素:

<jsp:forward page=""/>

2. 请求重定向:

使用response的rsendRedirect方法:

重定向格式:response.sendRedirect("path");


3. 请求转发与请求重定向的区别:


总结:

URL

(1) 请求转发为服务器内部跳转,跳转一次,客户端接收结果,而不改变url地址而请求重定向则跳转两次,既将结果返回给客户端,又使客户端的url地址改变

转跳次数

(2) 请求转发为为内部跳转,页面请求的对象一直存在,【请求重定向则会结束上个页面的请求】

传参

(3) 请求转发的传参使用request对象方法setAttribute(“name”,value),请求重定向只需使用url传参或者通过session传参即可

注意:

重定向是通过response响应体指使客户端再次请求服务器,虽然更耗资源,但是这是一个新的请求,之前的reque会结束掉,之前request中带的各种数据也就不会被传递了。