Request 获取请求数据(方法)

2023-11-17

1.Request 继承体系

 2.Request 获取请求数据

2.1.请求行 

  1.  String getMethod():获取请求方式: GET
  2. String getContextPath():获取虚拟目录(项目访问路径): /request-demo StringBuffer
  3. getRequestURL(): 获取URL(统一资源定位符):http://localhost:8080/request-demo/req1
  4. String getRequestURI():获取URI(统一资源标识符): /request-demo/req1
  5. String getQueryString():获取请求参数(GET方式): username=zhangsan&password=123

2.2.请求头和请求体(post)

 2.3.运行分析

 代码

package com.itheima.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;

/**
 * request 获取请求数据
 */
@WebServlet("/req1")
public class RequestDemo1 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // String getMethod():获取请求方式: GET
        String method = req.getMethod();
        System.out.println(method);//GET
        // String getContextPath():获取虚拟目录(项目访问路径):/request-demo
        String contextPath = req.getContextPath();
        System.out.println(contextPath);
        // StringBuffer getRequestURL(): 获取URL(统一资源定位符):http://localhost:8080/request-demo/req1
        StringBuffer url = req.getRequestURL();
        System.out.println(url.toString());
        // String getRequestURI():获取URI(统一资源标识符): /request-demo/req1
        String uri = req.getRequestURI();
        System.out.println(uri);
        // String getQueryString():获取请求参数(GET方式): username=zhangsan
        String queryString = req.getQueryString();
        System.out.println(queryString);

        //------------
        // 获取请求头:user-agent: 浏览器的版本信息
        String agent = req.getHeader("user-agent");
        System.out.println(agent);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取post 请求体:请求参数

        //1. 获取字符输入流
        BufferedReader br = req.getReader();
        //2. 读取数据
        String line = br.readLine();
        System.out.println(line);
    }
}

3.Request 通用方式获取请求参数

3.1提供一种统一获取请求参数的方式,从而统一doGet 和 doPost方法内的代码

  1.  Map<String, String[ ]> getParameterMap():获取所有参数Map集合 String[ ]
  2. getParameterValues(String name) :根据名称获取参数值(数组)
  3. String getParameter(String name):根据名称获取参数值(单个值)

3.2 通用的代码解析演示

1.写在get中的

 2.写在post中的

 3.代码

package com.itheima.web.request;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.util.Map;

/**
 * request 通用方式获取请求参数
 */
@WebServlet("/req2")
public class RequestDemo2 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //GET请求逻辑
        //System.out.println("get....");

        //1. 获取所有参数的Map集合
        Map<String, String[]> map = req.getParameterMap();

        for (String key : map.keySet()) {
            System.out.print(key+":");  // username:zhangsan lisi
            String[] values = map.get(key);   //获取值

            for (String value : values) {
                System.out.print(value + " ");
            }

            System.out.println();
        }
        System.out.println("------------");
        //2. 根据key获取参数值,数组
        String[] hobbies = req.getParameterValues("hobby");
        for (String hobby : hobbies) {
            System.out.println(hobby);
        }
        //3. 根据key 获取单个参数值
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        System.out.println(username);
        System.out.println(password);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //POST请求逻辑

        this.doGet(req,resp);

        /*System.out.println("post....");

        //1. 获取所有参数的Map集合
        Map<String, String[]> map = req.getParameterMap();
        for (String key : map.keySet()) {
            // username:zhangsan lisi
            System.out.print(key+":");

            //获取值
            String[] values = map.get(key);
            for (String value : values) {
                System.out.print(value + " ");
            }

            System.out.println();
        }

        System.out.println("------------");

        //2. 根据key获取参数值,数组
        String[] hobbies = req.getParameterValues("hobby");
        for (String hobby : hobbies) {

            System.out.println(hobby);
        }

        //3. 根据key 获取单个参数值
        String username = req.getParameter("username");
        String password = req.getParameter("password");

        System.out.println(username);
        System.out.println(password);*/


    }
}

3.3 运行代码图解

1.req代码

1.1 get配置

1.2 post配置 

2.get运行演示

3.post运行演示

3.4.利用模板的方式,快速创建

1.编辑模板

 2.使用模板

 

 

 最后将 /RequesDemo7 修改成指定的路径就可以了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Request 获取请求数据(方法) 的相关文章

随机推荐

  • 运维工具

    环境部署 部署软件 如Apache Nginx tomcat JDK PHP MySQL等等 还需要测试吧 那就还需要部署一套测试环境 有些时候 开发环境也是需要运维来部署的 排错和调优 运维的事 尽快定位问题 解决问题才是王道 定位问题
  • 谁说毕业即失业?爬虫就业月入13000+第一个不服!

    不知道是Python太火爆 还是年轻人太卷 最近一段时间 老有刚毕业的年轻人向我请教Python问题 问题还相对比较专业 其中不乏有 财务小年轻请教Python数据统计 新媒体的朋友问Python爬虫 当然更多的还是来咨询Python爬虫就
  • Java监听器(重点)

    监听器 Listener 是一个实现特定接口的 Java 程序 这个程序专门用于监听另一个 Java 对象的方法调用或属性改变 当被监听对象发生上述事件后 监听器某个方法将立即自动执行 监听器的相关概念 事件 方法调用 属性改变 状态改变等
  • windows 安装linux子系统详细步骤

    1 dism exe online enable feature featurename Microsoft Windows Subsystem Linux all norestart 2 dism exe online enable fe
  • 对课程学习的期待

    我希望通过学习这门课程之后 自己可以设计出一些简单的程序 有利于之后的学习 例如 网络爬虫和一些有关于数据 图像处理的程序 我希望在理论课上老师可以通过一些有趣的示例来讲解课程内容 我认为这样可以更好的抓住学生的注意力而且可以使我们更容易理
  • 【无需显卡】AI绘画入门教程

    前言 Hello 各位端午节快乐呀 不好意思拖更两个月 最近实在是太忙了 也想不到有什么好玩的 之前介绍过了几个好玩的ai网站 非常适合新手尝鲜 但很多都有额度限制 而且还开始收费了 所以有了这期教程 还没看过上期可以看一下 除了ChatG
  • socks协议详解

    0x01 socks协议简介 Socks Socket Secure 协议是一种网络协议 处于会话层 用于管理网络连接并提供安全性和隐私保护 通过使用Socks代理服务器 客户端可以隐藏其真实IP地址和其他身份信息 从而匿名地访问互联网上的
  • php命令行传递参数,PHP命令行传递参数

    在以非命令行模式运行PHP的时候 我们可以通过 GET POST REQUEST来接受get或是post参数 但是以命令行方式运行的话 怎么传递参数以接受参数呢 关于命令行的特点 可以直接看官方文档 http php net manual
  • 【华为OD统一考试B卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • python 读写pcd

    1 读点云的3种方式 第一种 pip3 install python pcl import pcl pcd ndarray pcl load args pcd path to array 3 不要intensity pcd ndarray
  • 浏览器打开就是360导航(浏览器被360劫持)

    浏览器打开就是360导航 这个问题之前只是看别人帖子见到过 不知道出了什么问题我的edge和Chrome浏览器突然打开也成了360的导航页面 这才感觉出这个问题的恶心之处 而且顺道说一下 我电脑中也没有装任何360系的应用 但突然就被改了
  • 黑客基础知识——SYN泛洪攻击原理及防御

    拒绝服务攻击时 攻击者想非法占用被攻击者的一些资源 比如如 带宽 CPU 内存等等 使得被攻击者无法响应正常用户的请求 讲泛洪攻击之前 我们先了解一下DoS攻击和DDoS攻击 这两个攻击大体相同 前者的意思是 拒绝服务攻击 后者的意思是 分
  • docker下mysql镜像初始化

    目录 1 介绍 2 部署及验证 2 1 场景复现 2 2 创建dockerfile 2 3 初始化脚本 2 4 构建镜像并查看 2 5 创建容器并验证 2 6 完成 1 介绍 原理 当Mysql容器首次启动时 会在 docker entry
  • QT 多线程中使用QCanBusDevice进行PCAN通讯时,无法正常发出数据

    QT 多线程中使用QCanBusDevice进行PCAN通讯时 无法正常发出数据 前言 我一开始的代码逻辑是 PCAN开启 关闭 发送 接收这些功能整合在一个工具类中 这个工具类的对象是在主线程创建的 然后我有一个要循环定时发送的功能是独立
  • ASP.NET Core错误:Unable to cast object of type ‘System.Data.ProviderBase.DbConnectionClosedConnecting‘

    项目场景 在使用 net core开发时 经常使用数据库出现的问题 问题描述 开发ASP NET Core时遇到在经常使用数据库连接时报错误提示 Unable to cast object of type System Data Provi
  • QCefView源码优化

    QCefView项目源码的构建部分这里就不赘述了 有问题的朋友可以回到 QCefView 1 CMAKE项目 库文件生成和项目测试 查看相关介绍 本次优化主要包括以下几个部分 1 设置部分 关闭代理服务器 关闭同源策略 使用系统flash等
  • 不断完善

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 1 最简单的网页下载代码 import urllib2 使用urllib2模块 from sys import argv script urlo argv def down
  • 【核磁共振成像】部分傅里叶重建

    目录 一 部分傅里叶重建 二 部分傅里叶重建算法 2 1 填零 2 2 零差处理 一 部分傅里叶重建 在部分傅里叶采集中 数据并不是绕K空间中心对称收集的 而是K空间的一半是完全填充的 另一半只收集了一小部分数据 部分傅里叶采集所依据的原理
  • 公钥私钥证书与https

    公钥私钥 非对称加密 在一个过程中使用两个密钥 公共密钥用于加密信息 私用密钥用于解译加密的信息 这种加密方法称为非对称加密 也称为公钥加密 因为其中一个密钥是公开的 另一个私钥则需要自己保密 私钥签名 如果我用私钥加密一段数据 当然只有我
  • Request 获取请求数据(方法)

    1 Request 继承体系 2 Request 获取请求数据 2 1 请求行 String getMethod 获取请求方式 GET String getContextPath 获取虚拟目录 项目访问路径 request demo Str