【SpringMVC】获取请求参数的方式
SpringMVC获取请求参数的方式
方式1:ServletAPI
//servletAPI方式获取
@PostMapping(value = "/api/sign/register", produces = "application/json")
@ResponseBody
public String sendPostMessage(HttpServletRequest request){
String usercount = request.getParameter("userCount");
String userpwd = request.getParameter("userPwd");
int result = UserMethods.userAdd(usercount, usercount, userpwd);
return "{\"result\":\""+result+"\"}";
}

方法2:通过控制器方法的形参获取请求参数
@PostMapping(value = "/api/sign/register", produces = "application/json")
@ResponseBody
public String sendPostMessage(String userCount,String userPwd){
int result = UserMethods.userAdd(userCount, userCount, userPwd);
System.out.println(result);
return "{\"result\":\""+result+"\"}";
}

方法3:@RequestParam
@PostMapping(value = "/api/sign/register", produces = "application/json")
@ResponseBody
public String sendPostMessage(@RequestParam("userCount") String usercount,@RequestParam("userPwd") String userpwd){
int result = UserMethods.userAdd(usercount, usercount, userpwd);
System.out.println(result);
return "{\"result\":\""+result+"\"}";
}

可选参数写法如下
@RequestParam(value="userName",required = false,defaultValue = "未命名用户")
方法4:@RequestHeader
作用:将请求头信息和控制器方法形参创建映射关系
属性:value、required、defaultValue
请求头:

Example:
() @PostMapping(value = "/api/sign/register", produces = "application/json")
@ResponseBody
public String sendPostMessage(@RequestParam("userCount") String usercount,@RequestParam("userPwd") String userpwd,@RequestHeader(value="Host",required=false,defaultValue="") String host){
int result = UserMethods.userAdd(usercount, usercount, userpwd);
System.out.println(result);
return "{\"result\":\""+result+"\"}";
}
方法5:@CookieValue
作用:将Cookie数据和控制器方法形参创建映射关系
属性:value、required、defaultValue
用法同
@RequestParam、@RequestHeader
方法5:通过POJO获取请求参数
在控制器方法的形参位置设置一个实体类类型的形参
若浏览器传输的请求参数的参数名 与 实体类中的属性名 一致
那么该参数就会为此属性赋值
解决获取请求参数的乱码问题
可以使用SpringMVC提供的编码过滤器CharacterEncodingFilter(需要在web.xml中注册)
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceResponseEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

记录
1.注册页面路径设置
@RequestMapping("/reg")
public String register(){
return "/sign/register";
}


2.前端使用ajax方式POST提交到Java后端
function loginSubmit() {
var usercount = $("#email").val();
var password = $("#pwd").val();
var password2 = $("#pwdt").val();
var code = $("#code").val();
if (usercount == null | password == null) return false;
if (usercount == 0 | password == 0) return false;
if (password2 != password) {
tips("两次输入的密码不一致");
return false;
}
cookie_code = $.cookie('code');
cookie_email = $.cookie('email');
if (cookie_code == undefined) {
tips("验证码无效,请检查验证码或重新获取");
return false;
}
if (code != cookie_code) {
tips("验证码错误,请检查验证码或重新获取");
return false;
}
if (usercount != cookie_email) {
tips("当前填写邮箱与所验证的邮箱不一致!");
return false;
}
$.ajax({
type: 'POST',
url: '/api/sign/register',
data: {
'userCount':usercount,
'userPwd':password,
},
success: function(text) {
if(text["result"] == "1"){
$(document.body).text('注册成功,用户' +usercount);
}
},
error: function (jqXHR) {
$(document.body).text('Error: ' + jqXHR.status);
}
});
return false;
}
3.后端接收参数并处理
下面的只是其中一种接收方式
@PostMapping(value = "/api/sign/register", produces = "application/json")
@ResponseBody
public String sendPostMessage(@RequestParam("userCount") String usercount,@RequestParam("userPwd") String userpwd){
int result = UserMethods.userAdd(usercount, usercount, userpwd);
System.out.println(result);
return "{\"result\":\""+result+"\"}";
}
【SpringMVC】获取请求参数的方式的更多相关文章
- 入门servlet:request获取请求参数通用方式
一.获取请求参数通用方式 1. String getParameter(String name):根据参数名称获取参数值 例:username=flypig&password=2343 2. ...
- SpringMVC 获取请求参数
1.获取Request response对象 在SpringMVC的注解开发中,可以选择性的接收Request和Response对象来使用 2.获取request对象请求参数 a.通过request对 ...
- SpringMVC获取请求参数-POJO类型参数
1.Controller中的业务方法的POJO参数的属性名与请求参数一致,参数值会自动映射匹配 1.创建POJO类 public class User { private String usernam ...
- SpringMVC获取请求参数-基本类型
1.Controller中的业务方法的参数名称要与请求参数的name一致,参数值会自动映射匹配 (json形式) <dependency> <groupId>com.faste ...
- SpringMVC获取请求参数-集合类型
1.创建User实体类 ```java public class User { private String username; private int age; public String getU ...
- request获取请求参数通用方式
package com.hopetesting.web.request;import javax.servlet.ServletException;import javax.servlet.annot ...
- SpringMVC之请求参数的获取方式
转载出处:https://www.toutiao.com/i6510822190219264516/ SpringMVC之请求参数的获取方式 常见的一个web服务,如何获取请求参数? 一般最常见的请求 ...
- 学习SpringMVC——如何获取请求参数
@RequestParam,你一定见过:@PathVariable,你肯定也知道:@QueryParam,你怎么会不晓得?!还有你熟悉的他(@CookieValue)!她(@ModelAndView) ...
- springMvc源码学习之:spirngMVC获取请求参数的方法2
@RequestParam,你一定见过:@PathVariable,你肯定也知道:@QueryParam,你怎么会不晓得?!还有你熟悉的他 (@CookieValue)!她(@ModelAndView ...
- springMVC(spring)+WebSocket案例(获取请求参数)
开发环境(最低版本):spring 4.0+java7+tomcat7.0.47+sockjs 前端页面要引入: <script src="http://cdn.jsdelivr.ne ...
随机推荐
- 通过一个题目三种变式讲清楚go接口类型断言
[第一种]一种类型实现多个接口,各个接口变量调用各自的方法 type Work struct { i int } func (w Work) ShowA() int { return w.i + 10 ...
- Android Qcom USB Driver学习(八)
因为要看usb charging的问题,所以需要补充一下battery的相关知识,算是入门吧 BAT SCH (1)VBATT_VSNS_P (2)BAT_THERM (3)I2C_SDA (4)I2 ...
- C# 根据主键ID查询数据库的数据 反射和泛型实现
// 引入命名空间 using Zhu.ADO.NET.DBProxy; using Zhu.ADO.NET.Models.models; Console.WriteLine("====== ...
- 如何在Windows 11系统中将任意文件(如bat/log等)固定在开始菜单?
在Windows 11系统中,默认只支持将.exe/文件夹/.zip固定在开始菜单,如果想将其他文件如.bat/.log等文件固定在开始菜单将在右键菜单中找不到选项. 一个更简单的办法: 对任意文件右 ...
- HttpUtils 详解
一.详解 1.1 介绍 现如今的 Web 项目,由服务端向外发起网络请求的场景,基本上随处可见! 传统情况下,在服务端代码里访问 http 服务时,一般会使用 JDK 的 HttpURLConnect ...
- 揭秘!KubeSphere 背后的“超级大脑”:etcd 的魅力与力量
作者:尹珉,KubeSphere Ambassador & Contributor,KubeSphere 社区用户委员会杭州站站长. 1. 开篇:揭开神秘面纱,etcd 如何驱动 KubeSp ...
- Ubuntu 22.04 和 Windows 时间冲突解决方案
默认情况下,Ubuntu(和大多数其他 Linux 发行版)假设硬件时钟设置为协调世界时间(UTC + 0),而 Windows 则假设硬件时钟设置为当地时间,这导致 Ubuntu 快 8 小时. 这 ...
- NIO聊天室
SocketChannel 和 ServerSocketChannel ServerSocketChannel 用于创建服务器端套接字,而 SocketChannel 用于创建客户端套接字.它们都支持 ...
- nginx配置高可用的集群
上图: (1)需要两台 nginx 服务器 (2)需要 keepalived (3)需要虚拟 ip 准备工作 配置高可用的准备工作 (1)需要两台服务器,两个Linux虚拟机即可,这里是 192.16 ...
- 关于sizeof、strlen的理解与辨析以及strlen的模拟实现
关于sizeof.strlen的理解与辨析以及strlen的模拟实现 1. sizeof() sizeof的作用: 计算变量所占内存内存空间大小,单位是字节. 注意事项: ① 首先要明确的一点是:si ...