JavaWeb开发进阶SpringMVC简介¶
JavaWeb开发进阶Spring MVC简介¶
Spring MVC,又称为Spring Web
MVC,名字来源于Spring模块spring-webmvc
,是一个基于Servlet
API开发的Web框架。
Spring MVC遵循经典的MVC设计模式:
模型(Model)
职责:负责应用程序的数据和业务逻辑
功能:
处理数据的存储、检索和操作
通常与数据库交互
包含业务规则和数据验证逻辑
示例:在一个电商应用中,模型可能包括用户、产品和订单等实体类
视图(View)
职责:负责呈现数据给用户
功能:
显示模型中的数据
提供用户界面元素,如文本框、按钮和表格
不包含业务逻辑,只负责展示数据
示例:在一个电商应用中,视图可能包括产品列表页面、购物车页面和订单确认页面
控制器(Controller)
职责:负责处理用户输入并更新模型和视图
功能:
接收用户输入(如点击按钮、提交表单)
调用模型层处理数据
更新视图以反映模型的变化
示例:在一个电商应用中,控制器可能包括处理用户登录、添加商品到购物车和提交订单的逻辑
我们可以在Maven pom.xml中添加配置:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>6.1.10</version>
</dependency>
查看Spring MVC源码:
接下来,将跟随Spring MVC官方文档,学习以下内容:
DispatcherServlet
DispatcherServlet
是Spring MVC的前端控制器(Front Controller),负责接收所有的HTTP请求,并将它们分发给适当的处理器(控制器)。它是整个Spring MVC框架的核心组件Filters
过滤器(Filters)用于在请求到达控制器之前或响应返回客户端之前对请求和响应进行预处理或后处理。常见的过滤器包括身份验证过滤器、日志记录过滤器等
Annotated Controllers
注解控制器(Annotated Controllers)使用注解(如
@Controller
、@RequestMapping
)来定义控制器和处理请求的方法。它们使得配置更加简洁和直观Functional Endpoints
功能性端点(Functional Endpoints)是Spring 5引入的一种新的定义路由和处理请求的方式,使用函数式编程风格来替代传统的注解方式
URI Links
URI链接(URI Links)用于定义和生成应用程序中的URL。Spring提供了多种方式来生成和管理URI链接,以确保链接的正确性和一致性
Asynchronous Requests
异步请求(Asynchronous Requests)允许控制器在处理请求时不阻塞当前线程,从而提高应用程序的性能和响应能力。Spring MVC支持异步请求处理,通过
DeferredResult
、Callable
等方式实现CORS
跨域资源共享(CORS, Cross-Origin Resource Sharing)是一种机制,允许来自不同源的请求访问资源。Spring提供了对CORS的支持,可以通过注解或配置来实现
Error Responses
错误响应(Error Responses)用于处理和返回错误信息。Spring MVC提供了多种方式来处理错误,包括
@ExceptionHandler
注解、自定义错误页面等Web Security
Web安全(Web Security)涉及到保护Web应用程序免受各种攻击,如XSS、CSRF、SQL注入等。Spring Security是一个强大的安全框架,提供了全面的安全解决方案
HTTP Caching
HTTP缓存(HTTP Caching)用于提高应用程序的性能,通过缓存响应来减少服务器负载。Spring提供了多种缓存机制,如
Cache-Control
头、ETag等View Technologies
视图技术(View Technologies)用于生成和呈现用户界面。Spring MVC支持多种视图技术,包括 JSP、Thymeleaf、FreeMarker等
MVC Config
MVC配置(MVC Config)用于配置Spring MVC应用程序的各种组件和行为。可以通过Java配置类或XML配置文件来实现
HTTP/2
HTTP/2是HTTP协议的第二个主要版本,提供了更高效的传输性能和更好的用户体验。Spring支持HTTP/2,可以通过配置来启用