带你轻松入门SpringMVC(第一章)SpringMVC概述

轻松掌握SpringMVC国际化入门指南 SpringMVC是Spring框架的一部分,是一种基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过分离控制器、模型对象、分派器以及处理程序对象,降低了代码之间的耦合度。本章节主要介绍SpringMVC的基本概念、工作原理以及如何快速搭建一个SpringMVC项目。SpringMVC通过DispatcherServlet来分发请求到不同的Handler,然后将结果返回给客户端。 阅读详情

整理了动力节点Springmvc的学习笔记,王鹤老师讲的springmvc,看了这么多网上的视频,还是只有王鹤老师讲的能听明白…就喜欢讲的细的,而且老师条理很清晰

视频资源:https://www.bilibili.com/video/BV1sk4y167pD

第一章 SpringMVC 概述

1.1 SpringMVC 基本说明

SpringMVC是基于spring的, 是spring中的一个模块,做web开发使用的。 springmvc 叫做spring web mvc

说明他是spring的核心技术, 做web开发,springmvc内部是使用mvc架构模式。

SpringMVC 是一个容器, 管理对象的,使用IoC核心技术。 springmvc管理界面层中的控制器对象。

SpringMVC底层也是Servlet。 以Servlet为核心, 接收请求,处理请求。 显示处理结果给用户。

处理用户的请求:

用户发起请求----SpringMVC—Spring—MyBatis–mysql数据库

1.2 SpringMVC中的核心Servlet – DispatcherServlet

DispatcherServlet 是框架一个Servlet对象。 负责接收请求, 响应处理结果。

DispatcherServlet 他的父类是HttpServlet

DispatcherServlet 也叫做前端控制器( front controller)。

SpringMVC是管理控制器对象, 原来没有SpringMVC之前使用 Servlet作为控制器对象使用。现在通过SpringMVC容器创建一种叫做控制器的对象,代替Servlet行驶控制器的角色。功能。

SpringMVC 主要使用注解的方式, 创建控制器对象, 处理请求。

<servlet>
    <servlet-name>myweb</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>
    <!--
       表示服务器tomcat创建对象的顺序, 是个整数值, 大于等于0.
       数值越小,创建对象的时间越早。
    -->
    <load-on-startup>1</load-on-startup>
</servlet>


<servlet-mapping>
    <servlet-name>myweb</servlet-name>
    <!--
       url-pattern 作用: 把一些请求交给指定的servlet处理
       使用中央调度器(DispatcherServlet)
       1. 使用扩展名方式, 格式 *.xxx ,  xxx是自定义的扩展名。
          例如  *.do , *.action, *.mvc 等等. 不能使用*.jsp
          http://localhost:8080/myweb/some.do
          http://localhost:8080/myweb/user/list/queryUser.do
          http://localhost:8080/myweb/user/list/list.do

       2. 使用斜杠 "/"
    -->
    <url-pattern>*.do</url-pattern>

</servlet-mapping>

1.3 springmvc请求的处理过程

简单的处理过程:

用户发起请求some.do—>Tomcat接收了请求—DispatcherServlet–分配MyController(doSome()返回mv对象)–mv显示给用户了。

省略tomcat

用户some.do--------------DispatcherServlet--------------MyController

如果使用servlet处理请求

用户发起请求--------------------没有其他对象------------------------Servlet
在这里插入图片描述

1.4 复习

用户发起some.do—DispatcherServlet(Servlet接收请求)—转给MyController

public class DispatcherServlet extends HttpServlet{

​        public void service(HttpServletRequest request, HttpServletResponse response){

​                       if("some.do".equals(request.getURI())){

​                              //从容器中获取MyController

​                              MyController c  = ctx.getBean("some"));

​                              c.doSome();

​                       } e lse if( "other.do".equals(request.getURI())){

​                                OtherController c  = ctx.getBean("other"));

​                               c.doOther();

​                           }

​          }

}

1.5 web开发中配置文件的说明

  1. web.xml 部署描述符文件 , 给服务器(tomcat)。

    作用:服务器在启动的时候,读取web.xml ,根据文件中的声明创建各种对象,

    ​ 根据文件中的声明 知道 请求和servlet等对象的关系。

  2. 框架的配置文件, springmvc的配置文件

    作用:声明框架创建的项目中的各种对象, 主要是创建Controller对象的

配置文件的加载顺序和功能

  1. tomcat服务器启动, 读取web.xml. 根据web.xml文件中的说明,创建对象。

    <servlet>
            <servlet-name>myweb</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>
            <!--
               表示服务器tomcat创建对象的顺序, 是个整数值, 大于等于0.
               数值越小,创建对象的时间越早。
            -->
            <load-on-startup>1</load-on-startup>
        </servlet>
    

    创建DispatcherServlet他的对象, 会执行init()方法。 在init()方法中会执行 springmvc容器对象创建

    WebApplicationContext ctx = new ClassPathXmlApplicationContext(“classpath:springmvc.xml”)

  2. springmvc框架, new ClassPathXmlApplicationContext()读取springmvc的配置文件。

     <context:component-scan base-package="com.bjpowernode.controller" />
    
        <!--声明视图解析器:帮助处理视图-->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <!--前缀:指定视图文件的路径-->
            <property name="prefix" value="/WEB-INF/view/" />
            <!--后缀:视图文件的扩展名-->
            <property name="suffix" value=".jsp" />
        </bean>
    

使用组件扫描器base-package=“com.bjpowernode.controller” ,遍历controller包中的所有类,MyController类, 找到这个类中的@Controller, @RequestMapping注解, 就能创建MyContoller对象。

知道some.do的请求是执行doSome()方法

以上 1, 2. 都是项目启动的过程, 没有执行任何的用户请求。

  1. 用户发起请求some.do----DispatcherServlet

    DispatcherServlet里面有 WebApplicationContext 。 WebApplicationContext 里面有MyController对象。

    请求some.do ,DispatcherServlet 就知道是 MyController处理的。

1.6 SpringMVC内部的执行流程

springmvc内部请求的处理过程:

  1. 用户发起请求给DispatcherServlet

  2. DispatcherServlet把请求(request)交给了 处理器映射器。

    处理器映射器: springmvc框架中的对象, 需要实现HandlerMapping接口。

    映射器作用: 从springmvc容器中,获取控制器对象(MyController),把找到的控制器和拦截器对象都放到 处理器执行链对象中,保存,并返回给中央调度器。(MyController controller = ApplicationContext.getBean())

  3. DispatcherServlet把获取到的处理器执行链中的控制器对象,交给了处理器适配器

    处理器适配器:是springmvc框架中的对象, 实现HandlerAdapter接口。

    适配器作用: 执行控制器的方法, 也就是执行MyController.doSome()方法。得到结果ModelAndView

  4. DispatcherServlet把控制器执行结果mv交给了 视图解析器

    视图解析器: springmvc中的对象,需要实现ViewResolver接口。

    视图解析器作用: 处理视图的, 组成视图的完整路径。 能创建View类型的对象

  5. DispatcherServlet调用View类的方法, 把Model中的数据放入到request作用域。 执行request.setAttribute(), 对视图执行forward()转发行为, request.getRequestDispather("/show.jsp").forward(request,response)

初学Spring+SpringMVC+MyBatis框架(适合初学者看相对完整些) 这次比上次的做了写改动,仍然是基于IDEA做的。欢迎初学者来看。有什么问题可以直接提问,大家一起来学习。 立即下载

相关推荐

动力节点-java教程-Spring4

教程名称:动力节点-java教程-Spring4 课程简介:动力节点推出的本套Java视频教程内容主要讲解的Spring版本号为4.2.1,是目前Spring比较新的一个版本,与之前的Spring3相比,有一些技术上的更新,内容涵盖了实际工作中可能用到的几乎所有知识点,相信通过本套Java视频教程的学习,一定能够精通Spring框架。 课程目录:北京动力节点-Spring4-000-对封封装与继承 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

SpringMvc菜鸟详解

1、引言 今天写一点关于框架的东西,因为大多数企业现在都是用的SSH框架,所以我想把框架复习一下,我真的没有想到一个程序猿不经常敲代码会变成一个手残党,我真的很伤心,但是我觉得那些都不是事,只要努力,因为有底子,相信很快能找回感觉,同时还可以让基础更加扎实! 首先在了解SpringMvc前你要了解什么是MVC,我想只要能找到这篇博客的童鞋,多多少少会有所了解! 那么我们来说一下什么是Sp

羊驼先生丶年 8372

手把手教你在全新服务器内网安装OpenEuler 22.03 LTS SP4+ 安装 openGuass 5.0.0(LTS) 数据库

openEuler是面向数字基础设施的操作系统,支持服务器、云计算、边缘计算、嵌入式等应用场景,支持多样性计算,致力于提供安全、稳定、易用的开源服务器Linux操作系统。

cgqyw的专栏 3737

SpringMVC入门

目录 一、Springmvc简介及配置 1. 什么是springMVC? 2、SpringMVC的组件 3、SpringMVC核心开发步骤 二、Springmvc之helloword实现 1、添加相关依赖 2、在WEB-INF下添加spring-mvc.xml 3、修改web.xml 4、在Controller包下新建HelloController类 5、新建jsp页面 6、运行结果 三、SpringMvc的工作流程 四、Springmvc常用注解及返回值处理 1、新建Boo..

m0_60375302的博客 924

loadStop的原因导致的SSUSP

Total内存值是可用来调度的可用内存,当前可用内存为 0M。 loadSched和loadStop的阈值是根据 Total 内存和节点内存来做限制的。 loadStop 50G,现在有大量作业SSUSP,说明之前某个时间点该节点内存可能有低于50G的时候,导致作业SSUSP,具体是否是这个原因引起的需要用 bjobs -l JobID 看下作业的详细信息。 如果是loadStop的原因导致的 SSUSP,根据loadStop设置的阈值,Total 值高于loadStop值后,将逐步恢复挂起的作业

Blueberry521的博客 666

详解ReID的各部分组成及Trick——基于FastReID

这一系列博客将基于京东开源的FastReID进行扩充,详细介绍了ReID的各个组成部分,一些有用的Trick,评价指标,常用数据集等,详细内容见下方的链接,总结不易,如有理解不正确之处,麻烦各位批评指正。 一、FastReID的中的baseline文件配置 二、Training strategy 三、Pre-processing 四、Backbone 五、Aggregation 六、Head 七、Loss 八、Distance Metric 九、Post-processing 十、Evaluation 十一

藏晖的博客 9164

[记录学习]自学动力节点荣姐SpringMVC5笔记

SpringMVC5 学习笔记

sls1223074612的博客 4978

【解决问题】‘vue‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。

【解决问题】'vue' 不是内部或外部命令,也不是可运行的程序或批处理文件。

weixin_44566194的博客 4万+

菜鸟学SpringMVC之——SpringMVC入门

SpringMVC 引入 Spring 框架提供了构建 Web应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),Struts 2(一般老项目使用)等。 SpringMVC的优点: 1、SpringMVC使用简单,学习成本低。学习难度小于Struts2,Struts2用不上的多余功能太多。 2、SpringMVC很容易就可以写出性能优秀

菜鸟琪 1521

Anki小白必看:手把手教你打造高颜值个性化笔记模板(附Leaflyer模板下载)

本文为Anki新手提供详细的个性化笔记模板设计指南,从基础配置到高级定制技巧,帮助用户打造高效记忆系统。特别推荐Leaflyer模板下载,通过视觉优化和功能强化,显著提升学习体验和记忆效率。

weixin_28717969的博客 433

从KVM虚拟化到Openstack云化架构综述

目录 摘要 OpenStack的虚拟化技术 OpenStack架构介绍 Nova Swift KeyStone Neutron Glance Cinder Ceilometer Heat 摘要 这两年的工作中,接触到公有云和私有云的项目还不少。起初对于Openstack的了解,仅停留在其几大组件的交互上,如Nova、Neutron、Glance等,以及对各大云厂商功能点上...

liyunpeng229的博客 2051

Java程序员必看-SpringMVC轻松入门

快来预习复习SpringMVC~

weixin_61263533的博客 904

pytorch搭建SSAE实现预测分类代码模板完整代码

pytorch搭建SSAE实现预测分类代码模板完整代码

325

让你轻松入门SpringMVC

文章目录SpringMVC的概述SpringMVC的核心DispatcherServlet程序SpringMVC的第一个Hello示例程序SpringMVC——Hello world程序的步骤:SpringMVC的配置文件的另一种存放方式:视图解析器@RequestMapping注解详解value属性(**重点**)params属性headers属性method属性(*次重点*)@RequestMapping标注在Controller类上通配符在@RequestMapping中的使用(了解内容)源码解析Sp

希冀 421

基于STM32设计的智能厨房环境监测报警系统_426

随着天然气、液化石油气等可燃性气体在家庭中的广泛应用,燃气泄漏所引发的安全问题日益突出。针对传统家用可燃气体报警器功能单一、信息获取受限以及缺乏远程监测能力等不足,设计了一种基于STM32单片机的家用可燃气体报警器系统。

760

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

SpringMVC入门详解

SpringMVC是一个基于Java的实现了MVC设计模式的Web框架,它通过将Web层进行模块化,使得Web应用程序的开发变得更加灵活和可维护。简化开发:通过注解的方式简化了配置,减少了代码量。强大的集成能力:可以很容易地与其他Spring模块集成。灵活的配置:支持零配置启动,也支持通过XML或Java配置进行详细配置。可重用性高:可以轻松地将一个项目中的代码重用到另一个项目中。

ning的博客 1241

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

SpringMVC 入门 简单配置

SpringMVC入门 搭建开发环境 第一步,创建工程:正常创建maven工程,选择webapp(注意是maven下的) 第二步:创建之后再main下创建java和resources两个文件夹(我这里是直接创建文件夹类型就给定义好了,如果创建出来是普通的文件夹,可以右键文件夹选择Mark Directory as然后选择相应类型:java选择Sources Root,resources选择Resources Root ) 第三步:在pom.xml中添加依赖 <properties>

阿颜的博客 203

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

SpringMVC之入门(带你体验SpringMVC的乐趣)

Spring MVC是Spring Framework的一个模块,用于快速开发Web应用程序。它是一个基于Java的MVC框架,采用了经典的模型-视图-控制器(Model-View-Controller)设计模式。在Spring MVC中,模型(Model)用于封装业务数据和逻辑,负责处理数据的读写、验证和存取等。视图(View)负责展示数据给用户,通常是通过生成HTML页面或返回JSON/XML数据给客户端进行展示。

weixin_74352229的博客 143

SSM框架入门学习(SpringMVC篇)

快速上手了解掌握springmvc核心内容

2302_77423520的博客 1264

带你轻松入门SpringMVC(第二章)SpringMVC注解式开发

整理了动力节点Springmvc的学习笔记,王鹤老师讲的springmvc,看了这么多网上的视频,还是只有王鹤老师讲的能听明白…就喜欢讲的细的,而且老师条理很清晰 视频资源:https://www.bilibili.com/video/BV1sk4y167pD 第二章 SpringMVC 注解式开发 2.1 @RequestMapping注解的使用。 属性: value 请求的uri地址。 位置: 1) 在方法的上面, 必须的。 2)在类的上面作为模块名称 @RequestMapping(value ="

Java_Leo12的博客 436

带你轻松入门SpringMVC(第三章)SSM整合

第三章 SSM 整合 3.1 SSM 整合思路 SSM思路: SpringMVC+ Spring + MyBatis(IBatis), 所以有人叫做SSI整合。 SSM整合是使用三个框架的优势功能。三个框架对应的三层架构的三层。 SpringMVC是视图层, Spring是业务层, MyBatis持久层。 SSM 整合,需要把对象交给容器管理, 让容器去创建项目中要使用的java对象。 现在有两个容器。 第一个是Spring容器: Spring容器是管理service 和 dao等对象的。 是业务层对

Java_Leo12的博客 248

Spring MVC学习笔记 第一章 概述

Spring MVC学习笔记 第一章 概述 Spring MVC概述 Spring MVC是目前主流的实现MVC设计的框架,是Spring框架的一个分支产品,以Spring IoC容器为基础,并利用容器的特性来简化它的配置。 Spring MVC相当于Spring的一个子模块,可以很好的和Spring结合起来进行开发,是Java Web开发者必须要掌握的框架。 什么是MVC设计模式? 将应用程序分...

qq_41684416的博客 283

SpringMVC(一):springMVC入门

一、三层架构和MVC模型 1、三层架构 1.1、分层原因 为了方便代码的维护,需要保证类的职责要单一(将一个类拆分成多个类,形成类之间的调用关系)。 1.2、三层结构 表现层(UI层):数据展现和操作界面,负责请求分发; 业务层(服务层):封装业务逻辑,处理业务; 持久层(数据访问层):封装数据访问逻辑,负责和数据库交互。 1.3、分层的优点 有利于标准化,利于各层逻辑的复用; ...

yu1755128147的博客 163

轻松入门Spring MVC

在执行程序时,Spring MVC根据客户端请求参数的不同,将请求消息中的信息以一定的方式转换并绑定到控制器类的方法参数中。这种将请求消息数据与后台方法参数建立连接的过程就是 Spring MVC中的数据绑定。根据客户端请求参数类型和个数的不同,将 Spring Mvc中的数据绑定主要分为简单数据绑定和复杂数据绑定。与XML一样,JSON也是基于纯文本的数据格式。初学者可以使用JSON传输一个简单的String、 Number、 Boolean,也可以传输一个数组或者一个复杂的 Object对象。.....

zhyy-ang的博客 1285

SpringMVC从入门到掌握:核心概述与@RequestMapping注解详解

本文摘要:SpringMVC是基于Spring的轻量级MVC框架,通过DispatcherServlet统一处理请求,采用注解简化开发。其核心特性包括:1)模块化设计(Controller/Model/View分离);2)支持RESTful风格路径参数(@PathVariable);3)灵活请求映射(@RequestMapping支持value路径匹配、method请求方式限定);4)依赖注入管理对象;5)多视图技术支持。重点介绍了@RequestMapping注解的用法,包括类与方法级联使用、Ant风格通

你好,作为一名Java后端开发的学习者。这个博客是我记录技术成长的地方,也是我与你分享知识的小天地。我相信:最好的学习方式是输出。希望能帮助刚入门的你少踩坑,也欢迎大家一起交流进步! 716
上一篇: Dubbo学习笔记-动力节点(第五章)管理控制台(Dubbo Admin)
下一篇: 带你轻松入门SpringMVC(第二章)SpringMVC注解式开发
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值