Java学习Day41:骑龙救!(springMVC)

springMVC与sevlet都是对应表现层web的,但是越复杂的项目使用SpringMVC越方便

基于Java实现MVC模型的轻量级web框架

目标:

小案例:

1.导入依赖

java 复制代码
spring-context: 提供 Spring 框架的核心功能,如依赖注入、事件发布和其他应用上下文的功能。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.20</version>
</dependency>
aspectjweaver: 提供 AspectJ 框架的织入支持,允许你在 Spring 应用中使用面向切面编程(AOP)
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.4</version>
</dependency>
<!--   springMVC依赖注入     -->
javax.servlet-api: 提供 Java Servlet API 的接口,用于构建 web 应用的服务器端逻辑。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
spring-webmvc: 支持 Spring MVC 框架,用于构建 web 应用程序的控制器和视图层,处理 HTTP 请求和响应。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>请告诉我这些依赖的作用

2.使用@controller定义Bean,并定义访问路径

java 复制代码
@Controller
public class UserController {
    @RequestMapping("save")//定义访问路径
    @ResponseBody//设置当前返回值类型,将返回值当作一个整体返回
    public String save() {
        System.out.println("user save");
        return "{'info':'springmvc'}";
    }
}

3.创建springmvc的配置文件,加载controller 对应的bean

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

4.定义一个servlet容器启动的配置类,在里面加载spring的配置

java 复制代码
定义一个servlet容器启动的配置类,在里面加载spring的配置
public class ServletContainerInitConfig extends AbstractDispatcherServletInitializer {
    @Override//加载springMVC容器配置
    protected WebApplicationContext createServletApplicationContext() {
        AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
        ctx.register(SpringConfig.class);
        return (WebApplicationContext) ctx;
    }

    @Override//设置哪些请求归属springMVC处理

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

    @OverrideJ//加载spring容器配置

    protected WebApplicationContext createRootApplicationContext() {
        return null;
    }
}

1.请求与响应

java 复制代码
@Controller
@RequestMapping("/hello")
@ResponseBody// 类级别的请求映射
public class HelloHandler {
    @RequestMapping(value = "/index")  // 方法级别的请求映射
    public String index(String name,int age) {
        System.out.println("接受请求!"+"name:"+name+"age"+age);
        return "HelloHandler";
    }
    @RequestMapping( "/indexdifnam")
    @ResponseBody// 方法级别的请求映射
    public String indexdifnam(@RequestParam("name") String username, int age) {
        System.out.println("接受请求!"+"username:"+username+"age"+age);
        return "HelloHandler";
    }
    @RequestMapping( "/javabeanpar")
    @ResponseBody// 方法级别的请求映射
    public String javabeanpar(User user) {
        System.out.println("接受请求!"+"user===>"+user);
        return "HelloHandler";
    }
    @RequestMapping( "/set")
    @ResponseBody// 方法级别的请求映射
    public String set(@RequestParam List<String> list) {
        System.out.println("接受请求!"+"集合===>"+list.toString());
        return "HelloHandler";
    }
}

json数据

重要注释:

响应JSON数据只需要在对相应方法上@RequestBody方法,return后写上对应的String串,或者对象即可

此注解可以激活spring MVC的自动类型转换

类型转换数据依赖

java 复制代码
<dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.13.1</version>
    </dependency>

2.REST编码风格

3.SSM整合

4.拦截器

相关推荐
CodeCraft Studio11 分钟前
Excel处理控件Spire.XLS系列教程:Java设置Excel活动工作表或活动单元格
java·python·excel
是席木木啊35 分钟前
SpringBoot集成WebSocket,单元测试执行报错
spring boot·websocket·单元测试
瓯雅爱分享35 分钟前
任务管理系统,Java+Vue,含源码与文档,科学规划任务节点,全程督办保障项目落地提效
java·mysql·vue·软件工程·源代码管理
chxii36 分钟前
2.3java运算符
java
余辉zmh1 小时前
【Linux系统篇】:信号的生命周期---从触发到保存与捕捉的底层逻辑
android·java·linux
小布不吃竹1 小时前
Maven的概念与初识Maven
java·maven
中东大鹅1 小时前
Maven进阶
java·maven
serene941 小时前
IntelliJ IDEA 2025.2 和 JetBrains Rider 2025.1 恢复git commit为模态窗口
java·git·intellij-idea
南客先生1 小时前
5G融合消息PaaS项目深度解析 - Java架构师面试实战
java·微服务·高并发·paas·分布式系统·缓存策略·5g融合消息
幽络源小助理1 小时前
SpringBoot物资管理系统 | JavaWeb项目设计与实现
java·springboot·javaweb