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

 

“转发” 和“重定向”的区别 。
    我之前只知道有 重定向 (通过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详细介绍》

`

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java请求转发重定向都是用于在不同的Servlet之间进行页面跳转的方式,但它们的实现方式和效果是不同的。 请求转发是指在当前Servlet处理完请求后,将请求转发给另一个Servlet进行处理,转发后的请求由另一个Servlet来产生响应。请求转发的代码如下: ```java RequestDispatcher dispatcher = request.getRequestDispatcher("/b"); dispatcher.forward(request, response); ``` 其,`/b`是要转发到的Servlet的路径,`request`和`response`是当前Servlet的请求和响应对象,转发后的请求和响应对象也是这两个对象。 请求转发的特点是:转发后的请求和响应对象与原始请求和响应对象是同一个,因此它们可以共享请求和响应的信息,比如请求参数、请求属性等。此外,请求转发是在服务器端完成的,客户端并不知道发生了转发,因此地址栏的URL不会改变。 重定向是指在当前Servlet处理完请求后,将请求重定向到另一个Servlet进行处理,重定向后的请求由浏览器重新发起,由另一个Servlet来产生响应。重定向的代码如下: ```java response.sendRedirect("/b"); ``` 其,`/b`是要重定向到的Servlet的路径,`response`是当前Servlet的响应对象。 重定向的特点是:重定向后的请求和响应对象与原始请求和响应对象是不同的,因此它们不能共享请求和响应的信息。此外,重定向是在客户端完成的,因此地址栏的URL会改变。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值