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;
 }
相关推荐
SimonKing17 分钟前
Mybatis-Plus的竞争对手来了,试试 MyBatis-Flex
java·后端·程序员
光军oi23 分钟前
JAVA全栈JVM篇————初识JVM
java·开发语言·jvm
我命由我1234528 分钟前
PDFBox - PDFBox 加载 PDF 异常清单(数据为 null、数据为空、数据异常、文件为 null、文件不存在、文件异常)
java·服务器·后端·java-ee·pdf·intellij-idea·intellij idea
7哥♡ۣۖᝰꫛꫀꪝۣℋ36 分钟前
Spring Boot
java·spring boot·后端
Moniane37 分钟前
C++深度解析:从核心特性到现代编程实践
java·开发语言·jvm
攻城狮CSU43 分钟前
C# 数据加载专题 之泛型序列化
java·servlet·c#
浩泽学编程44 分钟前
【源码深度 第1篇】LinkedList:双向链表的设计与实现
java·数据结构·后端·链表·jdk
哲此一生9841 小时前
创建一个SpringBoot项目(连接数据库)
java·spring boot·后端
文心快码BaiduComate1 小时前
Comate Zulu实测:不会编程也能做软件?AI程序员现状令人震惊
java·程序员·前端框架
Michael_lcf1 小时前
Java的UDP通信:DatagramSocket和DatagramPacket
java·开发语言·udp