HttpServletRequest getParameter 为 null

article/2025/10/30 16:09:40

一、简介

HttpServletRequest 提供了 getParameter 方法,可以非常方便获取请求行/请求体中key/value形式的数据(x-www-form-urlencoded、multipart/form-data,其都是key/value形式,只是对数据编码方式有差别),对于application/json 之类的数据只能使用流的方式读取。

二、创建web 项目工程

1.TestServlet.java

package servlet;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** Servlet implementation class TestServlet*/
@WebServlet("/test")
public class TestServlet extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String name = request.getParameter("name");System.out.println("name:" + name);response.getWriter().append("Served at: ").append(request.getContextPath());}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//request.setCharacterEncoding  只能解决post 乱码问题request.setCharacterEncoding("utf-8");doGet(request, response);}}

2.test.jsp 请求核心

fetch('http://localhost:8080/web-test/test?',{method:'post',body:'name=vincent',headers:{'Content-Type':'application/json',}}).then(resp=>{return resp.text();}).then(resp=>{console.log(resp);});

3.效果如下:
在这里插入图片描述

4.test.jsp headers Content-Type 修改为:application/x-www-form-urlencoded:

在这里插入图片描述

三、总结

HttpServletRequest getParameter 获取参数有如下条件:

1.request.getParameter() 方法获取的参数是形如key/value 形式的数据(x-www-form-urlencoded、multipart/form-data、及请求行中的key1=value1&key2=value2),与数据所在位置(请求体)和请求方法(GET、POST)无关。

2.request.setCharacterEncoding 只能解决post 乱码问题,对于get 方式只能获取到参数值再使用String 相关的转码方式(ISO-8859-1解码)


http://chatgpt.dhexx.cn/article/raNevaAm.shtml

相关文章

JSP内置对象request——getParameter的使用

文章目录 一、request的作用二、使用步骤 一、request是什么? request对象用来接收客户端提交的各种信息。客户端的请求信息被封装在request中,通过它才能了解到客户的需求,然后作出相应。request是HttpServletRequest类的实例。request具有…

理解Java反射机制

理解Java反射机制 1. 概述2. 反射原理3. 反射的优缺点4. 反射的用途5. 反射相关的类5.1 Constructor5.2 Field5.3 Method5.4 Class类的原理 6. 反射实例6.1 创建对象6.2 获取/修改属性6.3 调用方法6.4 调用内部类 7. 小节 对于Java使用者来说,反射机制可以说是不得不…

Java 反射机制快速入门及常见方法全归纳。

目录 一、反射机制 1、基本介绍 2、原理示意图 3、反射基本代码实现 4、反射性能 二、Class 类 1、基本介绍 2、获取 Class类对象的方式 3、有 Class对象的类 三、类加载 1、基本介绍 2、连接阶段 四、常见方法取类的结构信息 1、常用类的方法 2、通过反射创建对…

利用java反射机制修改属性值

利用java反射机制修改属性值 本文将介绍如何利用java反射机制修改属性值,废话不多说,直接上代码 1、新建一个实体类,添加属性test以及获取属性值的方法getTest() public class ReflectTest {//测试修改属性String test "修改前的值&q…

Java反射机制的基本认识

关于Java类加载 编译:java文件编译后生成class字节码文件类加载机制:JVM把class文件加载到内存,并对数据进行校验、准备、解析、初始化,最终形成JVM可以直接使用的Java类型的过程。 关于Java反射 Java反射机制是在运行状态中&…

Java基础篇:反射机制详解

一、什么是反射: (1)Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。本质是JVM得到class对象之后,再通过class对象进行反编译,从而获取对象的各种信息。 …

Java 反射机制与动态代理

1.什么是反射机制? Java反射机制是在运行状态中,对任意一个类(class文件)都能知道这个类的属性和方法、对于任意一个对象都能调用它的属性和方法,这种动态获取的信息以及调用对象的方法的功能称为Java语言的反射机制。…

java反射机制面试_java反射机制面试题及答案整理,java反射面试题

大家对于java反射机制应该都是很了解的吧,那么下面要给大家分享的就是一组和java反射机制有关的java面试题,下面一起来看看java反射面试题都有哪些吧! java反射机制面试题: 1、java反射机制的作用是什么? 答案:在运行的时候构造任意一个类的…

Java反射机制(简单易懂)

文章目录 前言一、反射机制二、反射的用途三、反射相关的类(重要)3.1 Class类(反射机制的起源 )3.2 通过反射调用构造方法3.3 通过反射调用普通方法3.4 通过反射调用类属性 四、反射的优缺点总结 前言 博主个人社区:开发与算法学习社区 博主个…

Java反射机制详解

文章目录 1.反射1.1 反射的概述为什么需要反射? 1.2 获取Class类对象的三种方式1.2.1 代码示例 1.3 反射获取构造方法并应用1.3.1 Class类获取构造方法对象的方法1.3.2 代码示例1.3.3 Constructor类用于创建对象的方法1.3.4 代码示例1.3.5 小结 1.4 反射获取成员变量…

Java反射机制

Java反射机制 前言一、反射的概述反射的定义反射的作用 反射的应用场合 二、Java反射机制反射机制原理示意图Java Reflection反射使用步骤 三、 Class类基本介绍常用方法获取Class类对象对象实例化的方式通过反射获取类的相关信息 四、类加载基本说明类加载时机类加载过程图类加…

JAVA反射机制及其原理实现

9.1 概念 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;public、protected、private。 OO(面向对象)&#xf…

day17-基础加强(类加载器和反射)

1.类加载器 1.1类加载器【理解】 作用 负责将.class文件(存储的物理文件)加载在到内存中 1.2类加载的过程【理解】 类加载时机 创建类的实例(对象)调用类的类方法访问类或者接口的类变量,或者为该类变量赋值使用反射…

Java-反射机制(超详解)

Java反射机制概述 前言一、Java反射机制概述1. Java Reflection2. 动态语言 vs 静态语言 二、 Class类的理解1. 类的加载过程1.1 初步了解1.2 类的加载过程图解1.3 了解:什么时候会发生类初始化?1.4 类加载器的作用1.5 JVM中不同类型的类的加载器1.6 代码…

Java--反射机制原理、几种Class获取方式及应用场景

目录 📢学习背景🎹一、Java反射机制是什么?🎸1.1 反射原理📣1.2 反射例子 🎵二、Java反射机制中获取Class的三种方式及区别?📀2.1 Class的几种获取方式🔊2.2 代码演示几种…

关于线程和进程的区别

进程 : 一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程,比如在Windows系统中,一个运行的xx.exe就是一个进程 线程: 进程中的一个执行任务(控制单元)&…

从内核角度看Linux 线程和进程的区别

多数人都会讲说线程和进程在内核中是相同的,没有严格地做区分。这样讲是没错了,但对于应用开发者来说,这样讲是有点笼统。本文将从内核角度,分析线程和进程之间的区别,希望能对这一块感兴趣的人提供借鉴意义。 1 数据…

java线程与进程的区别是什么?

关于进程与线程的文章早已是非常多了,本文是对我个人过往学习,理解及应用进程与线程的一个总结。此文内容涉及进程线程的区别,什么是进程,什么是线程?希望对大家有所帮助。 java线程与进程的区别是什么? 进程:是并…

Java面试--线程和进程的区别

面试题:线程和进程的区别是什么(招银网络科技、阿里巴巴面试题) 一、线程和进程的区别是什么? 1、进程是一段正在执行的程序,是资源分配的基本单元,而线程是CPU调度的基本单元。 2、进程间相互独立进程&a…

对线程与进程的区别以及对多线程并发的理解

一、线程与进程的区别 先简单说说线程与进程的概念: (1)进程是指一个内存中运行的应用程序,比如在Windows系统中,一个运行的exe就是一个进程。 (2)线程是指进程中的一个执行流程。 区别&…