springmvc 响应封装_SpringMVC概述和基础知识详解

一. SpringMVC概述及原理

1. SpringMVC是什么

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),[Struts 2](https://baike.baidu.com/item/Struts 2/2187934)(一般老项目使用)等。

SpringMVC 已经成为目前最主流的 MVC 框架之一, 从 Spring3.0 的发布, 就已全面超越 Struts2,成为最优秀的 MVC 框架。它通过一套注解,让一个简单的 Java 类成为处理请求的控制器,而无须实现任何接口。同时它还支持RESTful 编程风格的请求。

2. MVC和三层架构

MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。


控制器(Controller):Servlet,控制器主要处理用户的请求

视图(View):HTML, JSP, 前端框架

模型(Model):逻辑业务程序(后台的功能程序), Service, Dao, JavaBean

JavaWEB发展史

Model1

所有的业务逻辑交给jsp单独处理完成,一个web项目只存在DB层和JSP层,所有的东西都耦合在一起,对后期的维护和扩展极为不利。

479aae875d46e7eec3bceaf05bcb72e1.png

Model2 第一代

JSP Model2有所改进,把业务逻辑的内容放到了JavaBean中,而JSP页面负责显示以及请求调度的工作。虽然第二代比第一代好了些,但JSP还是把view和controller的业务耦合在一起。依然很不理想。

26047b44875b5e16961ac27472ec0e68.png

Model2 第二代(三层架构)

Model2第二代就是现在大力推广的和使用的mvc,将一个项目划分为三个模块,各司其事互不干扰,既解决了jsp所形成的耦合性,又增加了逻辑性、业务性以及复用性和维护性

表示层(web层):包含JSP,Servlet等web相关的内容

业务逻辑层(Service):处理业务,不允许出现servlet中的request、response。

数据层(Data Access Object):也叫持久层,封装了对数据库的访问细节。

其中 web层相当于mvc中的view+controller,Service层和dao层相当于mvc中的model。

3d9a37847a0c294c2cf8ad58a86a22c9.png

3. SpringMVC 在三层架构的位置

MVC模式:(Model-View-Controller):为了解决页面代码和后台代码的分离.

f9064577d8e2e737a11ab71b3ef33471.png

二. 入门示例

1. 配置流程-基于XML的配置

1.1.搭建普通Maven项目

880266bd8fa311428805e08b2694d14a.png
d76a40d48d9c72460d469e4ff9ab94a0.png
2946aea0b116b340b6e14272d80c1b2f.png

使用插件将项目转换为web项目

5cdcc90acb4ceb670bfbf5647b0c3f57.png

转换成功:

b66a9216c2e2bcf2ef24ca4b38e43984.png

查看是否生成webapp目录和maven项目打包方式是否变为war

ddd8a3a393a4ce7781f88483ff11dd48.png

添加SpringMVC依赖

org.springframework    spring-webmvc    5.0.6.RELEASE

查看关系依赖图

c50568baff622a81034bf0ffb22cf4bb.png

1.2.在web.xml配置核心控制器

<?xml version="1.0" encoding="UTF-8"?>dispatcherorg.springframework.web.servlet.DispatcherServletdispatcher*.form

1.3.创建一个Spring的配置文件

<?xml version="1.0" encoding="UTF-8"?>

mvc:annotation-driven 说明

在 SpringMVC 的各个组件中,处理器映射器、处理器适配器、视图解析器称为 SpringMVC 的三大组件。

在springmvc早期版本中需要我们自己加载springmvc的三大组件(现在我们使用的版本5.0.6会自动加载这三大组件)

**处理器映射器:RequestMappingHandlerMapping **

处理器适配器:RequestMappingHandlerAdapter

处理器解析器:ExceptionHandlerExceptionResolver

在早期的版本中使用 自动加载这三大组件,但是高版本的不需要来加载

同时它还提供了:数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,读写XML的支持(JAXB,读写JSON的支持(Jackson)。我们处理响应ajax请求时,就使用到了对json的支持(配置之后,在加入了jackson的core和mapper包之后,不写配置文件也能自动转换成json)

springmvc配置文件说明

注意:默认的Spring配置文件放在WEB-INF下,名为{servlet-name}-servlet.xml

{servlet-name}指的是,核心控制器配置的名字

如:dispatcherServlet-servlet.xml

当请求被springmvc处理时,springmvc会去默认路径下加载xxxx-servlet.xml核心配置文件

7a0c661edbef4c8377db50701cec4f95.png

但是我们在开发中一般都是把配置文件写

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值