有缘则是停泊,无缘则是流浪!

Welcome to Valen's Space!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Jsp重定向forward和sendRedirect的区别

Posted on 2009-10-11 23:10  Valen  阅读(669)  评论(0编辑  收藏  举报
1,forward工作原理
这种方式是服务器端的重定向,服务器端往客户端发送数据的过程是,先将数据输出到缓冲区,再将缓冲区的数据输出到客户端。
什么时候从缓冲区将数据输出到客户端呢?
a,当对客户端发送的请求全部处理完,并输出到缓冲区
b,当缓冲区满
c,在程序中调用换成去的方法out.flush(),respone.flushbuffer(),才将数据发送到客户端
这种重定向方式是采用服务器的缓冲区机制,在把缓冲区的数据发送到客户端之前,原来的数据不发送,只执行重定向页面,发送重定向页面的数据,重定向调用页的数据将被清除,如果在<jsp:forward>之前有很多输出,前面的输出致使缓冲区满,将自动输出到客户端,重定向不起作用
d,forward重定向时,地址不会变更,可以传递一个实例
 
2,sendRedirect
这种方式是客户端的重定向,该方法是通过修改http协议的head部分,该方法可以重定向相对路径和绝对路径,该方法传递方式只能通过?aaa=bbb方式,所以request不起作用,因为重定向后不是一个application