SpringMVC介绍
什么是springMVC:
SpringMVC = spring框架+DispatcherServlet
是一个实现网页开发的框架
SpringMVC的执行顺序
第一步:前端发来请求,由DispatcherServlet接收
第二步:DispatcherServlet不知道是否有处理这个请求的Controller(又叫Handler),所以调用HandlerMapping(处理器映射器)查看是否有能处理此请求的的Controller,然后返回一个HandlerExcutionChain对象让DispatcherServlet解析,看是否有或者要进行拦截.
第三步:如果可以访问那么DispatherServlet就通过调用HandlerAdapter(处理器适配器)来调用请求需要的Controller
第四步:Controller处理请求,然后返回一个ModelAndView(数据模型和视图)给HandlerAdapter
第五步:HandlerAdapter把ModelAndView返回给DispatcherServlet
第六步:DispatcherServlet通过调用ViewResolver(视图解析器)解析ModelAndView然后返回View(视图)给DispatcherServlet
第七步:DispatcherServlet将View渲染,响应给用户.
整体思路是:
一个核心调用两个功能:
1.找是否有能处理请求的控制器
2.处理请求(数据视图处理,视图加工)
SpringMVC实现步骤
第一步:编写Controller(请求处理器)
- 编写自己的Controller,添加注解@Controller
- 在自己的Controller中写返回值为String类的公共方法
- 并且添加注解,让url请求和此方法匹配
第二步:编写DispatcherServlet的配置文件
- 添加自动扫描包,让包下面的注解生效
- 让springMVC不处理静态资源
- 自动创建HandlerMapping
- 自动创建HandlerAdapter
- 创建并配置ViewResolver
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc
https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- 默认不用改了-->
<!-- 使用spring来创建对象,spring中都称对象标签为bean-->
<!-- 自动扫描包,让指定包下的注解生效-->
<context:component-scan base-package="com.cs.controller"/>
<!-- 让springmvc不处理静态资源-->
<mvc:default-servlet-handler/>
<!-- 开启自动实现处理器映射器和处理器适应器的映射-->
<mvc:annotation-driven/>
<!-- 视图解析器ViewResolver-->
<!-- 视图解析器来处理视图对象,拼接好返回地址给DispatchServlet-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
第三步:在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">
<!-- 配置DispatchServlet:这是一个springMVC的核心,又叫请求分发器-->
<!-- springMVC本身写好的类,用于代替servlet-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- DispatchServlet要绑定springMVC的配置文件,用于细节化DispatchServlet的参数,代码如下-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<!-- 设置启动时间-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>