您的位置:首页 > 产品设计 > UI/UE

RequestDispatcher(响应重定向)与sendRedirect()(请求转发)的比较

2017-05-11 14:44 369 查看
区别:

(1)RequestDispatcher对象是一个Web资源的包装器,这种转发是服务器端控制权的转向,客户端发来的请求将交由新的页面进行处理。

在客户端浏览器的地址栏是不会显示转发后的资源地址的。可以将前一个页面的数据,状态等信息传到转发的页面(同一次请求)

例:

servletA中 String a=request.getParameter("scr");

request.getRequestDispatcher("servletB").forward(request, response);

servletB

中 String b=request.getParameter("scr");

其中a=b,可以自己尝试

(2)响应对象的sendRedirect()方法实际是服务器向浏览器发送一个特殊的响应头(Location ,状态码302),它命令浏览器连接到新的位置。因此,地址栏中可以看到变化。

重定向是作为不同请求来看待的,因此,所有请求作用域的参数在重定向到下一个页面时都会失效。另外,使用sendRedirect()方法重定向时,资源不能位于WEB-INF

目录中,在调用sendRedirect()方法之前,主页面不能有内容输出。在调用sendRedirect()方法后应该有个return语句
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐