前言:学习自https://www.bilibili.com/video/BV1aE41167Tu
Spring MVC
1、介绍
Spring MVC属于SpringFrameWork的子项目。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架。
优点:
- 轻量级,简单易学
- 高效 , 基于请求响应的MVC框架
- 与Spring兼容性好,无缝结合
- 约定优于配置
- 功能强大:RESTful、数据验证、格式化、本地化、主题等
- 简洁灵活
(引用一张《Spring 实战》(第四版)的图片)
2、项目实例(配置版)
(1)具体步骤
1、新建一个项目 ,并添加web的支持
2、确定导入了SpringMVC 的依赖
3、配置web.xml , 注册DispatcherServlet
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!--1.注册DispatcherServlet-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--关联一个springmvc的配置文件:【servlet-name】-servlet.xml-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<!--启动级别-1-->
<load-on-startup>1</load-on-startup>
</servlet>
<!--/ 匹配所有的请求;(不包括.jsp)-->
<!--/* 匹配所有的请求;(包括.jsp)-->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
4、编写SpringMVC 的 配置文件,springmvc-servlet.xml
添加bean:处理器映射,控制适配器,视图解析器
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--处理器映射-->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<!--控制适配器-->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
<!--视图解析器
1、获取ModelAndView的数据
2、解析ModelAndView的视图名字
3、将数据渲染到视图上
4、拼接视图名字,找到对应视图
-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="InternalResourceViewResolver">
<!--前缀-->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!--后缀-->
<property name="suffix" value=".jsp"/>
</bean>
</beans>
5、编写Controller
6、将自己的类交给SpringIOC容器,注册bean
因为我们用了一个根据bean名字进行映射的处理器映射bean
因此,bean的id要遵从如下格式:/hello
7、写要跳转的jsp页面,显示ModelandView存放的数据,以及我们的正常页面
8、配置Tomcat 启动测试
9、请求访问
(注:若报404或500错误,则可能是工件中缺少包环境的问题,解决方法:
(2)流程原理的分析
(3)附:/ 与 /* 的区别
/:只匹配所有请求,不匹配jsp页面
/*:既匹配所有请求,及jsp页面