我们有两大种方式来实现页面跳转:1、JS(javascript);2、jsp跳转
先说jsp(金j三s胖p):
1、转发:request.getRequestDispatcher("1.jsp").forward(request,response);
在服务器组件收到用户请求后。经过它的处理后有传递给了另一个组件。不修改用户的请求码。
2、重定向:response.sendRedirect("success.jsp");
重定向一般是为了防止用户提交完数据后点浏览器刷新或点后退之后产生重复提交
3、标准动作元素:<jsp:forward page="URL"/>
注意事项:
1、此语句前也不允许有out.flush(),如果有,会有异常:
2、跳转后浏览器地址栏不变,但是只能跳到当前主机下
3、此语句后面的语句执行完成后才会跳转
4、跳转后得路径变为当前路径,图片不是绝对路径将无法显示
简单介绍3个js实现页面跳转:
1、window.location.href="URL"
2、window.navigate("URL")
3、window.location.replace("URL")
其他有如:
Meta设置跳转
html中的meta信息里可以直接设置跳转,可以设置跳转延迟时间和跳转url,经常应用,
比如支付完了告诉用户支付成功并跳转到订单页面,代码非常简单,就在<head>中加上一句:
<meta http-equiv="refresh" content="5;url=http://www.helloweba.com">
PHP header()函数跳转
PHP的header()函数非常强大,其中在页面url跳转方面也调用简单,使用header()直接跳转到指定url页面,这时页面跳转是302重定向:
$url = "http://www.helloweba.com/";
header( "Location: $url" );
我们有可能会遇到特殊的跳转时,比如网站改版有个页面地址要做301重定向,当然你可以通过web配置rewrite来实现,
但现在我要告诉大家,可以使用php的header()函数做301跳转,代码如下:
//301跳转
header( "HTTP/1.1 301 Moved Permanently" );
header( "Location: $url" )