SpringMVC介绍和使用

本文介绍了SpringMVC的概念和设计模式,详细讲解了SpringMVC的处理请求过程,包括模型、视图、控制器的角色。此外,还阐述了SpringMVC在市场上的重要地位以及学习的必要性,并提供了一个入门程序的开发流程。

 

一、概念介绍

 

1.1三层结构介绍

我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器;另一种是 B/S 架构,也就是浏览器服务器。在 JavaEE 开发中,几乎全都是基于 B/S 架构的开发。那么在 B/S 架构中,系统标准的三层架构包括:表现层、业务层、持久层

  • 表现层
    • 也就是我们常说的web层,她负责接收客户端请求,向客户端相应结果,通常客户端使用http协议请求web层,web需要接收http请求,完成http响应
    • 表现层包括展示层和控制层:控制层负责接收请求,展示层负责结果的展示
    • 表现层依赖业务层,接收到客户端请求一般会调用业务层进行业务处理,并将处理结果响应给客户端
    • 表现层的设计一般都使用 MVC 模型。(MVC 是表现层的设计模型,和其他层没有关系)
  • 业务层
    • 也就是我们常说的 service 层。它负责业务逻辑处理,和我们开发项目的需求息息相关。web 层依赖业务层,但是业务层不依赖 web 层
    • 业务层在业务处理时可能会依赖持久层,如果要对数据持久化需要保证事务一致性。(也就是我们说的, 事务应该放到业务层来控制)
  • 持久层
    • 也就是我们是常说的 dao 层。负责数据持久化,包括数据层即数据库和数据访问层,数据库是对数据进行持久化的载体,数据访问层是业务层和持久层交互的接口,业务层需要通过数据访问层将数据持久化到数据库中。通俗的讲,持久层就是和数据库交互,对数据库表进行增删改查的。

 

1.2 MVC设计模式介绍

MVC 全名是 Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写, 是一种用于设计创建 Web 应用程序表现层的模式。MVC 中每个部分各司其职:

  • Model(模型)
    • 模型包含业务模型和数据模型,数据模型用于封装数据,业务模型用于处理业务
  • View(视图)
    • 通常指的就是我们的 jsp 或者 html。作用一般就是展示数据的。
    • 通常视图是依据模型数据创建的
  • Controller(控制器):
    • 是应用程序中处理用户交互的部分。作用一般就是处理程序逻辑的。

 

1.3SpringMVC介绍

 

Spring MVC是什么?

  • SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于 SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用 Spring 进行 WEB 开发时,可以选择使用 Spring 的 Spring MVC 框架或集成其他 MVC 开发框架,如 Struts1(现在一般不用),Struts2 等。
  • SpringMVC 已经成为目前最主流的 MVC 框架之一,并且随着 Spring3.0 的发布,全面超越 Struts2,成为最优秀的 MVC 框架。
  • 它通过一套注解,让一个简单的 Java 类成为处理请求的控制器,而无须实现任何接口。同时它还支持RESTful 编程风格的请求。

总之:

Spring MVC和Struts2一样,都是为了解决表现层问题的web框架,它们都是基于MVC设计模式的。而这些表现层框架的主要职责就是处理前端HTTP请求

 

 

Spring MVC由来?

Spring MVC全名叫Spring Web MVC,它是Spring家族Web模块的一个重要成员。这一点,我们可以从Spring的整体结构中看得出来:

 

为什么学习SpringMVC?

 

SpringMVC的市场占有率是40%,而Struts2只有可怜的6%。这已然说明了学习SpringMVC的必要性了,再说了,SpringMVC本身就是spring家族的一员,与整合spring时,SpringMVC根本无需中间整合包,而struts2得需要。

&

### SpringMVC框架介绍及核心功能 SpringMVCSpring 框架的一部分,专为构建 Web 应用程序设计。它是一个基于 Java 的轻量级 Web 框架,遵循 Model-View-Controller(MVC)设计模式[^1]。通过将应用程序的逻辑、数据展示层分离,SpringMVC 提供了清晰的结构化开发方式。 #### 1. **SpringMVC 的基本概念** SpringMVC 的核心是 DispatcherServlet,这是一个前端控制器,负责接收所有 HTTP 请求并将它们分发到适当的处理器[^2]。以下是 SpringMVC 的关键组成部分: - **DispatcherServlet**:作为前端控制器,负责协调其他组件的工作。 - **HandlerMapping**:用于将请求映射到相应的控制器。 - **Controller**:处理具体的业务逻辑并返回模型视图信息。 - **ViewResolver**:根据逻辑视图名称解析实际的视图页面。 - **ModelAndView**:包含模型数据视图信息,用于渲染最终的用户界面。 #### 2. **SpringMVC 的核心功能** SpringMVC 提供了许多强大的功能,以简化 Web 应用程序的开发过程。以下是一些主要功能: - **灵活的请求处理**:支持多种请求参数绑定方式,包括路径变量、查询参数表单数据等[^3]。 - **强大的数据验证**:集成 JSR-303 标准,允许开发者使用注解对输入数据进行验证。 - **国际化支持**:提供 i18n 功能,便于开发多语言应用程序。 - **RESTful 支持**:内置对 RESTful Web 服务的支持,方便创建基于资源的 API。 - **异常处理**:通过 @ExceptionHandler 注解实现统一的异常处理机制。 - **拦截器支持**:允许开发者通过拦截器对请求进行预处理或后处理。 #### 3. **SpringMVC 的工作流程** 当一个 HTTP 请求到达 SpringMVC 应用程序时,其处理流程如下: 1. 用户发送请求到 DispatcherServlet。 2. DispatcherServlet 查询 HandlerMapping 来找到合适的处理器。 3. 处理器执行业务逻辑,并返回 ModelAndView 对象给 DispatcherServlet。 4. DispatcherServlet 使用 ViewResolver 解析视图名称,然后将结果呈现给用户[^4]。 ```java @Controller public class ExampleController { @RequestMapping("/hello") public String handleRequest(Model model) { model.addAttribute("message", "Hello, SpringMVC!"); return "index"; // 返回逻辑视图名 } } ``` 上述代码示例展示了如何定义一个简单的控制器方法,该方法响应 `/hello` 请求并将消息传递给视图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值