SpringMVC——请求与响应

目录

1.请求映射路径

2.请求参数

2.1参数传递

get请求​编辑

post请求

2.2中文乱码处理

2.4五种类型参数传递

普通参数(解决请求参数名与形参名不同)

pojo参数

嵌套pojo参数

数组参数

集合参数

3 json数据传递参数

3.1 json数组

1.导坐标

2.改核心配置

3.参数前面加@RequestBody

4.发送请求

3.2 json对象 (pojo)

3.3 json数组(pojo)

@RequestBody与@RequestParam区别

4.日期类型参数传递

5.响应json数据

5.1页面跳转

5.2 返回字符串

5.3 响应pojo对象

5.4响应pojo对象集合

5.5  @ResponseBody原理


1.请求映射路径

2.请求参数

2.1参数传递

@Controller
@RequestMapping("/user")
public class UserController {

    @RequestMapping("/save")
    @ResponseBody //表示返回值就是响应体
    public String save(String name, int age) {
        System.out.println("普通参数传递name-->" + name);
        System.out.println("普通参数传递age-->" + age);
        return "{'info':'springMVC'}";
    }
}

get请求

 post请求

2.2中文乱码处理

package com.config;

import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

import javax.servlet.Filter;

//简化开发
public class ServletContainersInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer {

    protected Class<?>[] getRootConfigClasses() {
        return new Class[]{SpringConfig.class};
    }

    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{SpringMvcConfig.class};
    }

    protected String[] getServletMappings() {
        return new String[]{"/"};
    }

    //中文乱码问题:过滤器,只能处理post请求
    @Override
    protected Filter[] getServletFilters() {
        CharacterEncodingFilter filter = new CharacterEncodingFilter();
        filter.setEncoding("UTF-8");
        return new Filter[]{filter};
    }
}

2.4五种类型参数传递

普通参数(解决请求参数名与形参名不同)

@Controller
@RequestMapping("/user")
public class UserController {

    @RequestMapping("/save")
    @ResponseBody //表示返回值就是响应体
    public String save(@RequestParam("username") String name, int age) {
        System.out.println("普通参数传递name-->" + name);
        System.out.println("普通参数传递age-->" + age);
        return "{'info':'springMVC'}";
    }
}

pojo参数

   
public class User {
    private int id;
    private String name;
}


 @RequestMapping("/pojo")
    @ResponseBody
    public String pojo(User user){
        System.out.println(user.getId()+"---"+user.getName());
        return "{'info':'springMVC'}";
    }

嵌套pojo参数

public class User {
    private int id;
    private String name;
    private Address address;
}

public class Address {
    private String city;
    private String country;
}


    @RequestMapping("/pojo")
    @ResponseBody
    public String pojo(User user){
        System.out.println(user);
        return "{'info':'springMVC'}";
    }

数组参数

    @RequestMapping("/arr")
    @ResponseBody
    public String arr(String[] likes) {
        System.out.println(Arrays.toString(likes));
        return "{'info':'springMVC'}";
    }

集合参数

    @RequestMapping("/list")
    @ResponseBody
    public String list(@RequestParam List<String> likes) {
        System.out.println(likes);
        return "{'info':'springMVC'}";
    }

3 json数据传递参数

3.1 json数组

1.导坐标

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.8</version>
        </dependency>

2.改核心配置

//@Configuration
@ComponentScan("com.controller")
@EnableWebMvc  //开启json数据转对象的功能
public class SpringMvcConfig {
}

3.参数前面加@RequestBody



    @RequestMapping("/json")
    @ResponseBody
    public String json(@RequestBody List<String> likes) {//数据在请求体中
        System.out.println(likes);
        return "{'info':'springMVC'}";
    }

4.发送请求


3.2 json对象 (pojo)

    @RequestMapping("/jsonPojo")
    @ResponseBody
    public String jsonPojo(@RequestBody User user) {//数据在请求体中
        System.out.println(user);
        return "{'info':'springMVC'}";
    }


3.3 json数组(pojo)

    @RequestMapping("/jsonPojoList")
    @ResponseBody
    public String jsonPojoList(@RequestBody List<User> users) {//数据在请求体中
        System.out.println(users);
        return "{'info':'springMVC'}";
    }

@RequestBody与@RequestParam区别


4.日期类型参数传递

    @RequestMapping("/data")
    @ResponseBody
    public String data(Date date1,
                       @DateTimeFormat(pattern = "yyyy-MM-dd") Date date2,
                       @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")Date date3) {
        System.out.println(date1);
        System.out.println(date2);
        System.out.println(date3);
        return "{'info':'springMVC'}";
    }


5.响应json数据

5.1页面跳转

    @RequestMapping("/jumpPage")
    public String jumpPage() {
        System.out.println("页面跳转");
        return "page.jsp";
    }

5.2 返回字符串

    //响应文本数据
    @RequestMapping("/text")
    @ResponseBody
    public String text() {
        System.out.println("文本数据");
        return "response text";
    }

5.3 响应pojo对象

    //响应pojo对象
    @RequestMapping("/pojo")
    @ResponseBody
    public User pojo() {
        System.out.println("pojo对象");
        User user = new User();
        user.setId(10);
        user.setName("zhangsan");
        Address address = new Address();
        address.setCity("wuhan");
        address.setCountry("China");
        user.setAddress(address);
        return user;
    }

5.4响应pojo对象集合

    //响应pojo对象集合
    @RequestMapping("/pojoList")
    @ResponseBody
    public List<User> pojoList() {
        System.out.println("pojo对象");
        User user1 = new User();
        user1.setId(10);
        user1.setName("zhangsan");
        User user2 = new User();
        user2.setId(20);
        user2.setName("lisi");
        List<User> list=new ArrayList<User>();
        list.add(user1);
        list.add(user2);
        return list;
    }

5.5  @ResponseBody原理

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值