引入依赖
<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>配置web.xml
注册SpringMVC的前端控制器DispatcherServlet
a>默认配置方式
此配置作用下,SpringMVC的配置文件默认位于WEB-INF下,默认名称为- servlet.xml , 例如 , 以下配置所对应SpringMVC的配置文件位于WEB-INF下,文件名为springMVCservlet.xml
<!-- 配置SpringMVC的前端控制器,对浏览器发送的请求统一进行处理 --><servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servletclass></servlet><servlet-mapping><servlet-name>springMVC</servlet-name><!--设置springMVC的核心控制器所能处理的请求的请求路径/所匹配的请求可以是/login或.html或.js或.css方式的请求路径但是/不能匹配.jsp请求路径的请求--><url-pattern>/</url-pattern></servlet-mapping>b>扩展配置方式
可通过init-param标签设置SpringMVC配置文件的位置和名称,通过load-on-startup标签设置 SpringMVC前端控制器DispatcherServlet的初始化时间
注:<url-pattern>标签中使用/和/*的区别:/所匹配的请求可以是/login或.html或.js或.css方式的请求路径,但是/不能匹配.jsp请求路径的请求因此就可以避免在访问jsp页面时,该请求被DispatcherServlet处理 , 从而找不到相应的页面/*则能够匹配所有请求,例如在使用过滤器时,若需要对所有请求进行过滤 , 就需要使用/*的写法<!-- 配置SpringMVC的前端控制器,对浏览器发送的请求统一进行处理 --><servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servletclass><!-- 通过初始化参数指定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>4、创建请求控制器
由于前端控制器对浏览器发送的请求进行了统一的处理 , 但是具体的请求有不同的处理过程,因此需要 创建处理具体请求的类,即请求控制器
请求控制器中每一个处理请求的方法成为控制器方法
因为SpringMVC的控制器由一个POJO(普通的Java类)担任,因此需要通过@Controller注解将其标识 为一个控制层组件,交给Spring的IoC容器管理 , 此时SpringMVC才能够识别控制器的存在
@Controllerpublic class HelloController {}5、创建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="https://www.huyubaike.com/biancheng/1"/><property name="characterEncoding" value="https://www.huyubaike.com/biancheng/UTF-8"/><property name="templateEngine"><bean class="org.thymeleaf.spring5.SpringTemplateEngine"><property name="templateResolver"><beanclass="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver"><!-- 视图前缀 --><property name="prefix" value="https://www.huyubaike.com/WEB-INF/templates/"/><!-- 视图后缀 --><property name="suffix" value="https://www.huyubaike.com/biancheng/.html"/><property name="templateMode" value="https://www.huyubaike.com/biancheng/HTML5"/><property name="characterEncoding" value="https://www.huyubaike.com/biancheng/UTF-8" /></bean></property></bean></property></bean><!--处理静态资源,例如html、js、css、jpg若只设置该标签,则只能访问静态资源 , 其他请求则无法访问此时必须设置<mvc:annotation-driven/>解决问题--><mvc:default-servlet-handler/><!-- 开启mvc注解驱动 --><mvc:annotation-driven><mvc:message-converters><!-- 处理响应中文内容乱码 --><beanclass="org.springframework.http.converter.StringHttpMessageConverter"><property name="defaultCharset" value="https://www.huyubaike.com/biancheng/UTF-8" /><property name="supportedMediaTypes"><list><value>text/html</value><value>application/json</value></list></property></bean></mvc:message-converters></mvc:annotation-driven>
推荐阅读
- Docker | 容器互联互通
- 1 Java I/O:模型与流
- 如何创建自己的QQ群(1000人qq群创建条件)
- 手机QQ怎么创建群(手机qq咋建群)
- 如何申请建立一个QQ群(怎么创建一个满人qq群)
- 如何创建qq群(qq怎么自己建群)
- 如何在QQ群文件中创建QQ群在线文档(怎么创建手机qq群文件)
- 四 SpringBoot - 整合Mybatis,逆向工程,JPA
- MFC-创建MFC图形界面dll
- KVM导入Ubuntu Cloud 镜像创建虚机及调整磁盘大小