jsp的网页跳转分两类:客户端跳转,也叫重定向;服务端跳转,也叫请求转发。
客户端跳转的方法:response.sendRedirect("URL"),response.setHeader("refresh", "5;hello.html"),<meta http-equiv="refresh" content="5;hello.html">
服务端跳转的方法:<jsp:forward>标签,error页跳转,pageContext.forward("hello.html")
两种跳转的区别:1)服务端跳转时,request不变,也就是只有一次请求,因此新页面可以继续使用源页面的request,而客户端跳转等于两次请求,会生成两个request,所以第一次请求的参数无法在第二次请求中获取;
2)服务端跳转时,向新页面发送数据,可以通过标签的跳转参数(<jsp:param>)、request参数(attribute)、URL参数(?attr1=value1&attr2=value2),而客户端跳转,则只能通过URL参数来传递数据;
3)最重要的,服务端跳转是即时跳转,只要页面代码执行到跳转标签(<jsp:forward>)页面就会立即跳转,标签后面的代码都不会被执行,所以被打开资源的释放,都应该在跳转标签之前进行,否则不会再有释放机会,而客户端跳转,是等到页面完全执行完以后才跳转。