JavaWeb小记——请求对象request

news2024/11/17 1:44:48

目录

request对象

获取请求行

获取请求方式

获取项目的上下文路径

获取URI

获取URL

获取IP地址

获取协议版本

获取请求参数

获取请求头

获取日期头

获取数字头

获取请求体

获取请求参数

通用方式获取请求参数

单个获取

针对复选框

获取所有参数(map)

乱码问题


request对象

获取请求行

获取请求方式

//获取请求方式
        String method = request.getMethod();
        System.out.println(method); //Get Post

获取项目的上下文路径

//获取项目的上下文件路径
        String contextPath = request.getContextPath();
        System.out.println(contextPath);

URI 统一资源标识符
URL 定义资源定位符

获取URI

String requestURI = request.getRequestURI();

获取URL

StringBuffer requestURL = request.getRequestURL();

获取IP地址

String remoteAddr = request.getRemoteAddr();

获取协议版本

String protocol = request.getProtocol();

获取请求参数

获取get请求的请求参数

 

String queryString = request.getQueryString();//获取请求参数
System.out.println(queryString);  //username=wangqi&password=123456

当我们把请求参数设置成中文时,会出现什么问题呢?

如:username=旺期&password=123456

没错,在服务器中会出现中文的编码问题。

请求后:

我们需要在程序中对编码进行解码,便可呈现中文

String queryString = request.getQueryString();
        String decode = URLDecoder.decode(queryString,"utf-8");
        System.out.println(decode);

post请求的请求参数在请求体中,get请求没有请求体,post请求的请求体在下面会讲。

获取请求头

String host = request.getHeader("host");
System.out.println(host); //localhost:8080

获取日期头

request.getDateHeader(name);

获取数字头

request.getIntHeader(name);

获取请求体

只有post请求中才会有请求体,其请求参数在请求体中。

获取请求参数

 

//post请求获取请求参数
BufferedReader reader = request.getReader();
        String s = reader.readLine();
        System.out.println(s);

通用方式获取请求参数

单个获取

package org.xingyun.demo;

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(name = "Servletdemo5",value = "/demo5")
public class Servletdemo5 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        System.out.println(username);
        System.out.println(password);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}

针对复选框

 String[] hobbies = request.getParameterValues("hobby");

        for (String hobby : hobbies) {
            System.out.println(hobby);
        }

获取所有参数(map)

 Map<String, String[]> parameterMap = request.getParameterMap();
        parameterMap.forEach((key, strings) -> {
            System.out.println(key);
            System.out.println(Arrays.toString(strings));
        });

乱码问题

在tomcat8.0以上,get请求不会出现乱码,post请求会出现乱码问题

这时,我们需要设置请求编码

 request.setCharacterEncoding("utf-8");

package org.xingyun.demo;

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(name = "Servletdemo5",value = "/demo5")
public class Servletdemo5 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        System.out.println(username);
        System.out.println(password);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}

请求中文:

 

这就OK啦。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/687960.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Matlab基础知识汇总(小白速成)

1.矩阵 1.矩阵运算符 运算符号说明具体表现实现转置A.矩阵转置共轭转置A复矩阵共轭转置&#xff0c;当A为实数矩阵时等价于A.加减AB、A-B矩阵元素之间相互进行加减数与矩阵加减KA、K-A数与矩阵的加减操作数乘以矩阵k*A数对矩阵中的每个元素进行相乘矩阵相乘A * B A.*B乘法运算…

单片机STM32看门狗详解(嵌入式学习)

单片机STM32看门狗 什么是看门狗为什么需要看门狗&#xff1f;STM32CubeMX配置和应用示例独立看门狗&#xff08;IWDG&#xff09;窗口看门狗&#xff08;WWDG&#xff09; 注意事项 什么是看门狗 单片机STM32的看门狗&#xff08;Watchdog&#xff09;是一种硬件定时器&#…

PRL:城大团队提出新型量子理论

光子盒研究院 近期&#xff0c;由香港城市大学&#xff08;城大&#xff09;物理学家领导的团队开发了一个新的量子理论&#xff0c;解释了物质的“光诱导阶段(light-induced phase)”&#xff0c;并预测了它的新功能。 3月初&#xff0c;研究成果以Multidimensional Coherent …

基于Arduino UNO的智能摇头避障小车

目录 1.首先介绍两个基本函数 2.L298N控制逻辑 3.让小车实现前后左右轮子动代码示例 4.串口介绍 5.跟随小车开发 6.摇头避障小车开发 7.实物展示 1.首先介绍两个基本函数 void setup() { // put your setup code here, to run once: 把你的设置代码放在这里&#xff0…

创建项目并精细化配置【Vue3】

创建项目并精细化配置 git管理项目 基于 create-vue 创建出来的项目默认没有初始化git仓库&#xff0c;需要我们手动初始化 执行命令并完成首次提交 git initgit addgit commit -m “init” 什么是别名路径联想提示 在编写代码的过程中&#xff0c;一旦输入 /&#xff0c;V…

【数据分享】1929-2022年全球站点的逐日平均露点数据(Shp\Excel\12000个站点)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、能见度等指标&#xff0c;说到气象数据&#xff0c;最详细的气象数据是具体到气象监测站点的数据&#xff01; 对于具体到监测站点的气象数据&#xff0c;之前我们分享过1929-2022年全球气象…

【零基础入门学习Python---Python函数和模块】

&#x1f680; Python &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

protoBuf

序列化和反序列化 链接 序列化的对象是什么 程序对象 对象序列化之后是什么 字节流 protocol buffer 链接 教程 原文链接 Protocol Buffer 的作用 通过将结构化的数据&#xff08;拥有多种属性&#xff09;进行序列化&#xff0c;从而实现&#xff08;内存与硬盘之间…

探索MediaPipe检测人脸关键点

MediaPipe是Google开源的计算机视觉处理框架&#xff0c;基于TensorFlow来训练模型&#xff0c;支持人脸识别、人脸关键点、物体检测追踪、图像分类、人像分割、手势识别、文本分类、语音分类等。我们可以使用CPU来推理&#xff0c;也可以选择GPU加速推理。在滤镜特效场景&…

【软考网络管理员】2023年软考网管初级常见知识考点(17)-数据加密与签名摘要

涉及知识点 对称加密&#xff0c;非对称加密&#xff0c;数字签名&#xff0c;报文摘要&#xff0c;数字证书 软考网络管理员常考知识点&#xff0c;软考网络管理员网络安全&#xff0c;网络管理员考点汇总。 文章目录 涉及知识点前言一、对称加密技术1.DES2.3DES3.IDEA4.AES5…

系统架构的精髓:18个必懂的设计概念一览

要想在系统设计领域中脱颖而出&#xff0c;深入理解一些基础的系统设计概念是必不可少的&#xff0c;这些概念包括负载均衡、缓存、分区、复制、数据库和代理等。 依据我自己的经验&#xff0c;我总结出了18个关键概念&#xff0c;如果能掌握这些&#xff0c;将极大地提升你处…

Android APT 系列 (二):APT 筑基之注解

注解介绍 元数据 元数据就是为其他数据提供信息的数据 注解 官方解释&#xff1a;注解用于为代码提供元数据。作为元数据&#xff0c;注解不直接影响你的代码执行&#xff0c;但也有一些类型的注解实际上可以用于这一目的。Java 注解是从 JDK 1.5 开始添加到 Java 的。 简单…

建议收藏:OpenKruise入门与实践

简介 OpenKruise 是一个基于 Kubernetes 的扩展套件&#xff0c;主要聚焦于云原生应用的自动化&#xff0c;比如部署、发布、运维以及可用性防护。 OpenKruise 提供的绝大部分能力都是基于 CRD 扩展来定义&#xff0c;它们不存在于任何外部依赖&#xff0c;可以运行在任意纯净的…

css 背景颜色级别高于背景图

<div class"bg-parent"> <img :src"employeeImg" class"bg-url" /> <div class"bg"> <el-icon class"plus-icon"> <Plus /> </el-icon> </div> </div> .bg-parent{ //父级…

Web服务器群集:Nginx之Rewrite重写

目录 一、理论 1.Nginx正则表达式 2.location匹配 3.rewrite重写 二、实验 1.基于域名的跳转 2.基于客户端 IP访问跳转 3.基于旧域名跳转到新域名后面加目录 4.基于参数匹配的跳转 5.基于目录下所有 php结尾的文件跳转 6.基于最普通一条url请求的跳转 三、总结 一、…

福昕Foxit PDF远程代码执行漏洞CVE-2023-27363分析与复现

漏洞概述 福建福昕软件开发股份有限公司是一家国际化运营的PDF电子文档解决方案提供厂商&#xff0c;提供文档的生成、转换、显示、编辑、搜索、打印、存储、签章、表单、保护、安全分发管理等涵盖文档生命周期的产品技术与解决方案。其下产品Foxit PDF Reader和Foxit PDF Edit…

性能测试——App性能测试需要关注的指标

目录 一、Android客户端性能测试常见指标&#xff1a; 二、预期标准指定原则 三、测试方法及工具 一.从用户角度出发 二.站在管理员的角度考虑需要关注的性能点 三.站在开发(设计)人员角度去考虑 四.站在测试工程师角度考虑 总结&#xff1a; 一、Android客户端性能测试…

无功功率补偿及电容器的简单介绍 安科瑞 许敏

摘要&#xff1a;主要对无功功率的概念、电容器的补偿方式、补偿容量的计算等方面进行了阐述&#xff0c;在此基础上介绍了电容器运行的注意事项。 关键词&#xff1a;电力电容器&#xff1b;补偿方式 &#xff1b;运行 0 引言 笔者从进入吕合煤业从事电工工作的那天起&#…

Wav2Lip原理以及训练

原理 1: 音视频同步判别器 常规SyncNet&#xff1a; 功能&#xff1a;音频和嘴唇同步 实质&#xff1a;判断音频和唇形在某个共同参数空间下的相似性。 网络结构&#xff1a; 一种伪孪生网络结构&#xff0c;分别提取嘴形特征和音频特征&#xff0c;然后通过对比损失计算两者…

VS2017+OpenCV4.5.1 安装与配置,扩展模块opencv_contrib的安装与配置

文章目录 VS2017OpenCV4.5.1 安装与配置&#xff0c;扩展模块opencv_contrib的安装与配置1、OpenCV下载&#xff1a;&#xff08;1&#xff09;下载地址&#xff1a;https://opencv.org/releases/page&#xff08;2&#xff09;解压到指定文件夹&#xff1a; 2、配置环境&#…