2006年3月31日17:55:31
对于重定向技术以前感觉是比较简单的东西,后来在做东西的过程中发现其实里面还是有很多技巧的!
首先我们先比较一下:response.sendRedirect()和RequestDispatcher.forward()方法的使用情况
response.sendRedirect()方法:因为response是JSP的内含对象,因此它可以直接使用,而在Servlet当中它则是HttpServletResponse或是ServletResponse.
sendRedirect()方法是可以实现浏览器的http地址的跳转,它同样可以实现带有frame框架的地址的跳转。而forward()方法则不能完成这种带frame框架的地址的跳转。sendRedirect()方法的重定向可以显示在浏览器的地址栏当中,而forward()则不能。
sendRecirect()不仅可以实现frame的跳转,也可以实现跨网站跨应用程序的跳转。它能够传递带查询参数的变量及值,但是却不能够记录请求前页存的Request.setAttribute()当中的值。因此如果用sendRedirect()方法进行了跳转后的页面,没有记忆功能,但是session中的值可以得到。而forward()就具有记录属性值的功能,跳转后的页面可以取得前一页中保存的值。
forward()方法也可以传递查询参数及值。但是<jsp:forward>则不能传递查询参数,如果要实现查询参数则必须嵌套<jsp:param name="name" value="value">来完成
通过用<jsp:param>来传递查询参数,它不会显示在浏览器的地址栏当中,因此比response.sendRedirect()要安全一些
posted on 2006-03-31 18:12
水煮三国 阅读(757)
评论(1) 编辑 收藏 所属分类:
J2EE