程序员
董欣欣的个人博客

sendRedirect和jsp:forward的区别

response.sendredirect()会在客户端呈现跳转后的URL地址;这种跳转称为客户端跳转。使用response.sendredirect()将重定向的URL发送到客户端,浏览器再根据这个URL重新发起请求。所以用这个方法时,你在浏览器地址栏上会看到新的请求资源的地址。并且这个时候的request,response都和第一次的不一样了。这时是重新产生了新的request和response。
使用<jsp:forward>完全是在服务器上进行,浏览器地址栏中的地址保持不变;这种跳转称为服务器端跳转。所以使用这个方法时没有产生新的用request,response。因为request没有变,在同一个请求内,可以用request来转递参数。

response.sendRedirect()想带参数的话,自己在地址中写成 xxx.jsp?param1=aaa&… 这种形式传递参数。<jsp:forward>能够使用<jsp:param/>标签向目标文件传送参数和值 ,目标文件必须是一个动态的文件,能够处理参数。

<jsp:forward>后面的语句不会被执行也不会继续发送到客户端,response.sendRedirect()后面的语句会继续执行,除非语句前面有return。

<jsp:forward>是在服务器的内部进行转换,只发送给客户端最后转到的页面,速度会比较快;response.sendRedirect()需要服务器与客户端之间的往返,可以转到任何页面,包括网络有效域名。但速度比较慢。

未经允许不得转载:董不董 - 董欣欣的个人博客 » sendRedirect和jsp:forward的区别
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

www.dongxinxin.cn 技术博客

联系我关于我