Spring5 MVC 快速搭建和基本流程

搭建springMvc
idea新建maven项目

pom.xml中加入springmvc依赖

 <!--加入依赖-->
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.6.RELEASE</version>
        </dependency>
    </dependencies>

右击项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
新建spring-mvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xxxx>
    <!--配置前端控制器、核心调度器、分发器
    接收所有除了,jsp的请求 都交给springmvc去处理-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--告诉springMvc我们的配置文件在哪里-->
        <init-param>
            <!--contextConfigLocation配置springmvc的xml配置文件-->
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <!--启动时加载servlet  :
    当web服务器 启动时就会创建servlet(会自动调用servlet的构造函数及init()方法),可以加载spring上下文
    标记容器是在启动的时候就加载这个servlet
    -->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
        <!--配置路径
        /   除了.jsp的请求都会被匹配
        /*   所有请求都会匹配
        *.do、*.action   url结尾以do或者.action的都会被匹配
        现在基本不加后缀了
        -->
    </servlet-mapping>
</web-app>

配置url-pattern为/除了jsp的文件其他所有的请求都拦截下来;
把所有的控制器注入到IOC容器当中;

@Controller
public class controller {
    //在springMvc中自动绑定,添加RequestMapping是映射
    @RequestMapping("/Hello")
    public String hello(String name){
        System.out.println("hello spring mvc");
        return "redirect:index.jsp";
        //就可以访问index.jsp的页面了
    }
}

配置tomcat启动即可使用
在这里插入图片描述

在idea中要手动添加lib目录,把包放进去,否则http://localhost:8080/Hello会报错

该项目运行流程:
1、客户端发送请求http://localhost:8080/Hello
2、tomcat接收到对应请求;
3、前端控制器DispatcherServlet接收到所有的请求
4、根据RequestMapping注解来映射匹配Hello方法;
5、前端控制器找到具体发方法,执行目标方法;
6、springmvc把该方法的返回值用视图解析器解析拼接成完整的页面地址;
7、DispatcherServlet拿到地址,转发或者重定向到具体页面

springmvc 流程(很重要 背)
DispatcherServlet: 前端调度器,把拦截分发到各个控制器方法中
HandlerMapping:在分发到各个控制器之前,先调用HandlerMapping;负责根据请求的URL和@RequestMapping去匹配,匹配到就返回具体方法(@RequestMapping("/Hello") public String hello(String name))Handler(具体控制器的方法)
HandlerAdaper:负责调用Handler具体的方法返回逻辑视图名(return “index.jsp”😉,并封装到ModelAndView中 返回到DispatcherServlet
ViewReslover: 根据ModelAndView里面的视图名地址,找到具体的视图文件(index.jsp)封装在View对象中
View:进行视图渲染(将jsp转换成html内容)
1、DispatcherServlet表示前端控制器,是整个SpringMVC的控制中心。用户发出请求,
DispatcherServlet接收请求并拦截请求。
2、HandlerMapping为处理器映射。DispatcherServlet调用HandlerMapping,HandlerMapping根据请
求url查找Handler。
3、返回处理器执行链,根据url查找控制器,并且将解析后的信息传递给DispatcherServlet
4、HandlerAdapter表示处理器适配器,其按照特定的规则去执行Handler。
5、执行handler找到具体的处理器
6、Controller将具体的执行信息返回给HandlerAdapter,如ModelAndView。
7、HandlerAdapter将视图逻辑名或模型传递给DispatcherServlet。
8、DispatcherServlet调用视图解析器(ViewResolver)来解析HandlerAdapter传递的逻辑视图名。
9、视图解析器将解析的逻辑视图名传给DispatcherServlet。
10、DispatcherServlet根据视图解析器解析的视图结果,调用具体的视图,进行试图渲染
11、将响应数据返回给客户端

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值