SpringMVC学习笔记2——请求与响应——黑马程序员

学习记录使用~

请求与响应

请求映射路径

  • 路径冲突问题,不同的人起的路径名字可能一致导致,找不到路径会出现错误。
  • 解决方式:通过RequestMapping统一设置请求路径前缀。

请求方式 

Get请求

给要访问的方法设置参数

postMan中给参数赋值 

IDEA端也接收到参数

Post请求

先在PostMan端设置参数,点击send,若请求成功则在IDEA端显示出数据

 解决post请求中文乱码问题——在ServletContainersInitConfig类中添加下面方法

 请求参数

@Controller
@RequestMapping("/user")
public class UserController {
    @RequestMapping("/save")
    @ResponseBody
    public String save(String name,int age){
        System.out.println("user save....param name==>"+name);
        System.out.println("user save....param age==>"+age);

        return "{'module':'user save'}";
    }
    //普通参数传参
    //@RequestParam("name")把请求中的参数给到userName
    @RequestMapping("/commonParamDifferentName")
    @ResponseBody
    public String commonParamDifferentName(@RequestParam("name") String userName, int age){
        System.out.println("user save....param userName==>"+userName);
        System.out.println("user save....param age==>"+age);

        return "{'module':'user save'}";
    }
    //引用类型类型
    @RequestMapping("/pojoParam")
    @ResponseBody
    public String pojoParam(User user){
        System.out.println("pojo参数传递 User==>"+user);

        return "{'module':'pojo Param'}";
    }
    //引用类型中有引用类型
    @RequestMapping("/pojoContainParam")
    @ResponseBody
    public String pojoContainParam(User user){
        System.out.println("pojo嵌套pojo参数传递 User==>"+user);

        return "{'module':'pojo Contain Param'}";
    }

    //数组参数
    @RequestMapping("/arrayParam")
    @ResponseBody
    public String arrayParam(String[] likes){
        System.out.println("数组参数传递 likes==>"+ Arrays.toString(likes));
        return "{'module':'array Param'}";
    }

    //集合参数
    @RequestMapping("/listParam")
    @ResponseBody
    public String listParam(@RequestParam List<String> likes){
        System.out.println("集合参数传递 likes==>"+likes);
        return "{'module':'List Param'}";
    }

    //集合参数:jason
    @RequestMapping("/listParamJson")
    @ResponseBody
    public String listParamJson(@RequestBody List<String> likes){
        System.out.println("集合参数传递 likesJASON==>"+likes);
        return "{'module':'List Param Json'}";
    }
    //User---JSON
    @RequestMapping("/pojoContainParamJSON")
    @ResponseBody
    public String pojoContainParamJSON(@RequestBody User user){
        System.out.println("pojo嵌套pojo参数传递 User==>"+user);

        return "{'module':'pojoJSON Contain Param'}";
    }

    //集合参数:userjason
    @RequestMapping("/listParamUserJson")
    @ResponseBody
    public String listParamUserJson(@RequestBody List<User> users){
        System.out.println("集合User参数传递 listUserJASON==>"+users);
        return "{'module':'ListUser Param Json'}";
    }
}

 日期类型参数传递

    //日期参数
    //  @DateTimeFormat指定日期格式
    @RequestMapping("/dataParam")
    @ResponseBody
    public String dataParam(Date date,
                            @DateTimeFormat(pattern = "yyyy-MM-dd") Date date1,
                            @DateTimeFormat(pattern = "yyyy/MM/dd HH:mm:ss") Date date2){
        System.out.println("参数传递 date==>"+date);
        System.out.println("参数传递 date1(yyyy-MM-dd)==>"+date1);
        System.out.println("参数传递 date2(yyyy/MM/dd HH:mm:ss)==>"+date2);
        return "{'module':'Date Param'}";
    }

 PostMan中输入的网址如下:

IDEA中接收参数成功的样子如下:

 类型转换接口——Converter

响应 

//响应页面或跳转页面
    @RequestMapping("/toJumpPage")
    @ResponseBody//设置当前控制器返回值作为响应体-----HttpMessageConverter接口
    public String toJumPage(){
        System.out.println("跳转页面");
        return "page.jsp";
    }


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

    //响应POJO对象
    @RequestMapping("/toJsonPOJO")
    @ResponseBody
    public User toJsonPOJO(){
        System.out.println("返回JSON对象数据");
        User user=new User();
        user.setName("itcast");
        user.setAge(20);
        return user;
    }

    //响应POJO集合对象
    @RequestMapping("/toJsonList")
    @ResponseBody
    public List<User> toJsonList(){
        System.out.println("返回JSON集合数据");
        User user=new User();
        user.setName("小明同学");
        user.setAge(20);

        User user2=new User();
        user2.setName("小美");
        user2.setAge(25);
        List<User> userList=new ArrayList<>();
        userList.add(user);
        userList.add(user2);
        return userList;
    }

ResponseBody将当前控制器返回值作为响应体,将JSON类型的返回值传出去,是谁将其他类型变成JSON的呢?是HttpMessageConverter这个类将其他类型转换成JSON类型 。

注意:ResponseBody在请求中的作用的设置当前控制器方法响应内容为当前返回值,无需解析

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值