重定向
1.301重定向是什么?
从一个页面跳转到另一个页面/从一个网址跳转到另一个网址
2.301重定向的适用场景
1.更换域名时,通过301永久重定向将旧域名重定向至新域名,挽回流量的损失
2.多个闲置域名指向同一个网站
3.网址规范化
3.常见几种301跳转模式
1.不带www的顶级域名跳转到带有www的顶级域名
2.HTTP跳转到HTTPS
3.多域名跳转到同一个域名
4.特定页面到特定页面的跳转
4.301和302
301是永久重定向,302是临时重定向
302重定向是暂时的,搜索引擎会抓取新的内容而保留旧的地址,所以,服务器返回302,搜索引擎会认为新的地址是暂时的
301重定向是永久的,搜索引擎在抓取新的内容时,将旧的地址替换成重定向之后的地址
4.实现一个简单的302重定向
实现一个程序,返回一个重定向HTTP响应,自动跳转到另一个页面
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
//重定向
@WebServlet("/Redirect")
public class RedirectServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
//用户访问这个路径的时候,直接重定向到搜狗主页
//setStatus:为响应设置状态码
// resp.setStatus(302);
// resp.setHeader("Location","https://www.sogou.com");
//刚刚通过设置状态码和Location来完成302重定向跳转
//现在这个sendRedirect也可以完成这个302重定向跳转
resp.sendRedirect("https://www.sogou.com");
}
}
结果截图
5.基于JS,实现一个3s跳转网页
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
//重定向
@WebServlet("/Redirect1")
public class Redirect extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
}
}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>RedirectRefresh</title>
</head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<body>
<button><span id="n">3</span>秒后自动跳转</button>
<script>
console.log(window.location);
let number=3;
<!--setInterval:会按照指定的周期来调用方法,必须带的两个参数:被调用的函数,时间间隔(毫秒级)-->
let id=setInterval(jump,1000);
<!--document.getElementById:返回指定的ID元素-->
let n=document.getElementById("n");
function jump(){
number--;
n.innerHTML=number;
if(number==0){
<!--clearInterval:可以取消setInterval设定的指定周期-->
clearInterval(id);
window.location.replace("https://www.sogou.com");
}
}
</script>
</body>
</html>
访问地址:http://localhost:8080/Light_demo1/RedirectRefresh.html