SSM学习8:SpringMVC请求与响应

设置请求映射路径

设置配置
config/ServletContainersInitConfig.class

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

@Configuration
@ComponentScan("com.itheima.controller")
public class SpringMvcConfig {
}

设置映射路径

@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请求

普通参数

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

请求参数名与形参名不同

//普通参数:请求参数名与形参名不同时,使用@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'}";
}

实体类

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

实体类,json格式

//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'}";
 }
@Configuration
@ComponentScan("com.itheima.controller")
//开启json数据类型自动转换
@EnableWebMvc
public class SpringMvcConfig {
}

响应

返回文本

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

返回实体类

//响应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;
 }

返回实体类集合

 //响应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;
 }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无知的小菜鸡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值