SpringMVC简介

SpringMVC概述

  • SpringMVC是一个基于Spring开发的MVC轻量级框架,Spring3.0后发布的组件,SpringMVC可以和Spring无缝整合,使用DispatcherServlet作为前端控制器,且内部提供了处理映射器、处理适配器、视图解析器等组件,可以简化JavaBean的封装,Json转化、文件上传等操作

入门案例

  • 导入SpringMVC框架坐标
    •       <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.28</version></dependency>
  • 配置前端控制器DispactherServlet

    • <!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><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><load-on-startup>2</load-on-startup></servlet><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
      </web-app>
      
  • 创建Controller类,配置映射路径,同时讲控制类交给Spring容器

    • package com.example.Controller;import org.springframework.stereotype.Controller;
      import org.springframework.web.bind.annotation.RequestMapping;@Controller
      public class Controller01 {@RequestMapping("/show")public String show() {System.out.println("show()...");
      // 返回视图路径return "/index.jsp";}
      }
      

Controller中访问容器中的Bean

  • 在Spring的配置文件中,设置组件扫描范围
  • 然后SpringMVC的配置文件web.xml中解析配置,然后通过Spring集成web环境的相关知识(这里的知识我还没有太搞明白,先往下学),在web.xml配置文件中配置相应的配置,让服务器在加载web.xml配置文件时,加载到我们配置的Spring的配置文件,从而使注解生效,将对应的类交给Spring容器管理。

    •  
  • 然后启动服务器,在控制层直接使用@Autowired注解直接注入Bean对象即可

SpringMVC关键组件的解析

  • 在上述文章中,我们已经简单完成了SpringMVC快速入门的操作,同时也完成了Spring与SpringMVC的整合,我们只需要按照规则去定义Controller和业务方法即可,但在这个过程中,肯定有很多核心功能类参与其中,这些核心功能类,一般称之为组件。当请求到达服务器时,是哪个组件接收的请求,是哪个组件帮我们找到对应的Controller,是哪个组件帮我们调用的方法,又是哪个组件最终解析的视图?
    • 组件描述常用组件
      处理器映射器:HandlerMapping匹配映射路径对应的Handler,返回可执行的处理器链对象HandlerExecutionChain对象RequestMappingHandlerMapping
      处理适配器:HandlerAdapter匹配HandlerExecutionChain对应的适配器进行处理器调用,返回视图模型对象RequestMappingHandlerAdapter
      视图解析器:ViewResolver对视图模型对象进行解析InternalResourceViewResolver

Spring加载组件的策略


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/132534.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RecyclerView 空白区域点击事件

在项目中使用RecyclerView展示列表数据&#xff0c;用了GridLayoutManager&#xff0c;在遇到item个数不满足一行时&#xff0c;会在页面右侧透出空白位&#xff0c; 如下图所示. 目前点击空白位是没有点击响应事件的&#xff0c;我们想实现点击响应以扩大用户可以进入LandingP…

PyTorch 深度学习之处理多维特征的输入Multiple Dimension Input(六)

1.Multiple Dimension Logistic Regression Model 1.1 Mini-Batch (N samples) 8D->1D 8D->2D 8D->6D 1.2 Neural Network 学习能力太好也不行&#xff08;学习到的是数据集中的噪声&#xff09;&#xff0c;最好的是要泛化能力&#xff0c;超参数尝试 Example, Arti…

S/4 HANA 大白话 - 财务会计-4 应付、应收账款

Business Partner 业务伙伴 业务伙伴现在包括供应商伙伴和客户伙伴。 只要不是个搞空壳玩泡沫的公司&#xff0c;你基本都得有从供应商那里拿原材料或者购买零部件&#xff0c;然后进行生产&#xff0c;再售卖给客户。你得和银行打交道&#xff0c;同时也得有员工。所有这些关…

LeetCode【11】 盛水最多的容器

题目&#xff1a; 分析&#xff1a; 1、双指针&#xff0c;储水为&#xff08;R-L &#xff09;* 二者较小高度&#xff0c;如题目&#xff0c;(9-2)* 7 49 2、双指针向中间靠&#xff0c;每次移动较矮的指针。 代码&#xff1a; public int maxArea(int[] height) {int l…

关键词搜索淘宝商品数据接口,淘宝商品列表数据接口

关键词搜索淘宝商品数据接口可以通过淘宝开放平台获取商品列表数据&#xff0c;包括商品标题、价格、优惠价、收藏数、月销售量、SKU图、详情页图片等。 通过调用淘宝开放平台的API接口&#xff0c;可以实现关键词搜索淘宝商品列表数据&#xff0c;获取商品详情页数据信息&…

【FreeRTOS】【STM32】03 FreeRTOSConfig.h头文件简介与修改

基于[野火]《FreeRTOS%20内核实现与应用开发实战—基于STM32》.pdf FreeRTOSConfig.h头文件是FreeRTOS各项功能的打开与关闭 FreeRTOSConfig.h头文件简介 之前也说过了&#xff0c;FreeRTOSConfig.h文件可以添加在工程中任意文件夹&#xff0c;只需要在路径中添加好了就行。…

ARM作业2

.设置按键中断&#xff0c;按键1按下&#xff0c;LED亮&#xff0c;再按一次&#xff0c;灭 按键2按下&#xff0c;蜂鸣器响。再按一次&#xff0c;不响 按键3按下&#xff0c;风扇转&#xff0c;再按一次&#xff0c;风扇停 头文件key_it.h #ifndef __KEY_IT_H__ #define …

项目风险管理:通过五步降低风险

最完善的项目也会有风险&#xff0c;如果管理不当&#xff0c;项目的成功岌岌可危。 好在项目风险管理可以挽救这一切。事实上&#xff0c;只要投入时间评估项目风险并制定风险管理计划&#xff0c;就能成倍提高成功率。 什么是项目风险管理&#xff1f; 项目风险管理包括识别…

喜报!冲量在线中标中国电信北京公司2023年基于通用GPU的可信执行环境技术的研究项目

近日&#xff0c;冲量在线中标中国电信北京公司2023年基于通用GPU的可信执行环境的研究项目&#xff01;基于通用GPU的可信执行环境技术&#xff0c;完成业界领先的基于国产可信芯片的AI算力平台建设。 通过平台TEEGPU的隐私计算能力&#xff0c;给现有的AI智算平台在可信计算方…

TCP/IP(十四)流量控制

一 流量控制 说明&#xff1a; 本文只是原理铺垫,没有用tcpdumpwiresahrk鲜活的案例讲解,后续补充 ① 基本概念 流量控制: TCP 通过接受方实际能接收的数据量来控制发送方的窗口大小 ② 正常传输过程 背景:1、客户端是接收方,服务端是发送方 --> 下载2、假设接收窗…

Netty通信在中间件组件中的广泛使用-Dubbo3举例

Netty是一个高性能异步IO通信框架&#xff0c;封装了NIO&#xff0c;对各种bug做了很好的优化解决。所以很多中间件底层的通信都会使用Netty&#xff0c;比如说&#xff1a;Dubbo3&#xff0c;rocketmq&#xff0c;ElasticSearch等。 比方说&#xff0c;我们使用dubbo作为rpc跨…