MVC接收请求教程

mvc接收各种请求

1-环境搭建

1.1-准备apifox发送请求
1.2-项目搭建
①创建Web骨架的Maven项目

​ --打开2023-IDEA ,选择New Project

​ --选择Maven Archetype

​ --注意点:Catalog默认就行了

​ --Archetype选择webapp

​ --JDK跟着黑马敲最好用11

②创建好以上包结构
③导入pom.xml坐标
xml 复制代码
 <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.2.10.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.2.6</version>
    </dependency>

    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.6</version>
    </dependency>

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.33</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.2.10.RELEASE</version>
    </dependency>

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

    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>3.0.3</version>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>RELEASE</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>
④导入各种类,接口等

​ --config配置类

java 复制代码
//ServletContainersInitConfig
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[]{"/"};
    }

    @Override
    protected Filter[] getServletFilters() {
        CharacterEncodingFilter charactFilter =  new CharacterEncodingFilter();
        charactFilter.setEncoding("UTF-8");
        return new Filter[]{charactFilter};
    }
}

//SpringConfig
@Configuration
@ComponentScan(value = "com.bdqn",
        excludeFilters = @ComponentScan.Filter
                (type = FilterType.ANNOTATION, classes = Controller.class
                )) //排除注解类型,排除Controller.class
public class SpringConfig {
}

//SpringMvcConfig
@Configuration //标识这是一个配置类
@ComponentScan("com.bdqn.controller") //对指定范围进行扫包,对容器注册Bean对象
@EnableWebMvc //@EnableWebMvc 的作用是将当前的配置类标识为 Spring MVC 的配置类,并通过自动配置和默认功能,为我们提供方便快捷的 Spring MVC 开发环境。
public class SpringMvcConfig {
}

​ --controller包

java 复制代码
//UserController
@Controller
public class UserController {

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

    //post带中文参数的接收
    @RequestMapping("/getUser")
    @ResponseBody
    public String getUser(String name,int age){

        System.out.println("姓名:"+name);
        System.out.println("年龄:"+age);

        return "{'name':'"+name+"','age':'"+age+"',}";
    }


    //post发送json数据的接收
    @RequestMapping("/getJson")
    @ResponseBody
    public String getJson(@RequestBody User user){

        System.out.println("姓名:"+user.getName());
        System.out.println("年龄:"+user.getAge());

        return "{'name':'"+user.getName()+"','age':'"+user.getAge()+"',}";
    }
}

​ --mapper包

java 复制代码
public interface UserDao {
    @Insert("insert into tbl_user(name,age)values(#{name},#{age})")
    public void save(User user);
}

​ --pojo包

java 复制代码
@Data
public class User {
    private Integer id;
    private String name;
    private Integer age;
    //setter..getter..toString略
}

​ --service包

java 复制代码
public interface UserService {
    public void save(User user);
}

​ --impl

java 复制代码
@Service
public class UserServiceImpl implements UserService {

    @Override
    public void save(User user) {
        System.out.println("user service ...");
    }
}

2-请求参数

2.1-普通参数
①接口参数
apl 复制代码
请求类型--get

请求地址--http://localhost/commonParamDifferentName?name=张三&age=18

请求参数--name=张三&age=18
    
请求名称:普通参数请求    
②接收代码
java 复制代码
@RequestMapping("/commonParamDifferentName")
@ResponseBody
public String commonParamDifferentName(String userName , int age){
    System.out.println("普通参数传递 userName ==> "+userName);
    System.out.println("普通参数传递 age ==> "+age);
    return "{'module':'common param different name'}";
}
2.2-pojo参数
①接口参数
apl 复制代码
请求类型--post

请求地址--http://localhost/pojoParam

请求参数--name=张三&age=18
    
请求名称:pojo参数请求    
②接收代码
java 复制代码
//POJO参数:请求参数与形参对象中的属性对应即可完成参数传递
@RequestMapping("/pojoParam")
@ResponseBody
public String pojoParam(User user){
    System.out.println("pojo参数传递 user ==> "+user);
    return "{'module':'pojo param'}";
}
相关推荐
程序员梅雨1 分钟前
ZooKeeper面经总结
java·大数据·linux·分布式·后端·zookeeper·中间件
Yyyyyy~21 分钟前
【Java】多线程初阶
java
蜗牛互联网22 分钟前
Java 17 调用视觉 Responses API:JSON 约束与人工复核路由
java·人工智能·后端
SL_staff1 小时前
物模型三要素误用避坑指南:属性、事件、服务的正确建模逻辑
java
高频因子挖掘机1 小时前
股票分红送转后价格“断层”:前复权、后复权和不复权该怎么选?
后端·github·api
一条泥憨鱼1 小时前
【Redis | 黑马点评】短信登录功能 源码深度分析
java·redis·后端·session·黑马点评
威哥爱编程2 小时前
【AI全栈12-12】Spring Boot 3.x → 4.x 迁移实操:Jakarta 11、Jackson 3 与 AI 2.0
java·spring boot·后端
威哥爱编程2 小时前
【AI全栈12-11】Spring Boot 把 AI 接口真正上线扛量:限流 / 降级 / 可观测
java·spring boot·后端
小蒜学长2 小时前
基于SpringBoot+uni-app的闪洁家政系统的设计与实现(代码+数据库+LW)
java·spring boot·后端·uni-app·家政服务
敲代码的彭于晏2 小时前
2026 K8s 零基础入门:手把手教你一步步搭建 Kubernetes 集群
java·运维·全栈