SpringWeb运行流程(超详细)

SpringWeb,也叫spring MVC,是spring框架中的一个模块,基于servlet API构建的原始web框架

java后端框架演变流程:Strust1->webWork->Struts2->spring web

早期的ssm指的是spring+struts2+mybatis

目前由于技术的更新换代,新的ssm为spring+springWeb+mybatis

springWeb的工作流程

1.用户发送出请求到前端控制器 DispatcherServlet。
2.  DispatcherServlet 收到请求调用 HandlerMapping(处理器映射器)。
3.  HandlerMapping 找到具体的处理器(可查找 xml 配置或注解配置),生成处理器对象及处理器拦截器(如果有),再一起返回给 DispatcherServlet。
4.  DispatcherServlet 调用 HandlerAdapter(处理器适配器)。
5.  HandlerAdapter 经过适配调用具体的处理器(Handler/Controller)。
6.Controller 执行完成向前端响应结果。

 相关组件

DispatcherServlet:前端控制器,不需要程序员开发,由框架提供,在web.xml 中配置。

                作用:统一处理请求和响应,整个流程控制的中心,由它调用其它组件处理用户的请求.

HandlerMapping处理器映射器,不需要程序员开发)由框架提供。

                作用:根据请求的 url 查找 Handler(处理器/Controller)

HandleAdapter:处理器适配器,不需要程序员开发,由框架提供。

                作用:按照特定规则(HandlerAdapter 要求的规则)去执行 Handler

Handler:处理器也称之为 Controller,需要程序员去开发

编写 Handler 时按照 HandlerAdapter 的要求去做,这样适配器才可
以去正确执行 Handler。
                作用:接受用户请求信息,调用业务方法处理请求,也称之为后端控制器

springWeb的配置

1.导入相关依赖

        <!--spring-webmvc-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.2.RELEASE</version>
        </dependency>

2.在web.xml中配置DispatcherServlet

 <!--配置DispatcherServlet,请求分发servlet-->
    <servlet>
        <servlet-name>application</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring.xml</param-value>
        </init-param>
        <!--控制servlet初始化时间,-1是第一次访问时创建,>=0是服务器启动是创建-->
        <load-on-startup>0</load-on-startup>
    </servlet>
    <!-- 请求映射 -->
    <servlet-mapping>
        <servlet-name>application</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

3.开启springMVC注解

    <!--开启 springmvc 注解-->
    <mvc:annotation-driven></mvc:annotation-driven>

4.处理器类搭建

处理器类使用@RestController标记

@RequestMapping 注解是一个用来处理请求地址映射的注解,可用于类或方
法上
package com.xxy.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping(path = "/loginCtl")
public class AdminController {
    @RequestMapping(path = "/login")
    public String login(){
        System.out.println("q11");
        return "hello world";
    }
}

至此,第一个HelloWorld搭建完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值