异常修复——表单的action传参数异常解决
一. 问题介绍
最近在学习Web开发时,有的同学尝试着使用表单的action传参数,结果发现Servlet中无法接受到前端传入的参数信息,具体代码如下所示:
前端代码参数
后台Servlet代码
最终打印结果为: null
二. 问题梳理
对于这个结果,这个同学表示很疑惑,结果怎么是null呢?而我们发现,如果是从url中直接访问http://localhost:8080/user?id=1001时,可以接收到前端传来的数据,但利用form表单传参时获取的值却是null,难道表单中的action参数不是和直接访问url一样的吗?
接下来,就给你解答下这个疑惑。
之所以会出现上述现象,这是因为当action传参时,默认的是get请求方式,会将action中的参数清除,也就是url中的参数被清除掉了,变成了http://localhost:8080/user? 这种形式,所以Servlet中就无法获取到请求参数了。
三. 解决方案
那么这个问题该怎么解决呢?这里平哥给出如下2种具体的解决方案。
1. 第一种方案,我们可以将表单的请求方式改为post,因为post请求是以请求体的方式传参数,url中的参数不会被清理。
2. 第二种方案,我们可以使用隐藏控件传参,这时无论是get/post请求都可以,如下所示:
如果是以get请求传参,则会以url方式传参;如果是以post请求传参,则会将id参数以请求体的方式传到后台Servlet中。
现在你知道这个问题是怎么产生、怎么解决的吗?
相关推荐HOT
更多>>如何添加Java环境变量?
要添加Java环境变量,可以按照以下步骤:并安装Java开发工具包(JDK)、找到Java安装路径、设置JAVA_HOME环境变量、添加Java可执行文件路径到PATH...详情>>
2023-05-04 11:00:56从零开始学Java之String字符串的编码
对很多小白来说,可能不明白什么是字符编码,也不知道为什么要有字符编码,所以先来给大家简要地介绍一下字符编码。详情>>
2023-05-04 10:21:02新手速来!几步带你掌握MyBatis Plus
Mybatis-Plus(简称MP)是一款Mybatis的增强工具,它是在Mybatis的基础上实现的简化开发工具。Mybatis-Plus给我们提供了开箱即用的CRUD操作、自动...详情>>
2023-04-28 10:57:09学习java需要什么基础?基础知识有哪些?
网络编程:了解基本的网络编程概念和协议,熟悉 Java 网络编程 API。建议在学习 Java 之前,先学习一些基础的编程语言,如 C 或 Python 等,这...详情>>
2023-04-28 10:41:14