sendRedirect()与foward

来源:互联网 发布:android 广告机源码 编辑:程序博客网 时间:2024/05/01 16:58
A.使用response.sendRedirect时,前面不能有HTML输出
这并不是绝对的,不能有HTML输出其实是指不能有HTML被送到了浏览器。事实上现在的server都有cache机制,一般在8K(我是说JSP SERVER),这就意味着,除非你关闭了cache,或者你使用了out.flush()强制刷新,那么在使用sendRedirect之前,有少量的HTML输出也是允许的。
Bresponse.sendRedirect之后,应该紧跟一句return
我们已经知道response.sendRedirect是通过浏览器来做转向的,所以只有在页面处理完成后,才会有实际的动作。既然你已经要做转向了,那么后的输出还有什么意义呢?而且有可能会因为后面的输出导致转向失败。
sendRedirect是由浏览器来做的事情。当调用sendRedirect,服务端返回一个response,里面包含了跳转的内容,由浏览器获得后,进行跳转,我们可以看到浏览器中的URL是改变的。而forward则是在服务端直接做的事情,浏览器并不知道,这也就是为什么forward后浏览器的URL还是保持不变的原因。
原创粉丝点击