Request获取请求头数据和获取请求体数据

Request获取请求头数据

获取请求头数据

  方法:

    1、String getHeader(String name):通过请求头的名称获取请求头的值

    2、Enumeration<String> getHeaderNames():获取所有的请求头名称

复制代码
package com.tomcat1.web.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;

/**
 * 演示Request对象获取请求行数据
 */
@WebServlet("/requestDemo1")
public class RequestDemo1 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //演示获取请求头数据

        //1、获取所有请求头名称
        Enumeration<String> headerNames = request.getHeaderNames();
        //2、遍历
        while (headerNames.hasMoreElements()){
            String name = headerNames.nextElement();
            //根据名称获取请求头
            String value = request.getHeader(name);
            System.out.println(name+"-----"+value);
        }

        //获取请求头数据:user-agent
        String header = request.getHeader("user-agent");
        //判断header的浏览器版本
        if(header.contains("Chrome")){
            //谷歌
            System.out.println("谷歌");
        }else if (header.contains("Firofox")){
            //火狐
            System.out.println("火狐");
        }

        //演示获取请求头数据:referer
        String referer = request.getHeader("referer");
        System.out.println(referer);
        //防盗链
        if (referer!=null){
            if (referer.contains("/")){
                //正常访问
//                System.out.println("播放");
                response.setContentType("text/html;charset=utf-8");
                response.getWriter().write("播放");
            }else {
                //盗链
                System.out.println("去首页");
                response.setContentType("text/html;charset=utf-8");
                response.getWriter().write("播放");
            }
        }

    }
}
复制代码

login.html:

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="/demo3" method="post">
        <input name="username">
        <input type="submit" value="提交">
    </form>

<hr>

    <a href="/requestDemo1">requestdemo1</a>
</body>
</html>
复制代码

 

  

 

 

 

 

 

 

Request获取请求体数据

请求体:只有POST请求方式,才有请求体,在请求体中封装了POST请求的请求参数

步骤:

  1、获取流对象

    BufferedReader getReader():获取字符输入流,只能操作字符数据

    ServletInputStream getInputSream():获取字符输入流,可以操作所有类型的数据

复制代码
package com.tomcat1.web.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.BufferedReader;
import java.io.IOException;
import java.util.Enumeration;

/**
 * 演示Request对象获取请求行数据
 */
@WebServlet("/requestDemo1")
public class RequestDemo1 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取请求消息体——请求参数

        //1、获取字符串
        BufferedReader br = request.getReader();
        //2、读取数据
        String line = null;
        while ((line = br.readLine())!=null){
            System.out.println(line);
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


    }
}
复制代码

regist.html:

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="/requestDemo1" method="post">
        <input type="text" placeholder="请输入用户名" name="username"><br>
        <input type="text" placeholder="请输入密码" name="password"><br>
        <input type="submit" value="注册">
    </form>
</body>
</html>
复制代码

 

posted @   xjw12345  阅读(3913)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示