Chinaunix首页 | 论坛 | 博客
  • 博客访问: 89372
  • 博文数量: 22
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 445
  • 用 户 组: 普通用户
  • 注册时间: 2013-04-11 22:57
文章分类
文章存档

2013年(22)

我的朋友

分类: Web开发

2013-04-14 14:56:28

    重定向与请求转发的比较,通过HttpServletResponse.sendRedirect方法和RequestDispatcher.forward方法都可以让浏览器获得另外一个URL所指向的资源,但两者以下的区别:
    (1)RequestDispatcher对象是一个Web资源的包装器,可以用来把当前请求转发到该资源。这种转发是服务器端控制权的转向,客户端发来的请求将交由新的页面进行处理。使用请求转发,在客户浏览器的地址栏不会显示转发后的资源地址。使用请求转发,可以将前一个页面的数据、状态等信息传到转发的页面。
    (2)使用响应对象的sendRedirect()方法实际是服务器向浏览器发送一个特殊的响应头,它命令浏览器连接到新的位置。因此,使用这种方法在浏览器的地址栏中可以看到地址的变化。重定向是作为不同请求的来看待的,因此,所有请求的作用域的参数在重定向到下一个页面时都会失效。另外,使用sendRedirect()方法重定向时,资源不能位于WEB-INF目录中。
阅读(1257) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~