页面跳转的几种方式:
--------------(网络收藏)
http头实现页面跳转:
out.println("<meta http-equiv='refresh' content='0;url=xxxxx.jsp'>");
content是指跳转的时间间隔,单位为秒
----------------------------------------------
forward方法实现跳转:
<%
String url = "index.jsp";
%>
<jsp:forward page=url>
<jsp:param name="id" value="<%=userid%>">
</jsp:forward>
-------------------------------------------------
response跳转:
response.sendRedirect(url);
或
response.encodeRedirectURL(response.encodeRedirectURL(url));
对要用的URL编码,如果cookie打开的话,sessionid通过cookie传递,这个方法原样返回;如果cookie没打开的话,这个方法会在你的url后面加上sessionid的参数,保证你的session传递。
---------------------------------------------------
区别:
forward执行后,地址栏链接不变
sendRedirect()执行后,地址栏链接会更换
由此可知forward的执行是在服务器完成的,重定向到其他文件取出内容输出到页面,并且可以附加参数传递
而sendRedirect,可以认为是客户端完成,相当于客户端又重新发了一个get请求,要服务器传输另一个文件过来。
<jsp:forward>能够向目标文件传送参数和值。如果使用了<jsp:param/>标签的话
,目标文件必须是一个动态的文件,能够处理参数。如果使用了非缓冲输出,那么使用
<jsp:forward>时就要小心;如果使用<jsp:forward>之前,JSP文件已经有了数据,那么
文件运行将会出错。<jsp:forward>标签从一个JSP文件向另一个文件传递一个包含用户
请求的request对象,<jsp:forward>标签以下的代码将不能运行。