跟小博老师一起学Servlet ——Servlet之客户端跳转

来源:互联网 发布:99宿舍客服软件 编辑:程序博客网 时间:2024/05/18 00:06

客户端跳转适用于跨域的场景,对于跨几个servlet的业务流程,客户端跳转就不再适用。因为它不能将请求传递到下个资源,针对这些需求就要采用服务端跳转。

概念

所谓服务端跳转就是在服务器内部实现跳转,它不像客户端跳转要借助于浏览器。此种跳转适用于服务器内部间的数据传递,相对客户端跳转速度也比较快。

跳转流程

如有这样一个需求A页面上向某个Servlet发起请求,servlet处理完成后返回B页面。

请看下面的示意图


可以看出浏览器与Web容器只交互了一次,servlet直接跳转到页面B,最后返回给浏览器。

实现代码

服务器跳转要借助于RequestDispatcher接口中的forward()方法,此接口用来接收请要并将请求转发到任意资源,比servlet、html、jsp等。Web容器负责实例化RequestDispather,HttpServletRequest中的getReqeustDispatcher()取得实例后,再将要请求与应答参数传递给forward()方法,就好实现服务器跳转。


应用场景

业务需要同站点下多个资源按指定顺序协同工作时,应采用服务器跳转。servlet跳到servlet、servlet跳到jsp、jsp跳到jsp,通常要传递数据,使用服务器跳转速度更快、效率更高。如要跳到其它站点,建议使用客户端跳转。

 

与客户转比较

客户端跳转浏览器请求Web服务器二次,服务器跳转只请求一次。采用服务器端跳转,浏览器地址栏显示的就是请求URL,而客户端显示则是最终取到的资源URL。

二者跳转方式各自有对应的使用场景,大家根据业务的需求选择合适的就好。注意的是在同一servlet中不能编写二次跳转代码,且一旦进行了跳转也不能再以流的方式向客户端响应。


 

0 0
原创粉丝点击