程序员社区

【Servlet-0】Request对象请求头数据

文章目录

    • 获取请求头数据的方法
      • 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:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

赞(0) 打赏
未经允许不得转载:IDEA激活码 » 【Servlet-0】Request对象请求头数据

相关推荐

  • 暂无文章

一个分享Java & Python知识的社区