getRequestDispatcher()与sendRedirect()区别

上传人:碎****木 文档编号:220862114 上传时间:2021-12-09 格式:DOCX 页数:2 大小:11.94KB
返回 下载 相关 举报
getRequestDispatcher()与sendRedirect()区别_第1页
第1页 / 共2页
getRequestDispatcher()与sendRedirect()区别_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《getRequestDispatcher()与sendRedirect()区别》由会员分享,可在线阅读,更多相关《getRequestDispatcher()与sendRedirect()区别(2页珍藏版)》请在金锄头文库上搜索。

1、getRequestDispatcher()与 sendRedirect()区分1. request.getRequestDispatcher()是恳求转发,前后页面共享一个request ; response.sendRedirect()是重新定向,前后页面不是一个request。2. RequestDispatcher.forward()是在效劳器端运行; ServletResponse.sendRedirect()是通过向客户扫瞄器发送命令来完成. 所以 RequestDispatcher.forward()对于扫瞄器来说是“透亮的”;而 ServletResponse.sendRedi

2、rect()那么不是。3. ServletContext.getRequestDispatcher(String url) 中的 url 只能使用确定路径; 而ServletRequest.getRequestDispatcher(String url) 中的 url 可以使用相对路径。 由于ServletRequest 具有相对路径的概念;而 ServletContext 对象无次概念。RequestDispatcher 对象从客户端猎取恳求 request, 并把它们传递给效劳器 上的servlet,html 或 jsp。它有两个方法:1. void forward(ServletRequ

3、est request,ServletResponse response)用来传递 request 的,可以一个 Servlet 接收 request 恳求,另一个 Servlet 用这个 request 请 求来产生 response。request 传递的恳求,response 是客户端返回的信息。forward 要在 response 到达客户端之前调用,也 就是 before response body output has been flushed。假设不是的话,它会报出特别。2. void include(ServletRequest request,ServletResponse

4、 response)用来记录保存 request 和 response,以后不能再修改 response 里表示状态的信息。假设需要把恳求转移到另外一个 Web App 中的某个地址,可以按下面的做法:1. 获得另外一个WebApp的ServletConext对象(currentServletContext.getContext(uripath).2. 调用 ServletContext.getRequestDispatcher(String url)方法。eg:ServletContext.getRequestDispatcher(“smserror.jsp“).forward(reques

5、t,response);res.sendRedirect()=重定向forward(req,res)=转发重定向和转发有一个重要的不同:当使用转发时,JSP 容器将使用一个内部的方法来调用目标页面,新的页面连续处理同一个恳求,而扫瞄器将不会知道这个过程。 与之相反,重定向方式的含义是第一个页面通知扫瞄器发送一个新的页面恳求。由于,当你使用重定向时, 扫瞄器中所显示的 URL 会变成新页面的 URL, 而当使用转发时,该 URL 会保持不变。重定向的速度比转发慢,由于扫瞄器还得发出一个新的恳求。同时,由于重定向方式产生了一个新 的恳求,所以经过一次重定向后,request 内的对象将无法使用。怎么选择是重定向还是转发呢?通常状况下转发更快,而且能保持request 内的对象,所以他是第一选择。但是由于在转发之后,扫瞄器中 URL 仍旧指向开头页面,此时假设重载当前页面,开头页面将会被重新调用。假设你不想看到这样的状况,那么选择转发。转发和重定向的区分不要仅仅为了把变量传到下一个页面而使用 session 作用域,那会无故增大变量的作用域, 转发或许可以挂念你解决这个问题。重定向:以前的 request 中存放的变量全部失效,并进入一个新的request 作用域。转发:以前的 request 中存放的变量不会失效,就像把两个页面拼到了一起。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号