您的位置:首页 > 编程语言 > Java开发

Java中实现"请求转发"和"重定向",有什么区别...

2015-05-28 15:14 316 查看
 
“转发” 和“重定向”的区别 。

    我之前只知道有 重定向 (通过javascript实现,发生在浏览器端,浏览器在得知真正的URL后,跳转了过去, 从后台看,就是又多做了一次 Get请求)

    转发的概念是 服务器端内部完成的, 服务器相当于是一个代理, 来了 客户端的 Get 请求, 他发现要移到别处处理的, 自己内部给自己发起了一个 Get 请求, 然后把那个Get请求的返回值,直接返回了给(外面的) 客户端浏览器

    从 浏览器的角度看, 我只用了一个 Get 请求, 但是请求回来的,已经是完全不同页面的内容了 , 你服务器丫的换了个页面(透明), 怎么不告诉我 ?  

 

在servlet中调用“转发”的语句如下:
request.getRequestDispatcher("new.jsp").forward(request, response);//转发到new.jsp

在servlet中调用“重定向”的语句
response.sendRedirect("new.jsp"); //重定向到new.jsp

================================
在jsp页面中实现“转发”的语句:
<jsp:forward page="new.jsp" />      //转发到new.jsp

在jsp页面中实现“重定向”的语句:
<%response.sendRedirect("new.jsp"); //重定向到new.jsp%>


    无论是 转发, 还是 重定向, 对于页面内容来说, 都是全部换成新的, 是都是属于全局刷新(非局部刷新)。

 [参考内容:]

    http://blog.csdn.net/meiyalei/article/details/2129120  

          《HTTP中的重定向和请求转发的区别》

    http://blog.sina.com.cn/s/blog_7ba68f520100rqkh.html
          《ActionForward详细介绍》

`
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: