网页重定向在网站开发中经常使用,如:
1) 公司的域名进行了变更,为了用户也能通过原有域名进行访问,就得使用重定向。常见的购物网站,好多都进行了域名变更,但原域名仍保留,输入原域名后,自动定向到新的域名。
2) 在用户登录页面A中,输入完用户名密码后,点击登录时,表单提交到验证网页B,在服务端进行验证通过后,会自动定向到用户信息网页C。
下面介绍几种网页重定向的几种常用方法。
通过javascript脚本进行重定向
1
将a.html提交到b.html,b.html重定向到c.html。
(a.html相当于用户登录网页,b.html相当于验证用户信息网页,c.html相当于重定向的网页)
这里演示的仅是重定向的功能,因此代码尽可能简单。
a.html内容如下:
<html>
<head>
<metahttp-equiv="Content-Type" content="text/htmlcharset=utf-8" />
</head>
<body>
<form action="b.html"method="post">
<input name = "submit"type="submit" value="提交">
</form>
</body>
</html>
预览图如下:
2
b.html内容如下:
<html>
<head>
<metahttp-equiv="Content-Type" content="text/htmlcharset=utf-8" />
<scripttype="text/javascript">
function load()
{
window.location ="c.html"
}
</script>
</head>
<body onload = "load()">
验证通过,现在进入用户信息页面。
</body>
</html>
3
c.html内容如下:
<html>
<head>
<metahttp-equiv="Content-Type" content="text/htmlcharset=utf-8" />
</head>
<body>
欢迎光临!
</body>
</html>
预览图如下:
4
重点在b.html,重定向的代码就在其中的javascript脚本load()函数中。在b网页加载完毕后,会调用此函数,此函数的重定向代码就一句:
window.location = "c.html"
怎么样?是不是很简单。
如果想定向前其它网页,如百度首页,可以这么写:
window.location=”http://www.baidu.com”
注意“http://”不能少。
END
通过php代码进行重定向
1
因为涉及到php代码的执行,因此需要先做一个网站,这里假定网站已做好。
a.html中的代码很简单,只需将上面的form中的action改为指定b.php而不是b.html即可。
b.php的代码如下:
<?phpheader("Location:c.html")?>
要在本地网站进行演示,可以将a.html、b.php、c.html拷贝到你的网站目录下,在浏览器地址栏中输入: localhost/a.html进行 *** 作。
END
通过asp.net代码进行重定向
1
代码和php类似,因要先做一个支持asp.net运行的网站,将a.html中的action指定b.aspx,b.aspx中的代码如下:
<% Server.Transfer("c.html")%>
END
通过jsp代码进行重定向
代码和php类似,因要先做一个支持jsp运行的网站,重定向代码如下:
<jsp:forward page="c.html">
一个web资源收到客户端请求后,通知服务器去调用另外一个资源进行处理(服务器内调用),称之请求转发。当客户端请求提交到服务器的jsp处理的时候这个jsp可以携带请求和响应对象转移到web应用的另一处进行处理在另外一处进行处理后,产生结果页面响应给客户端浏览器此时客户端浏览器可以看到结果页面,但URL无变化所以不知道服务器端经过几层处理
重定向:redirect
一个web资源收到客户端请求后,通知浏览器去访问另外一个Web资源(浏览器进行2次请求),称之为重定向。
当客户端浏览器提交到服务器的JSP处理的时候这个JSP返回一个响应:去请求另外一次的URL此时客户端浏览器会再次发出一个新的请求到这个新的地址新的URL地址负责为浏览器产生响应这时浏览器看到的URL是第二次请求所对应的URL地址
两者的区别,转发和重定向的选择
重定向的速度比转发慢,因为浏览器还得发出一个新的请求,如果在使用转发和重定向都无所谓的时候建议使用转发。
因为转发只能访问当前WEB的应用程序,所以不同WEB应用程序之间的访问,特别是要访问到另外一个WEB站点上的资源的情况,这个时候就只能使用重定向了。
1.forward是服务器内部转发,而redirect是通过客户端进行转发
2.如果使用forward转发的话,客户端URL地址不会改变,但是redirect请求的话,URL地址会变
3.如果forward进行转发,转发页面和被转发页面处于一个request请求内,而
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)