MVC笔记2--控制器

本文详细介绍了Spring MVC框架中的中心控制器DispatcherServlet的工作原理,包括用户请求的处理流程,从DispatcherServlet开始,经由处理器映射器、处理器适配器、Controller、视图解析器,最后到视图渲染的过程。同时,还概述了典型的Spring MVC注册流程,包括配置springmvc-servlet.xml文件,web.xml中注册DispatcherServlet,编写Controller,并在pom.xml中设置包扫描路径,以及如何启动服务器并访问应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MVC笔记2

中心控制器

Spring的web框架围绕DispathcherServlet设计。DispathcherServlet的作用是将请求分发到不同的处理器。从Spring2.5开始,可以使用@Controller注解。

原理 https://www.cnblogs.com/fengquan-blog/p/11161084.html

​ 1、 用户发送请求至前端控制器DispatcherServlet。

​ 2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。

​ 3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给 DispatcherServlet。

​ 4、 DispatcherServlet调用HandlerAdapter处理器适配器。

​ 5、 HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。

​ 6、 Controller执行完成返回ModelAndView。

​ 7、 HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。

​ 8、 DispatcherServlet将ModelAndView传给ViewReslover视图解析器。

​ 9、 ViewReslover解析后返回具体View。

​ 10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。

​ 11、 DispatcherServlet响应用户。

典型的springmvc注册流程

  • 编写springmvc-servlet.xml文件

    <!--自动扫描包,有ioc统一管理-->
        <context:component-scan base-package="com.cn.controller"/>
    <!--让springmvc不处理静态资源-->
        <mvc:default-servlet-handler/>
        <mvc:annotation-driven/>
    
         
          
        <!-- 视图解析器:DispatherServlet 尤为重要-->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/jsp/"/>
            <property name="suffix" value=".jsp"/>
        </bean>
    
  • 编写web.xml配置注册DispathServlet

    <!--  1注册DispatherServlet  -->
        <servlet>
            <servlet-name>springmvc</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <!--  关联springmvc配置文件-->
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:springmvc-servlet.xml</param-value>
            </init-param>
            <!--    启动级别1-->
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>springmvc</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
    
  • 编写controller

    package com.cn.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
    
    
    @Controller
    public class HelloController {
    
        @GetMapping("/hello")
        public String hello(Model model) {
            model.addAttribute("msg","hellomvc");
            return "test";
        }
    }
    
  • 在pom.xml中添加以下代码,包扫描路径

    <build>
            <resources>
                <resource>
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.properties</include>
                        <include>**/*.xml</include>
                    </includes>
                    <filtering>false</filtering>
                </resource>
                <resource>
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*.properties</include>
                        <include>**/*.xml</include>
                    </includes>
                    <filtering>false</filtering>
                </resource>
            </resources>
        </build>
    
  • 启动Tomcat服务器,访问localhost:8080/项目名/hello,即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值