SSM学习8:SpringMVC请求与响应

设置请求映射路径

设置配置
config/ServletContainersInitConfig.class

java 复制代码
public class ServletContainersInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer {

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

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

    protected Class<?>[] getRootConfigClasses() {
        return new Class[0];
    }
}

config/SpringMvcConfig.class

java 复制代码
@Configuration
@ComponentScan("com.itheima.controller")
public class SpringMvcConfig {
}

设置映射路径

java 复制代码
@Controller
//类上方配置的请求映射与方法上面配置的请求映射连接在一起,形成完整的请求映射路径
@RequestMapping("/user")
public class UserController {
    //请求路径映射
    @RequestMapping("/save")
    @ResponseBody
    public String save(){
        System.out.println("user save ...");
        return "{'module':'user save'}";
    }
    //请求路径映射
    @RequestMapping("/delete")
    @ResponseBody
    public String delete(){
        System.out.println("user delete ...");
        return "{'module':'user delete'}";
    }
}

@RequestMapping用于设置当前控制器方法的请求访问路径;如果设置在类上,则是当前控制器方法请求访问路径的前缀

请求

不区分get和post请求

普通参数

java 复制代码
 //普通参数:请求参数与形参名称对应即可完成参数传递
 @RequestMapping("/commonParam")
 @ResponseBody
 public String commonParam(String name ,int age){
     System.out.println("普通参数传递 name ==> "+name);
     System.out.println("普通参数传递 age ==> "+age);
     return "{'module':'common param'}";
 }

请求参数名与形参名不同

java 复制代码
//普通参数:请求参数名与形参名不同时,使用@RequestParam注解关联请求参数名称与形参名称之间的关系
@RequestMapping("/commonParamDifferentName")
@ResponseBody
public String commonParamDifferentName(@RequestParam("name") String userName , int age){
    System.out.println("普通参数传递 userName ==> "+userName);
    System.out.println("普通参数传递 age ==> "+age);
    return "{'module':'common param different name'}";
}

实体类

java 复制代码
 //POJO参数:请求参数与形参对象中的属性对应即可完成参数传递
 @RequestMapping("/pojoParam")
 @ResponseBody
 public String pojoParam(User user){
     System.out.println("pojo参数传递 user ==> "+user);
     return "{'module':'pojo param'}";
 }

实体类,json格式

java 复制代码
//POJO参数:json格式
 //1.开启json数据格式的自动转换,在配置类中开启@EnableWebMvc
 //2.使用@RequestBody注解将外部传递的json数据映射到形参的实体类对象中,要求属性名称一一对应
 @RequestMapping("/pojoParamForJson")
 @ResponseBody
 public String pojoParamForJson(@RequestBody User user){
     System.out.println("pojo(json)参数传递 user ==> "+user);
     return "{'module':'pojo for json param'}";
 }
java 复制代码
@Configuration
@ComponentScan("com.itheima.controller")
//开启json数据类型自动转换
@EnableWebMvc
public class SpringMvcConfig {
}

响应

返回文本

java 复制代码
//响应文本数据
 //返回值为String类型,设置返回值为任意字符串信息,即可实现返回指定字符串信息,需要依赖@ResponseBody注解
 @RequestMapping("/toText")
 @ResponseBody
 public String toText(){
     System.out.println("返回纯文本数据");
     return "response text";
 }

返回实体类

java 复制代码
//响应POJO对象
 //返回值为实体类对象,设置返回值为实体类类型,即可实现返回对应对象的json数据,需要依赖@ResponseBody注解和@EnableWebMvc注解
 @RequestMapping("/toJsonPOJO")
 @ResponseBody
 public User toJsonPOJO(){
     System.out.println("返回json对象数据");
     User user = new User();
     user.setName("itcast");
     user.setAge(15);
     return user;
 }

返回实体类集合

java 复制代码
 //响应POJO集合对象
 //返回值为集合对象,设置返回值为集合类型,即可实现返回对应集合的json数组数据,需要依赖@ResponseBody注解和@EnableWebMvc注解
 @RequestMapping("/toJsonList")
 @ResponseBody
 public List<User> toJsonList(){
     System.out.println("返回json集合数据");
     User user1 = new User();
     user1.setName("传智播客");
     user1.setAge(15);

     User user2 = new User();
     user2.setName("黑马程序员");
     user2.setAge(12);

     List<User> userList = new ArrayList<User>();
     userList.add(user1);
     userList.add(user2);

     return userList;
 }
相关推荐
xlsw_1 小时前
java全栈day20--Web后端实战(Mybatis基础2)
java·开发语言·mybatis
神仙别闹2 小时前
基于java的改良版超级玛丽小游戏
java
黄油饼卷咖喱鸡就味增汤拌孜然羊肉炒饭3 小时前
SpringBoot如何实现缓存预热?
java·spring boot·spring·缓存·程序员
暮湫3 小时前
泛型(2)
java
超爱吃士力架3 小时前
邀请逻辑
java·linux·后端
南宫生3 小时前
力扣-图论-17【算法学习day.67】
java·学习·算法·leetcode·图论
转码的小石3 小时前
12/21java基础
java
李小白663 小时前
Spring MVC(上)
java·spring·mvc
GoodStudyAndDayDayUp4 小时前
IDEA能够从mapper跳转到xml的插件
xml·java·intellij-idea
装不满的克莱因瓶4 小时前
【Redis经典面试题六】Redis的持久化机制是怎样的?
java·数据库·redis·持久化·aof·rdb