Spring MVC

一,MVC模式

MVC(Model-View-Controller)是一种常见的软件设计模式,用于将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller)。MVC设计模式的目的是实现应用程序的分离,使得每个组件负责不同的职责,并且可以独立进行开发、测试和维护。

下面是每个组件的职责:

  1. 模型(Model):

    • 表示应用程序的数据和业务逻辑。
    • 通常包含数据模型、数据库访问、数据验证和业务规则等。
    • 不关心用户界面或表示层。
  2. 视图(View):

    • 用户界面的呈现层。
    • 负责将模型的数据展示给用户。
    • 可以是用户界面元素、HTML页面、图表等。
  3. 控制器(Controller):

    • 处理用户交互和用户请求。
    • 接收用户输入并根据输入更新模型和视图。
    • 调度和协调模型和视图之间的交互。
    • 通常包含路由、请求处理、业务逻辑和模型更新等。

MVC设计模式的优势包括:

  • 分离关注点:模型、视图和控制器的分离,使得开发人员可以专注于各自的职责。
  • 可维护性:由于各组件的独立性,修改其中一个组件不会影响其他组件的功能。
  • 可测试性:由于各组件的独立性,可以更容易地编写单元测试和集成测试。
  • 可扩展性:可以通过添加新的模型、视图或控制器来扩展应用程序的功能。

总而言之,MVC设计模式通过将应用程序分成模型、视图和控制器三个组件,实现了关注点的分离和代码的可维护性,提供了一种结构化的方式来开发和组织应用程序。

 

MVC优点
MVC三个模块相互独立,松耦合架构
多视图共享一个模型,大大提高代码的可重用性
控制器提高了应用程序的灵活性和可配置性
有利于软件工程化管理
MVC缺点
增加了系统结构和实现的复杂性,不适合小型规模的项目
视图层与模型之间需要控制器做中间的连接控制,所以效率较低

mvc 流程图 :

二,使用注解开发Spring MVC2-1

基于注解的处理器
<mvc:annotation-driven/>
一键式配置,通过注解的方式进行 Spring MVC 开发

<context:component-scan />

@Controller :将该类注入到 Spring 容器并将其定义为一个控制器
@ RequestMapping :通过请求 URL 进行映射

 Spring MVC请求处理流程:

           

         Spring MVC体系结构3-2

        DispatcherServlet(前端控制器)

Spring MVC 最核心的类
web.xml 中配置
Handler( 处理器 )
对应 MVC 中的 C(Controller )
作用:实际处理请求
标注了 @ RequestMapping 的所有方法都可以看做是一个 Handler
ModelAndView
模型对象信息
逻辑视图名
Spring MVC体系结构3-3
DispatcherServlet ( 前端控制器 )
Spring MVC 最核心的类
web.xml 中配置
Handler( 处理器 )
对应 MVC 中的 C(Controller )
作用:实际处理请求
标注了 @ RequestMapping 的所有方法都可以看做是一个 Handler
ModelAndView
模型对象信息
逻辑视图名

Spring MVC框架特点 :

角色划分清晰
配置功能灵活
大量的控制器接口和实现类
可灵活选择 View 层实现技术
支持国际化
面向接口编程
功能丰富

@RequestMapping注解 :

不仅可以作用于控制器的方法上,还可以标注到控制器类上
映射规则
通过请求 URL 进行映射
通过请求方法进行映射
GET
POST
@RequestMapping(value="/view", method=RequestMethod.GET)
@ GetMapping
@ PostMapping
注意@RequestMapping映射的请求信息必须保证全局唯一

三,入参处理 

@RequestParam
uname
uvalue
urequired
udefaultValue
@RequestMapping("/hello2")
public String hello2(@RequestParam(value="userName",
										required=false) 
	String realName) throws Exception {
	……代码省略
}

出参处理 

ModelAndView
包含模型数据信息和视图信息
常用方法
添加模型数据
ModelAndView addObject (String attributeName,Object attributeValue );
ModelAndView addAllObjects (Map<String,?> modelMap );
设置视图
void setView (View view );
void setViewName (String viewName );
Model
处理方法的入参为 Model 类型
数据结构: Map 类型
常用方法:添加模型数据
Model.addAttribute(String attributeName, Object attributeValue);

 视图解析器:

InternalResourceViewResolver :最常用的视图解析器
prefix
suffix
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<property name="prefix" value="/WEB-INF/jsp/" />
	<property name="suffix" value=".jsp" />
</bean>

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值