Kevin's Java Life

喝一杯咖啡,生活变得从容和清新
随笔 - 3, 文章 - 12, 评论 - 1, 引用 - 0
数据加载中……

Foward与Redirect

Foward(转发)
使用:
HttpServletRequest.getRequestDispatcher(URL).forward(request, response)
或者   HttpServletContext.getRequestDispatcher(URL).forward(request, response)
原理:
当使用转发时, JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。
特点:
浏览器中所显示的URL不会被修改.
由于request并没有中止,所以其中的对象仍然可用.

Redirect(重定向)
使用:
HttpServletResponse.sendRedirect(URL);
原理:
重定向方式的含义是第一个页面通知浏览器发送一个新的页面请求
特点:
当你使用重定向时,浏览器中所显示的URL会变成新页面的URL.
由于重定向方式产生了一个新的请求,所以经过一次重定向后,request内的对象将无法使用。

怎么选择是重定向还是转发呢?通常情况下转发更快,而且能保持request内的对象,所以他是第一选择。但是由于在转发之后,浏览器中URL仍然指向开始页面,此时如果重载当前页面,开始页面将会被重新调用。如果你不想看到这样的情况,则选择重定向。

posted on 2005-04-13 14:52 Kevin 阅读(632) 评论(0)  编辑  收藏 所属分类: 编程技巧


只有注册用户登录后才能发表评论。


网站导航: