框架概述:
1.SpringMVC专注controller控制层的框架
2.SpringMVC基于Servlet技术进行封装
3.SpringMVC是Spring FrameWorld中的子框,可以完美融合到Spring容器中
主要作用:
a.简化请求参数接收
b.简化前端数据响应
组件作用:
1.DispatcherServlet: 接收前端参数请求和响应前端数据,并完成内部的分发调用.
2.HandlerMapping:查找handle的handle对应路径,进行记录和存储,供DispatcherServlet查找.
3.HandlerAdapter:用于请求参数转换,响应数据转换,调用自定义的类型转化器.
4.Handler:controller类中的方法,自己编写代码的位置,需要将方法注册到HandlerMapping中.
5.视图解析器:快速查找视图页面,内部配置视图页面的前后缀,根据逻辑视图查找,返回json不走视图解析器
基本使用:
1.在pox.xml中添加相关依赖项.
`
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.1</version>
</dependency>
<!-- web 项目 servlet -->
<!-- ServletAPI -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<!-- Spring5和Thymeleaf整合包 -->
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
<version>3.0.12.RELEASE</version>
</dependency>
<!-- thymeleaf依赖 -->
<!-- spring webmvc 依赖即可 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.1</version>
</dependency>
`
编写配置文件:
1.目标:
a.配置DispatcherServlet在web.xml(WEB工程的配置文件)中,设置拦截整个项目的全部路径
b.将SpringMVC自带核心组件放入ioc容器(Spring配置)
c.声明自定义的Handler(方法),将自己的Controller类加入到ioc,并在方法上使用注解.向HandlerMapping中注册.
SpringMVC.xml:
`
<!-- controller -->
<context:component-scan base-package="com.atguigu" />
<!-- 初始化了ceo会自带几个经理和几个秘书 -->
<!--
编写了一个配置文件 DispatcherServlet.properties把各个方向组件需要的基本组件配置完毕!
待加载dispatcherServlet的时候,会检查你是否配置,如果没有配置,走默认组件!
-->
<!-- handlerMapping -->
<!-- handlerAdapter -->
<!-- 财务也自带,财务带的jsp模板语言的财务! -->
<!-- viewResolver-->
<!-- 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>
`
WEB.xml(新建html页面放在webapp/WEB-INF里,web无法直接访问,只能走视图解析器,安全):
`
<!-- 配置过滤器解决 POST 请求的字符乱码问题 -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<!-- encoding参数指定要使用的字符集名称 -->
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<!-- 请求强制编码 -->
<init-param>
<param-name>forceRequestEncoding</param-name>
<param-value>true</param-value>
</init-param>
<!-- 响应强制编码 -->
<init-param>
<param-name>forceResponseEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>ds</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- init-param - servletConfig - init 获取到 : ds init WebApplicationContext("配置") -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>5</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ds</servlet-name>
<!-- /拦截项目的所有路径 /* 会拦截jsp等资源 -->
<url-pattern>/</url-pattern>
</servlet-mapping>
`
标签:xml,web,巩固,SpringMVC,视图,学习,org,DispatcherServlet From: https://www.cnblogs.com/chenshifu/p/17532251.html