SpringMVC简介

1、SpringMVC简介

1.1什么是MVC

(1)MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分

M:Model,模型层,指工程中的JavaBean,作用是处理数据

JavaBean分为两类:

一类称为实体类Bean:专门存储业务数据的,比如:Emp、Dept、User

一类称为业务处理Bean:指Service或Dao对象,专门用于处理业务逻辑和数据访问

V:View,视图层,指工程中的Html或jsp页面,作用是与用户进行交互,展示数据

C:Controller,控制层,指工程中的servlet,作用是接收请求和响应浏览器

**(2)MVC的工作流程:**用户通过V(视图层)发送请求到服务器,在服务器中由C(控制器)接收,C(控制器)调用相应的M(模型层)层处理请求,处理完毕将结果返回到C,C再根据请求处理的结果,找到相应的V,渲染数据后最终响应给浏览器。

1.2、什么是SpringMVC

SpringMVC是Spring家族的一个后续产品,是Spring的一个子项目

SpringMVC是为表述层开发提供的一整套完备的解决方案。

注:三层架构分为表述层(表示层)、业务逻辑层、数据访问层。表述层表示前台页面+后台servlet

1.3SpringMVC的特点

(1)Spring 家族原生产品,与 IOC 容器等基础设施无缝对接

(2)基于原生的Servlet,通过了功能强大的前端控制器DispatcherServlet,对请求和响应进行统一处理

(3)表述层各细分领域需要解决的问题全方位覆盖,提供全面解决方案

(4)代码清新简洁,大幅度提升开发效率

(5)内部组件化程度高,可插拔式组件即插即用,想要什么功能配置相应组件即可

(6)性能卓著,尤其适合现代大型、超大型互联网项目要求

2、入门案例

2.1、开发环境

IDE:idea 2022.2.3

构建工具:maven 3.6.0

服务器:tomcat8.5

Spring版本:5.3.1

2.2、创建maven工程

导pom依赖时,由于Maven具有传递性的,所以不需要将需要的所有包全部配置依赖,只需要配置最顶端的依赖即可,其它靠maven的传递性导入

复制代码
<!-- SpringMVC -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.3.1</version>
</dependency>
2.3配置web.xml
复制代码
<servlet>
        <servlet-name>springMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
        <!--将DispatcherServlet的初始化时间提前到服务器启动时-->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>springMVC</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

注:标签中使用/和/*的区别:

/所匹配的请求可以是/login或.html或.js或.css方式的请求路径,但是/不能匹配.jsp请求路径的请求因此就可以避免在访问jsp页面时,该请求被DispatcherServlet处理,从而找不到相应的页面/*则能够匹配所有请求,例如在使用过滤器时,若需要对所有请求进行过滤,就需要使用/*的写法

相关推荐
阿阳微客4 小时前
Steam 搬砖项目深度拆解:从抵触到真香的转型之路
前端·笔记·学习·游戏
Chef_Chen8 小时前
从0开始学习R语言--Day18--分类变量关联性检验
学习
键盘敲没电9 小时前
【IOS】GCD学习
学习·ios·objective-c·xcode
海的诗篇_9 小时前
前端开发面试题总结-JavaScript篇(一)
开发语言·前端·javascript·学习·面试
AgilityBaby9 小时前
UE5 2D角色PaperZD插件动画状态机学习笔记
笔记·学习·ue5
AgilityBaby9 小时前
UE5 创建2D角色帧动画学习笔记
笔记·学习·ue5
武昌库里写JAVA11 小时前
iview Switch Tabs TabPane 使用提示Maximum call stack size exceeded堆栈溢出
java·开发语言·spring boot·学习·课程设计
一弓虽12 小时前
git 学习
git·学习
Moonnnn.14 小时前
【单片机期末】串行口循环缓冲区发送
笔记·单片机·嵌入式硬件·学习
viperrrrrrrrrr715 小时前
大数据学习(131)-Hive数据分析函数总结
大数据·hive·学习