Spring MVC 介绍和使用

Spring MVC是Spring框架的一部分,它实现了Web应用程序的Model-View-Controller(MVC)设计模式。Spring MVC通过一套注解和类提供了一个富有表现力的方式来构建Web应用程序。以下是对Spring MVC的简单介绍和基本使用方式。

Spring MVC的组件:

  • 控制器(Controller):处理HTTP请求的组件,通常由@Controller注解的类表示。
  • 视图(View):用于渲染响应的组件,可以是JSP、Thymeleaf、FreeMarker等。
  • 模型(Model):包含视图显示所需数据的容器。

Spring MVC工作流程:

  1. 客户端发送请求:用户通过浏览器发送一个HTTP请求到服务器。
  2. 前端控制器(DispatcherServlet)接收请求:Spring的DispatcherServlet是MVC框架的前端控制器,它负责接收所有的请求并将它们分发给相应的控制器。
  3. 控制器处理请求DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的控制器。
  4. 模型和视图:控制器将业务数据放入模型,并返回一个视图名。
  5. 视图解析器DispatcherServlet使用ViewResolver来将逻辑视图名解析为实际的视图。
  6. 渲染视图:视图使用模型数据来渲染HTML响应。
  7. 响应返回到客户端:响应通过DispatcherServlet返回到用户的浏览器。

使用Spring MVC构建简单的Web应用程序:

1. 添加依赖

如果使用Maven,需要在pom.xml中添加Spring MVC的依赖:

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.3.x</version>
    </dependency>
    <!-- 其他依赖,比如Thymeleaf、Jackson(用于JSON处理)等 -->
</dependencies>
2. 配置DispatcherServlet

web.xml中配置DispatcherServlet或使用Java配置方式注册:

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

public class MyWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class<?>[] { RootConfig.class };
    }

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

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

其中,WebConfig是一个带有@Configuration注解的类,用于设置Spring MVC的配置。

3. 创建控制器

创建一个控制器类,并使用@Controller注解:

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class MyController {

    @GetMapping("/greeting")
    public String greeting(Model model) {
        model.addAttribute("message", "Hello, World!");
        return "greeting";
    }
}
4. 配置视图解析器

WebConfig中配置视图解析器:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {

    @Bean
    public InternalResourceViewResolver viewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        return resolver;
    }
}
5. 创建视图

/WEB-INF/views/目录下创建一个名为greeting.jsp的JSP文件:

<!DOCTYPE html>
<html>
<head>
    <title>Greeting</title>
</head>
<body>
    <h1>${message}</h1>
</body>
</html>
6. 构建和运行应用程序

构建项目,并将其部署到一个Servlet容器(如Tomcat)中。访问应用程序的/greeting路径,你应该看到Hello, World!这个消息渲染在页面上。

总结

Spring MVC提供了一种灵活的方式来构建Web应用程序,它通过声明式的控制器和视图解析机制简化了Web开发。Spring MVC可以与其他Spring项目(如Spring Security、Spring Data等)无缝集成,为创建企业级Web应用程序提供了坚实的基础。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序员爱学习

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

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

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

打赏作者

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

抵扣说明:

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

余额充值