文章目录
-
- 获取请求头数据的方法
-
- 1.获取所有请求头名称
- 2.通过请求头的名称user-agent获取请求头的值
- 3.通过请求头的名称referer获取请求头的值
- 4.通过请求头的名称referer获取请求头的值
- 5.referer如何防盗链
获取请求头数据的方法
请求头是键值对
1.获取所有的请求头名称
Enumeration<String> getHeaderNames()
2.通过请求头的名称获取请求头的值
String getHeader(String name)
1.获取所有请求头名称
package Request;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Enumeration;
/**
* 演示获取所有请求头数据
*/
@WebServlet("/RequestDemo2")
public class RequsetDemo2 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取所有请求头名称
//可以把Enumeration看成迭代器
Enumeration<String> headerNames = request.getHeaderNames();
//遍历
while(headerNames.hasMoreElements()){
String name = headerNames.nextElement();
//根据名称获取请求头的值
String value = request.getHeader(name);
System.out.println(name+"...."+value);
}
}
}
2.通过请求头的名称user-agent获取请求头的值
package Request;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Enumeration;
/**
* 演示获取请求头数据
*/
@WebServlet("/RequestDemo3")
public class RequsetDemo3 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//演示根据请求投的名称获取请求头的值:user-agent
String agent = request.getHeader("user-agent");
//判断agent的浏览器版本
if(agent.contains("Chrome")){
System.out.println("谷歌来了");
}else if(agent.contains("Firefox")){
System.out.println("火狐来了");
}
}
}
3.通过请求头的名称referer获取请求头的值
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a href="/15-Http-Request/RequestDemo4">demo4...</a>
</body>
</html>
package Request;
import javax.servlet.ServletException;
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("/RequestDemo4")
public class RequsetDemo4 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//演示根据请求投的名称获取请求头的值:referer
String referer = request.getHeader("referer");
System.out.println(referer);
}
}
项目地址:
提交到的地址:
打印输出的结果:
4.通过请求头的名称referer获取请求头的值
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/15-Http-Request/RequestDemo4">
<input type="text">
<input type="submit" value="提交">
</form>
</body>
</html>
package Request;
import javax.servlet.ServletException;
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("/RequestDemo4")
public class RequsetDemo4 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//演示根据请求投的名称获取请求头的值:referer
String referer = request.getHeader("referer");
System.out.println(referer);
}
}
项目地址:
提交到的地址
打印输出的结果:
5.referer如何防盗链
package Request;
import javax.servlet.ServletException;
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("/RequestDemo4")
public class RequsetDemo4 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//演示根据请求投的名称获取请求头的值:referer
String referer = request.getHeader("referer");
System.out.println(referer);
//防盗链
if(referer!=null){
if(referer.contains("/15-Http-Request")){
//正常访问
System.out.println("播放电影");
}else{
//不能访问,跳转到优酷
System.out.println("想看电影吗?来优酷");
}
}
}
}
创建一个项目,在这个项目的web文件夹下面写一个login.html文件
启动并配置这个项目对应的Tomcat服务器,路径中包含15-Http-Requset:
创建另一个项目hehe,在hehe的web文件夹下面写一个index.html文件
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a href="http://localhost/15-Http-Request/RequestDemo4">高清电影</a>
</body>
</html>
创建一个Tomcat服务器,启动Tomcat服务器并配置路径中不包含15-Http-Request: