一:间接请求转发(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对象。
|
|