【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 ...
随机推荐
- aarch64 和 ARMV8 的区别
aarch64 和 ARMv8 是紧密相关但涵义不同的术语,在解释他们的区别之前,让我们先简单理解它们各自的含义: ARMv8: ARMv8 是指 ARM 架构的第八个版本,这是由 ARM Holdi ...
- 将python文件编译成exe文件
第一种方法:我们只会生成一个exe文件,因为所有的库文件他都会包含在这个exe文件中 1.安装:pyinstaller pip install pyinstaller 2.使用如下命令编译 pyins ...
- 前端工程化解决方案webpack使用小结
前端工程化解决方案webpack,模块化.组件化.规范化.自动化,使得前端开发更加高效. 功能:代码压缩混淆.处理浏览器端js的兼容性.以模块化的方式处理项目中的资源 webpack插件:clean- ...
- 如何解决token过期问题 ?
首先 token 过期会导致请求不到数据 , 就不能准确渲染页面 ,此时的错误配置项的token是过期的,只要更新了token 拿着原先的配置项重新请求数据即可 :但是如果更新token的时候请求错误 ...
- Ex-BSGS
给定\(a,p,b\),求\(a^x\equiv b \pmod p\)的最小自然数\(x\) . 保证\(\sum \sqrt p \leq5\times 10^6\) 当\(a=p=b=0\)时, ...
- mysql基础-事务
本篇章为初步了解mysql数据事务控制问题,事务作为MySQL的基础篇章是至关重要的一部分内容! 事务 1.事务简介 事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一 ...
- go:极简上手使用 stretchr/testify 进行mock测试
库安装 首先,安装 Mock 类生成工具 Mockery: go install github.com/vektra/mockery/v2@v2.45.1 实际上,你也可以手动创建 Mock 类. 生 ...
- .NET + 微信小程序开源多功能电商系统
前言 推荐一款基于微信小程序.LayUI 和 .NET 平台的多功能电商系统,支持二次开发和扩展,帮助大家轻松快速搭建一个功能全面且易于管理的在线商城. 项目介绍 该项目不仅包含了微信小程序前端,还配 ...
- MarkDown用法学习笔记
标题: 用 '#'标识,可以到从1到6级标题设置,有多少个'#'符号就对应多少级标题 粗体: 用''标识,如果两边只有一个''标识是斜体,如果两有2个这符号标题是加粗,如果有3个这符号标识是斜体和加粗 ...
- Windows Server 开启远程桌面
工作中不可避免地经常要用到WindowsServer,为了使用的方便,配置了远程桌面,这里记录一下远程桌面配置过程中遇到的一些问题以及解决方法. Windows Server2008 R2 x64 1 ...