Spring MVC各种提交形式以及参数接收(form表单提交以及Json提交)

简介: form表单参数接收的三种方式

form表单参数接收的三种方式:

1.HttpServletRequest

   @RequestMapping(value = "/getParmByReq.do", method = RequestMethod.POST)

@RequestMapping(value = "/getParmByReq.do", method = RequestMethod.POST)
    @ResponseBody
    public String getParmByReq(HttpServletRequest request) {
        String name = request.getParameter("name");
        int age = Integer.parseInt(request.getParameter("age"));
        System.out.println("接收到的参数,name=" + name + ";age=" + age);
        return "接收到的参数,name=" + name + ";age=" + age;
    }

用curl 测试结果: (-d 表示post请求)

curl   -d "name=admin&age=34"   http://localhost:8080/ssm-req/form/getParmByReq.do

133b95d52499942d7c8479f3424417fd_2018113022143855.png

2. 一个个参数接收,单个参数按照名称接收:

@RequestMapping(value = "/requestParam.do", method = RequestMethod.POST)
    @ResponseBody
    public String getBarBySimplePathWithRequestParam(
            @RequestParam(value = "name") String name,
            @RequestParam(value = "age") Integer age
    ) {
        System.out.println("接收到的参数,name=" + name + ";age=" + age);
        return "接收到的参数,name=" + name + ";age=" + age;
    }

用curl 测试结果:

curl   -d "name=ceshi&age=22"   http://localhost:8080/ssm-req/form/requestParam.do

adbcbd84aa262719c5e55e2bdd8472d3_20181130221905702.png

3. 自定义实体类接收,使用注解:@ModelAttribute

@RequestMapping(value = "modelAttribute.do", method = RequestMethod.POST)
    @ResponseBody
    public String getModelAttribute(@ModelAttribute() User user) {
        System.out.println("接收到的参数,name=" + user.getName() + ";age=" + user.getAge());
        return "接收到的参数,name=" + user.getName() + ";age=" + user.getAge();
    }

用curl 测试结果:

curl   -d "name=jaywei&age=33"   http://localhost:8080/ssm-req/form/modelAttribute.do

15490d948385017ce19490c0dbf60ff9_20181130222209300.png

4. 不用流的形式接收

@RequestMapping(value = "/getNotStream.do")
    @ResponseBody
    public String getNotStream(String order) {
        JSONObject jsonObject = JSONObject.parseObject(order);
        System.out.println("接收到的参数,name=" + jsonObject.getString("name") + ";age=" + jsonObject.getString("age"));
        return "接收到的参数,name=" + jsonObject.getString("name") + ";age=" + jsonObject.getString("age");
    }

用curl 测试结果

curl   -d "order={'name':'张三','age':12}"   http://localhost:8080/ssm-req/form//getNotStream.do

fa8cb045fe86e568b4f5e48ea5e4ebde_20181130223718787.png

小结:

推荐使用:@ModelAttribute 接收参数的方式。

PS: 解决中文乱码问题,在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>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>


JSON提交参数接收

使用@RequestBody注解,该注解是将参数放在请求体中

@RequestMapping(value = "getJson2.do",produces = "application/json")
    public String getJson2(@RequestBody String userStr) {
        User user = JSON.parseObject(userStr, User.class);
        System.out.println("接收到的参数,name=" + user.getName() + ";age=" + user.getAge());
        return JSON.toJSONString("接收到的参数,name=" + user.getName() + ";age=" + user.getAge());
    }

用curl测试结果

curl   -H "Content-Type:application/json" -X POST -d "{'name':'sange','age':12}"   http://localhost:8080/ssm-req/json/getJson2.do

8639bac2df980cc99cd516b1ecf46a9b_20181130232840134.png

源码地址:

https://github.com/XWxiaowei/JavaWeb/tree/master/ssm-request-demo


相关文章
|
2月前
|
JSON 前端开发 Java
Spring MVC——获取参数和响应
本文介绍了如何在Spring框架中通过不同的注解和方法获取URL参数、上传文件、处理cookie和session、以及响应不同类型的数据。具体内容包括使用`@PathVariable`获取URL中的参数,使用`MultipartFile`上传文件,通过`HttpServletRequest`和`@CookieValue`获取cookie,通过`HttpSession`和`@SessionAttribute`获取session,以及如何返回静态页面、HTML代码片段、JSON数据,并设置HTTP状态码和响应头。
66 1
Spring MVC——获取参数和响应
|
7月前
|
JSON Java 数据安全/隐私保护
java中的http请求的封装(GET、POST、form表单、JSON形式、SIGN加密形式)
java中的http请求的封装(GET、POST、form表单、JSON形式、SIGN加密形式)
585 1
|
4月前
|
XML 前端开发 Java
Spring MVC接收param参数(直接接收、注解接收、集合接收、实体接收)
Spring MVC提供了灵活多样的参数接收方式,可以满足各种不同场景下的需求。了解并熟练运用这些基本的参数接收技巧,可以使得Web应用的开发更加方便、高效。同时,也是提高代码的可读性和维护性的关键所在。在实际开发过程中,根据具体需求选择最合适的参数接收方式,能够有效提升开发效率和应用性能。
139 3
|
4月前
|
XML 前端开发 Java
Spring MVC接收param参数(直接接收、注解接收、集合接收、实体接收)
Spring MVC提供了灵活多样的参数接收方式,可以满足各种不同场景下的需求。了解并熟练运用这些基本的参数接收技巧,可以使得Web应用的开发更加方便、高效。同时,也是提高代码的可读性和维护性的关键所在。在实际开发过程中,根据具体需求选择最合适的参数接收方式,能够有效提升开发效率和应用性能。
235 2
|
4月前
|
JSON JavaScript 数据格式
html jquery from 表单提交 application/x-www-form-urlencoded 改成 json
html jquery from 表单提交 application/x-www-form-urlencoded 改成 json
49 0
|
6月前
|
Web App开发 前端开发 Java
基于Spring3 MVC实现基于HTML form表单文件上传
基于Spring3 MVC实现基于HTML form表单文件上传
48 7
基于Spring3 MVC实现基于HTML form表单文件上传
|
4月前
|
XML 前端开发 Java
Spring MVC接收param参数(直接接收、注解接收、集合接收、实体接收)
Spring MVC提供了灵活多样的参数接收方式,可以满足各种不同场景下的需求。了解并熟练运用这些基本的参数接收技巧,可以使得Web应用的开发更加方便、高效。同时,也是提高代码的可读性和维护性的关键所在。在实际开发过程中,根据具体需求选择最合适的参数接收方式,能够有效提升开发效率和应用性能。
42 0
|
5月前
|
JSON 数据格式
MysbatisPlus-核心功能-IService开发基础业务接口,MysbatisPlus_Restful风格,新增@RequestBody指定是为了接收Json数据的,使用swagger必须注解
MysbatisPlus-核心功能-IService开发基础业务接口,MysbatisPlus_Restful风格,新增@RequestBody指定是为了接收Json数据的,使用swagger必须注解
|
6月前
|
JSON 前端开发 Java
记录一次让我吐血的spring3 MVC HTTP406 Json转换错误
记录一次让我吐血的spring3 MVC HTTP406 Json转换错误
38 0
|
7月前
|
前端开发 Java Spring
参数解密:揭示Spring MVC请求参数处理的实际应用指南
参数解密:揭示Spring MVC请求参数处理的实际应用指南
58 1