SpringMVC基础篇一:SpringMVC简介

一、SpringMVC简介

1、什么是MVC

MVC 是一种软件架构的思想,将软件按照模型、视图、控制器来划分
M Model ,模型层,指工程中的 JavaBean ,作用是处理数据
JavaBean 分为两类:
一类称为实体类 Bean :专门存储业务数据的,如 Student User
一类称为业务处理 Bean :指 Service Dao 对象,专门用于处理业务逻辑和数据访问。
V View ,视图层,指工程中的 html jsp 等页面,作用是与用户进行交互,展示数据
C Controller ,控制层,指工程中的 servlet ,作用是接收请求和响应浏览器
MVC 的工作流程: 用户通过视图层发送请求到服务器,在服务器中请求被 Controller 接收, Controller
调用相应的 Model 层处理请求,处理完毕将结果返回到 Controller Controller 再根据请求处理的结果找到相应的View 视图,渲染数据后最终响应给浏览器

2、什么是SpringMVC

SpringMVC Spring 的一个后续产品,是 Spring 的一个子项目
SpringMVC Spring 为表述层开发提供的一整套完备的解决方案。在表述层框架历经 Strust
WebWork Strust2 等诸多产品的历代更迭之后,目前业界普遍选择了 SpringMVC 作为 Java EE 项目表述层开发的首选方案

3SpringMVC的特点

Spring 家族原生产品 ,与 IOC 容器等基础设施无缝对接
基于原生的 Servlet ,通过了功能强大的 前端控制器 DispatcherServlet ,对请求和响应进行统一
处理表述层各细分领域需要解决的问题全方位覆盖 ,提供 全面解决方案, 代码清新简洁 ,大幅度提升开发效率
内部组件化程度高,可插拔式组件 即插即用 ,想要什么功能配置相应组件即可
性能卓著 ,尤其适合现代大型、超大型互联网项目要求

关于创建IDEA的maven工程

a> 添加 web 模块(若使用maven项目结构生成,选择webapps)
b> 打包方式: war
c> 引入依赖
<dependencies>
<!-- SpringMVC -->
<dependency>
<groupId> org.springframework </groupId>
<artifactId> spring-webmvc </artifactId>
<version> 5.3.1 </version>
</dependency>
<!-- 日志 -->
<dependency>
<groupId> ch.qos.logback </groupId>
<artifactId> logback-classic </artifactId>
<version> 1.2.3 </version>
</dependency>
<!-- ServletAPI -->
<dependency>
<groupId> javax.servlet </groupId>
<artifactId> javax.servlet-api </artifactId>
<version> 3.1.0 </version>
<scope> provided </scope>
</dependency>
<!-- Spring5 Thymeleaf 整合包 -->
<dependency>
<groupId> org.thymeleaf </groupId>
<artifactId> thymeleaf-spring5 </artifactId>
<version> 3.0.12.RELEASE </version>
</dependency>
</dependencies>
注:由于 Maven 的传递性,我们不必将所有需要的包全部配置依赖,而是配置最顶端的依赖,其他靠
传递性导入。
配置 web.xml
<!-- 配置SpringMVC的前端控制器,对浏览器发送的请求统一进行处理 -->
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-
class>
<!-- 通过初始化参数指定SpringMVC配置文件的位置和名称 -->
<init-param>
<!-- contextConfigLocation为固定值 -->
<param-name>contextConfigLocation</param-name>
<!-- 使用classpath:表示从类路径查找配置文件,例如maven工程中的
src/main/resources -->
<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>
<!--
设置springMVC的核心控制器所能处理的请求的请求路径
/所匹配的请求可以是/login.html.js.css方式的请求路径
但是/不能匹配.jsp请求路径的请求
-->
<url-pattern>/</url-pattern>
</servlet-mapping>
<url-pattern>标签中使用//*的区别:
/所匹配的请求可以是/login.html.js.css方式的请求路径,但是/不能匹配.jsp请求路径的请
/*则能够匹配所有请求,例如在使用过滤器时,若需要对所有请求进行过滤,就需要使用/*的写
关于创建请求控制器
在类上面(HelloController)添加@Controller,springMVC才能识别控制器的存在

创建springMVC的配置文件

<!-- 自动扫描包 -->
<context:component-scan base-package="com.atguigu.mvc.controller"/>
<!-- 配置Thymeleaf视图解析器 -->
<bean id="viewResolver"
class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
<property name="order" value="1"/>
<property name="characterEncoding" value="UTF-8"/>
<property name="templateEngine">
<bean class="org.thymeleaf.spring5.SpringTemplateEngine">
<property name="templateResolver">
<bean
class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver">
<!-- 视图前缀 -->
<property name="prefix" value="/WEB-INF/templates/"/>
<!-- 视图后缀 -->
<property name="suffix" value=".html"/>
<property name="templateMode" value="HTML5"/>
<property name="characterEncoding" value="UTF-8" />
</bean>
</property>
</bean>
</property>
</bean>
<!--
处理静态资源,例如htmljscssjpg
若只设置该标签,则只能访问静态资源,其他请求则无法访问
此时必须设置<mvc:annotation-driven/>解决问题
-->
<mvc:default-servlet-handler/>
<!-- 开启mvc注解驱动 -->
<mvc:annotation-driven>
<mvc:message-converters>
<!-- 处理响应中文内容乱码 -->
<bean
class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="defaultCharset" value="UTF-8" />
<property name="supportedMediaTypes">
<list>
<value>text/html</value>
<value>application/json</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
注:在SSM项目中则无需这样实现,只需要导入mybatis整合的spring依赖即可
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值