sendRedirect和<jsp:forward>的区别主要有以下五点:
1、response.sendredirect()会在客户端呈现跳转后的URL地址,这种跳转称为客户端跳转。使用response.sendredirect()方法将重定向的URL发送到客户端,浏览器再根据这个URL重新发起请求。所以用这个方法时,在浏览器地址栏上会看到新的请求资源的地址。并且这时的request和response都与第一次的不一样了,因为产生了新的request和response。
2、使用<jsp:forward>完全是在服务器上进行,浏览器地址栏中的地址保持不变,这种跳转称为服务器端跳转。所以使用这个方法时没有产生新的request和response,因为request没有变,在同一个请求内,可以用request来传递参数。
3、response.sendRedirect()方法想带参数的话,在地址中写成xxx.jsp?param1=aaa&…这种形式传递参数。<jsp:forward>能够使用<jsp:param/>标签向目标文件传送参数和值,目标文件必须是一个动态的文件,能够处理参数。
4、<jsp:forward>后面的语句不会被执行,也不会继续发送到客户端;
response.sendRedirect()方法后面的语句会继续执行,除非语句前面有return。
5、<jsp:forward>是在服务器的内部进行转换,只发送给客户端最后转到的页面,速度会比较快; response.sendRedirect()方法需要服务器与客户端之间的往返,可以转到任何页面,包括网络有效域名,但速度比较慢。