
当客户端请求提交到服务器的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请求内,而
html是做不了301跳转的,但是可以通过
在5秒后,自动跳转到同目录下的hello.html(根据自己需要自行修改)文件。
下面列了五个例子来详细说明,这几个例子的主要功能是:在5秒后,自动跳转到同目录下的hello.html(根据自己需要自行修改)文件。
1)
html的实现
<head>
<!-- 以下方式只是刷新不跳转到其他页面
-->
<meta http-equiv="refresh"
content="10">
<!-- 以下方式定时转到其他页面
-->
<meta http-equiv="refresh"
content="5url=hello.html">
</head>
优点:简单
缺点:Struts Tiles中无法使用
2)
javascript的实现
<script
language="javascript"
type="text/javascript">
// 以下方式直接跳转
window.location.href='hello.html'
// 以下方式定时跳转
setTimeout("javascript:location.href='hello.html'",
5000)
</script>
优点:灵活,可以结合更多的其他功能
缺点:受到不同浏览器的影响
3)
<scriptlanguage="javascript"
type="text/javascript">
var second =
document.getElementByIdx_x('totalSecond').textContent
setInterval("redirect()", 1000)
function redirect()
{
document.getElementByIdx_x('totalSecond').textContent = --second
if (second < 0) location.href
= 'hello.html'
}
</script>
参考我回复其他人的页面:http://zhidao.baidu.com/question/1882892067218382988
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)