SpringMVC框架第一谈(SpringMVC简介优点、第一个SpringMVC的程序、SpringMVC的执行流程)

在这里插入图片描述

SpringMVC的简介以及优点

  1. SpringMVC 简介
    SpringMVC 也叫 Spring web mvc。是 Spring 框架的一部分,是在 Spring3.0 后发布的。
  2. SpringMVC 优点
    1. 基于 MVC 架构
      基于 MVC 架构,功能分工明确。解耦合,
    2. 容易理解,上手快;使用简单。
      就可以开发一个注解的 SpringMVC 项目,SpringMVC 也是轻量级的,jar 很小。不依赖的特定的接口和类。
  3. 作 为 Spring 框 架 一 部 分 , 能 够 使 用 Spring 的 IoC 和 Aop 。 方 便 整 合Strtus,MyBatis,Hiberate,JPA 等其他框架。
  4. SpringMVC 强化注解的使用,在控制器,Service,Dao 都可以使用注解。方便灵活。
    使用@Controller 创建处理器对象,
    @Service 创建业务对象,
    @Autowired 或者
    @Resource在控制器类中注入 Service, Service类中注入 Dao。

第一个注解的SpringMVC程序

需求:用户提交一个请求,服务端处理器在接收到这个请求后,给出一条欢迎信息, 在响应页面中显示该信息。
实现步骤:

  1. 新建maven项目
  2. 修改pom.xml文件,导入springmvc、seervlet、jsp的依赖
  3. 在web.xml中创建中央调度器
  4. SpringMVC的配置文件
  5. 创建控制器
  6. 声明组件扫描器
  7. 修改视图解析器

maven项目的建立

在这里插入图片描述

pom.xml文件的修改、导入依赖

依赖:

<dependency> 
	<groupId>javax.servlet</groupId> 
	<artifactId>javax.servlet-api</artifactId> 	
	<version>3.1.0</version>
	<scope>provided</scope>
</dependency> 
<dependency> 
	<groupId>org.springframework</groupId> 
	<artifactId>spring-webmvc</artifactId
	<version>5.2.5.RELEASE</version>
</dependency>

注册中央调度器

在这里插入图片描述

load-on-startup的作用:

保证tomcat启动后,立即创建容器对象,数字越小创建越早,一般为正整数

  • ➢ 当值大于等于 0 时,表示容器在启动时就加载并初始化这个 servlet,数值越小,该 Servlet的优先级就越高,其被创建的也就越早;
  • ➢ 当值小于 0 或者没有指定时,则表示该 Servlet 在真正被使用时才会去创建。
  • ➢ 当值相同时,容器会自己选择创建顺序
  <load-on-startup>1</load-on-startup>

<url-pattern/>

对于<url-pattern/>,可以写为 "/ " ,建议写为*.do 的形式。

<!--创建中央调度器-->
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <!--全限定类名-->
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--配置文件扫描-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
        <!--保证tomcat启动后,立即创建容器对象,数字越小创建越早,
        一般为正整数-->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

创建SpringMVC配置文件

在工程的类路径即 src 目录下创建 SpringMVC 的配置文件 springmvc.xml。该文件名可以任意命名
在这里插入图片描述

创建处理器

在类上与方法上添加相应注解即可。

  1. @Controller:表示当前类为处理器
  2. @RequestMapping:表示当前方法为处理器方法。该方法要对 value属性所指定的 URI进行处理与响应。被注解的方法的方法名可以随意。

若有多个请求路径均可匹配该处理器方法的执行,@RequestMapping 的 value 属性中可以写上一个数组。

ModelAndView 类中的 addObject()方法用于向其 Model 中添加数据。Model 的底层为一个 HashMap。

Model 中的数据存储在 request 作用域中,SringMVC 默认采用转发的方式跳转到视图,本次请求结束,模型中的数据被销毁。
在这里插入图片描述

@RequestMapping(value = "some.do")
    public ModelAndView firstSpringMVC(){
        ModelAndView mv = new ModelAndView();
        mv.addObject("msg","风传");
        mv.addObject("asd","中国风");
        mv.setViewName("show");
        return mv;
    }

声明组件扫描器

在这里插入图片描述

 <!--组件扫描器 -->
    <context:component-scan base-package="com.yky.Controller" />

声明视图解析器

SpringMVC 框架为了避免对于请求资源路径与扩展名上的冗余,在视图解析器InternalResouceViewResolver 中引入了请求的前辍与后辍。而 ModelAndView 中只需给出要跳转页面的文件名即可,对于具体的文件路径与文件扩展名,视图解析器会自动完成拼接。

在这里插入图片描述

 <!--添加视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/view/"/>
        <property name="suffix" value=".jsp" />
    </bean>

使用 SpringMVC 框架 web 请求处理顺序

在这里插入图片描述

SpringMVC的执行流程

流程图

在这里插入图片描述

执行流程简单分析

  1. 浏览器提交请求到中央调度器
  2. 中央调度器直接将请求转给处理器映射器。
  3. 处理器映射器会根据请求,找到处理该请求的处理器,并将其封装为处理器执行链后 返回给中央调度器。
  4. 中央调度器根据处理器执行链中的处理器,找到能够执行该处理器的处理器适配器。
  5. 处理器适配器调用执行处理器。
  6. 处理器将处理结果及要跳转的视图封装到一个对象 ModelAndView 中,并将其返回给 处理器适配器。
  7. 处理器适配器直接将结果返回给中央调度器。
  8. 中央调度器调用视图解析器,将 ModelAndView中的视图名称封装为视图对象。
  9. 视图解析器将封装了的视图对象返回给中央调度器
  10. 中央调度器调用视图对象,让其自己进行渲染,即进行数据填充,形成响应对象。
  11. 中央调度器响应浏览器。

猜你喜欢

转载自blog.csdn.net/qq_44895397/article/details/106725419
今日推荐