Forward和Redirect区别

692 阅读2分钟
:间接请求转发(Redirect)

二:直接请求转发(Forward)
直接转发方式,客户端跟浏览器只发出一次请求,Servlet html jsp from等信息,在request中保存对象信息资源,并且共享

间接转发,实际是两次http请求,服务器在响应首次请求会让浏览器再向另外URL发出,实现转发

例子:

直接转发=小明找小琳接钱,小琳说没有,小琳去借小红的,借到成功与否都会把消息传递到小明

间接转发=小明找小琳接钱,小琳说没由,让小明去跟小红借钱

Redirect

也称作重定向,好处是用于避免非法访问,假如用户没有登陆访问后台资源,servlet将http请求重定向到登陆界面让用户登陆以后才能访问.

在servlet中调用response对象的
SendRedirect()方法实现重定向指定url

Forward

直接转发的方式使用的比较更加广,web应用都会由控制器控制请求转发传递调度信息资源.处理完返回给用户并带上处理反馈信息这是mvc模式

如何鉴别 浏览器可以观察服务器使用的请求转发方式.当点击a标签超链接时候,地址会出现请求地址,如果服务器响应后地址值变化了是间接请求转发,否则没有变化代表直接请求或者没有转发的

面试问答常见问题-----直接转发和间接转发的原理及区别是什么?

答:Forward和Redirect代表了两种请求转发方式:直接转发和间接转发。对应到代码里,分别是RequestDispatcher类的forward()方法和HttpServletRequest类的sendRedirect()方法。

详解如下

重定向是
服务器端在响应第一次请求的时候,让浏览器再向另外一个URL发出请求,从而达到转发的目的。它本质上是两次HTTP请求,对应两个request对象。

转发是
客户端浏览器只发出一次请求,Servlet把请求转发给Servlet、HTML、JSP或其它信息资源,由第2个信息资源响应该请求,两个信息资源共享同一个request对象。
更多技术资讯可关注:gzitcast