SpringMVC的工作流程
1.执行流程
1、用户发送请求至 DispatcherServlet
2、DispatcherServlet 收到请求调用 HandlerMapping3、DispatcherServlet根据请求 url 找到具体的Controller,生成处理器对象及处理器拦截器(若有则生成)一并返回给 DispatcherServlet。
4、DispatcherServlet 通过 HandlerAdapter 调用Controller5、执行Controller
6、Controller 执行完成返回 ModelAndView
7、HandlerAdapter将Controller 执行结果ModelAndView返回给DispatcherServlet8、DispatcherServlet 将 ModelAndView 传给 ViewReslover
9、ViewReslover 解析后返回具体 View
10、DispatcherServlet 对 View 进行视图渲染【即将模型数据填充至视图中】
11、DispatcherServlet 响应用户【Controller】处理器
【DispatcherServlet】前端控制器
【HandlerMapping】处理器映射器
【HandlerAdapter】 处理器适配器
【ViewReslover】 视图解析器
【View】页面对象
2.执行流程图
3.入门使用
3.1 编写Controller
package edu.lhc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class ReqController {
@RequestMapping("/req")
public ModelAndView success() {
//创建模型视图对象
ModelAndView mv = new ModelAndView();
//存入数据
mv.addObject("msg", "success");
//设置页面跳转文件名
mv.setViewName("success");
return mv;
}
}
3.2 编写请求响应成功后跳转的页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>响应成功</title>
</head>
<body>
<h1>${msg}</h1>
</body>
</html>
3.3 配置SpringMVC容器–spingmvc.xml
<?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:mvn="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--开启注解扫描-->
<context:component-scan base-package="edu.lhc"/>
<!--配置映射器与适配器-->
<mvn:annotation-driven/>
<!--配置视图解析器器-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--配置页面前缀-->
<property name="prefix" value="/"/>
<!--配置页面后缀-->
<property name="suffix" value=".jsp"/>
</bean>
</beans>
3.4 在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">
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--contextConfigLocation 用来指定springmvc配置文件的位置-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!-- load-on-startup:表示web容器启动的时,当前对象创建的顺序,值越小初始化越早-->
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>