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