SpringMVC执行流程

238 阅读1分钟

1.springMVC概述

1.什么是springwvc 它是基于mvc开发模式的框架,用来优化控制器.它是spring家族的一员.它也具备IOC和AOP

2.什么是MVC?
它是一种开发模式,它是模型视图控制器的简称.所有webb应用都是基于c开发
M:模型层,包含实体类,业务逻辑层,数据访问层
V:视图层,html,javascript,vue等都是视图层,用来显现数据 C:控制器,它是用来接收客户端的请求,并返回响应到客户端的组件servlet就是组件

2.springMVC的好处

1.轻量级,基于mvc的框架
2.易于上手,容易理解,功能强大
3.它具备IOC和AOP
4.完全基于注解开发

3.基于注解的springmvc框架开发的步骒

1.新建项目,选择webapp模板
2.修改目录,添加缺失的test,java,resources(两套),并修改目录属性
3.修改pom.xml文件,添加sprnvc的依赖,添加seret的依赖
4.添加sprinvcxml配置文件,指定包扫描,添加视图解析器
5.删除web.xml文件,新建web.xml
6.在web,xml文件中注册springc框架(所有web请求都是基于servle的)
7.删除index.jsp页面,并新建,发送请求给普通的类
8.开发控制器(servlet),它是一个普通的类.
9.添加tmcat进行测试功能

image.png

4.代码演示

  1. web.xml
<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>myweb</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <!-- 自定义 springmvc 读取的配置文件的位置 -->
        <init-param>
            <!-- springmvc 的配置文件的位置的属性-->
            <param-name>contextConfigLocation</param-name>
            <!-- 指定自定义文件的位置-->
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>

        <!-- 在 tomcat 启动后,创建 servlet 对象
            load-on-startup:表示 tomcat 启动后创建对象的顺序。他的值时整数,
            数值越小,tomcat 创建对象的时间越早,大于等于 0 的整数。
        -->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>myweb</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
</web-app>
  1. springmvc.xml
<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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
    <!-- 视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp" />
        <property name="suffix" value=".jsp" />
    </bean>
    <!-- 声明组件扫描器 -->
    <context:component-scan base-package="com.manman.controller"/>
</beans>
  1. Controller
package com.manman.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

/**
 * @Controller:创建处理器对象,对象放在 springmvc 容器中。
 * 能处理请求的都是控制器(处理器):MyController 能处理请求,叫做后端控制器
 */
@Controller("myController")
public class MyController {
   
    @RequestMapping(value = "/some.do")
    public ModelAndView doSome(){
        // 处理 some.do 请求
        ModelAndView mv = new ModelAndView();
        mv.addObject("msg", "hello world");
        mv.addObject("fun", "执行的是 doSome 方法");
        mv.setViewName("/show.jsp");
        // 返回 mv
        return mv;
    }
}