动力节点Spring框架学习笔记-王鹤(五)Spring与Web

SpringMVC框架学习笔记整理-动力节点王鹤(无必详细) 继续整理了Springmvc的学习笔记,动力节点王鹤老师讲的springmvc,分享给大家。 看了这么多网上的视频,还是只有王鹤老师讲的能听明白…就喜欢讲的细的,而且老师条理很清晰 视频资源:https://www.bilibili.com/video/BV1sk4y167pD 第一章 SpringMVC 概述 1.1 SpringMVC 基本说明 SpringMVC是基于spring的, 是spring中的一个模块,做web开发使用的。 springmvc 叫做spring web mvc 说明他是spr 阅读详情

第5章   Spring 与 Web

  • 官方下载地址

http://www.bjpowernode.com/

  • 视频观看地址

https://www.bilibili.com/video/BV1nz4y1d7uy

在 Web 项目中使用 Spring 框架,首先要解决在 web 层(这里指         Servlet)  中获取到 Spring 容器的问题。只要在 web 层获取到了 Spring 容 器,便可从容器中获取到Service 对象。

5.1   Web 项目使用 Spring 的问题(了解)

举例:  springWeb 项目(在 spring-mybatis 基础上修改)

Step1:新建一个 Maven Project

类型 maven-archetype-webapp

Step2:   复制代码,配置文件,  jar

将 spring-mybatis 项目中以下内容复制到当前项目中:

(1)  Service 层、  Dao 层全部代码

(2)配置文件 applicationContext.xml 及jdbc.properties, mybatis.xml

(3)  pom.xml

(4)加入 servlet ,jsp 依赖

在之前原有的 pom.xml 文件中再加入以下的内容:

<!-- servlet依赖  -->

<dependency>

<groupId>javax.servlet</groupId>



<artifactId>javax.servlet-api</artifactId>

<version>3.1.0</version>

<scope>provided</scope>

</dependency>



<!-- jsp依赖  -->

<dependency>

<groupId>javax.servlet.jsp</groupId>

<artifactId>jsp-api</artifactId>

<version>2.2.1-b03</version>

<scope>provided</scope>

</dependency>

Step3:定义 index 页面

Step4:定义 RegisterServlet  (重点代码)

Step5:定义 success 页面

Step6:  web.xml 注册 Servlet

Step7:运行结果分析

当表单提交,跳转到 success.jsp 后,多刷新几次页面,查看后台输出,发现每刷新一次页面,就 new 出一个新的 Spring 容器。即,每提交一次请求,   就会创建一个新的 Spring 容器。对于一个应用来说,只需要一个 Spring 容器  即可。所以,将 Spring 容器的创建语句放在 Servlet 的 doGet()或 doPost()方法中是有问题的。

此时,可以考虑,将 Spring 容器的创建放在 Servlet 进行初始化时进行,即执行 init()方法时执行。并且,Servlet 还是单例多线程的,即一个业务只有  一个 Servlet 实例,所有执行该业务的用户执行的都是这一个 Servlet 实例。这 样,Spring 容器就具有了唯一性了。

但是,Servlet 是一个业务一个 Servlet 实例,  即 LoginServlet 只有一个, 但还会有StudentServlet、 TeacherServlet 等。每个业务都会有一个 Servlet,都会执行自己的 init()方法,也就都会创建一个 Spring 容器了。这样一来,  Spring 容器就又不唯一了。

5.2   使用 Spring 的监听器 ContextLoaderListener(掌握)

举例:  springweb-2 项目(在 spring-web 项目基础上修改)

对于 Web 应用来说,ServletContext 对象是唯一的,一个Web 应用,只有一个ServletContext 对象,该对象是在 Web 应用装载时初始化的。  若将Spring容器的创建时机,放在ServletContext 初始化时,就可以保证 Spring容器的创建只会执行一次,也就保证了 Spring 容器在整个应用中的唯一性。

当 Spring 容器创建好后,在整个应用的生命周期过程中,Spring 容器应该是随时可以被访问的。即,Spring 容器应具有全局性。而放入ServletContext 对象的属性,就具有应用的全局性。所以,将创建好的Spring 容器,以属性的形式放入到ServletContext 的空间中,就保证了Spring 容器的全局性。

上述的这些工作,已经被封装在了如下的 Spring的Jar包的相关 API 中: spring-web 5.2.5.RELEASE

Step1:  maven 依赖 pom.xml

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-web</artifactId>

<version>5.2.5.RELEASE</version>

</dependency>

Step2:注册监听器 ContextLoaderListener

若要在 ServletContext 初始化时创建 Spring 容器,就需要使用监听器接 口 ServletContextListener 对 ServletContext 进行监听。在 web.xml 中注册该监听器。

Spring 为该监听器接口定义了一个实现类 ContextLoaderListener, 完成 了两个很重要的工作:创建容器对象,并将容器对象放入到了 ServletContext的空间中。

打开 ContextLoaderListener 的源码。看到一共四个方法,两个是构造方法,一个初始化方法,一个销毁方法。

所以,在这四个方法中较重要的方法应该就是 contextInitialized(),context 初始化方法。

跟踪 initWebApplicationContext()方法,可以看到,在其中创建了容器对象。

并且,将创建好的容器对象放入到了 ServletContext 的空间中,  key 为一个常量:

WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE。

Step3:指定 Spring 配置文件的位置<context-param>

ContextLoaderListener在对Spring容器进行创建时,需要加载Spring配置文件。其默认的 Spring配置文件位置与名称为:  WEB-INF/applicationContext.xml。但,一般会将该配置文件放置于项目的classpath 下,即 src 下,所以需要在 web.xml 中对 Spring 配置文件的位置及名称进行指定。

从监听器 ContextLoaderListener 的父类 ContextLoader 的源码中可以看到其要读取的配置文件位置参数名称 contextConfigLocation。

Step4:获取 Spring 容器对象

在 Servlet 中获取容器对象的常用方式有两种:

(1)   直接从 ServletContext 中获取

从对监听器 ContextLoaderListener 的源码分析可知,容器对象在 ServletContext 的中存放的 key 为WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUT E。所以,可以直接通过 ServletContext 的 getAttribute()方法,按照指定的key 将容器对象获取到。

(2)   通过 WebApplicationContextUtils 获取

工具类 WebApplicationContextUtils 有一个方法专门用于从 ServletContext 中获取 Spring容器对象:getRequiredWebApplicationContext(ServletContext sc)

调用 Spring 提供的方法获取容器对象:

查其源码,看其调用关系,就可看到其是从 ServletContext 中读取的属性值,即 Spring 容器。

以上两种方式,无论使用哪种获取容器对象,  刷新 success 页面后,可看到代码中使用的 Spring 容器均为同一个对象。

【动力节点】王鹤SpringBoot笔记——第五章 说说Web服务 需求:我们示例查询某个isbn的图书。在application.yml中配置图书的初始数据。用户访问一个api地址,查询某个isbn的图书, 查询不到抛出自定义异常BootNotFoundException。自定义异常处理器捕获异常。ProblemDetail 作为应答结果。支持RFC 7807创建新的SpringBoot项目Lession17-ProblemDetail,依赖选择Spring Web , lombok。Maven构建工具,JDK19,包名com.bjpowernode。 阅读详情

相关推荐

【动力节点】王鹤SpringBoot3笔记——第五章 说说Web服务

需求:我们示例查询某个isbn的图书。在application.yml中配置图书的初始数据。用户访问一个api地址,查询某个isbn的图书, 查询不到抛出自定义异常BootNotFoundException。自定义异常处理器捕获异常。ProblemDetail 作为应答结果。支持RFC 7807创建新的SpringBoot项目Lession17-ProblemDetail,依赖选择Spring Web , lombok。Maven构建工具,JDK19,包名com.bjpowernode。

qwsrfss的博客 730

Spring6全面详解

  自2022年11月,Spring6正式发布。在Spring6中,对于JDK的要求最低为 17+。(17 - 19) 部分文本摘抄于尚硅谷视频(bilibili)做了一定的排版和个人的理解。如果不是很熟悉,可以去看 [Spring5全面详解](http://t.csdn.cn/FgTQ7) 内容大约十万字左右, 对于Spring5的使用整理的较为全面,也都有解释部分,Spring6只是看以下是否具有一些特性上的更换。所以可能并没有Spring5的内容详细。但本篇大约在8-10万字左右。

想看什么文章都可以私信给我,综合性博客。 3890

动力节点王鹤SpringBoot3学习笔记——第五章 说说Web服务

Spring MVC组件的配置类,Java Config方式创建 HandlerMappings接口的多个对象,HandlerAdapters接口多个对象, HandlerExceptionResolver相关多个对象 ,PathMatchConfigurer, ContentNegotiationManager,OptionalValidatorFactoryBean, HttpMessageConverters等这些实例。上面的例子以Html文件作为视图,可以编写复杂的交互的页面,CSS美化数据。

f5465245的博客 948

Spring-06 (Spring 与 Web)

第6章Spring 与 Web 在 Web 项目中使用 Spring 框架,首先要解决在 web 层(这里指 Servlet)中获取到 Spring 容器的问题。只要在 web 层获取到了 Spring 容器,便可从容器中获取到 Service 对象。 Web 项目使用 Spring 的问题(了解) 举例:springWeb 项目(在 spring-mybatis 基础上修改) Step1:新建一个 Maven Project 类型 maven-archet...

小北呱的博客 305

动力节点王鹤SpringBoot3笔记——第五章 说说Web服务

需求:我们示例查询某个isbn的图书。在application.yml中配置图书的初始数据。用户访问一个api地址,查询某个isbn的图书, 查询不到抛出自定义异常BootNotFoundException。自定义异常处理器捕获异常。ProblemDetail 作为应答结果。支持RFC 7807创建新的SpringBoot项目Lession17-ProblemDetail,依赖选择Spring Web , lombok。Maven构建工具,JDK19,包名com.bjpowernode。

Java___interview的博客 3610

AI漫剧制作全流程零基础实操指南:从剧本到剪辑

AI漫剧是一种利用AI工具将剧本、分镜、出图、配音、剪辑整合为流水线的短视频内容形式。其技术原理基于文生图、图生图与文本转语音模型的组合,核心挑战在于角色一致性控制与分镜批量出图。这项技术大幅降低了视频制作门槛,使个人创作者无需演员和设备即可产出剧情向短内容,广泛应用于短视频平台的情景剧、玄幻、甜宠等题材。本文给出了一套零基础可照做的全流程实操方案,覆盖剧本提示词、分镜表、出图选型、配音合成与剪辑模板,帮助你快速跑通AI漫剧制作链路。

weixin_29048309的博客 527

Spring之六 在Web环境中使用Spring

方法一:实现ServletContextListener 1 web.xml contextConfigLocation applicationContext.xml com.ithings.listensers.SpringServletContextListener TestServlet com.ithings.se

你今天的日积月累,早晚会成为别人的望尘莫及。 1165

玄子Share - spring-framework 6.0.9 学习笔记

玄子Share - spring-framework 6.0.9 学习笔记

qq_62283694的博客 890

Android开发者必看:F2FS文件系统如何优化你的手机存储性能(附实测数据对比)

本文深入解析了F2FS文件系统如何针对闪存特性优化Android设备存储性能。通过对比ext4,F2FS采用追加写和冷热数据分离策略,将随机写转化为顺序写,显著提升写入速度并减少GC卡顿。实测数据显示,其在随机写入和SQLite事务等场景下性能提升显著,为开发者提供了优化应用IO性能的关键思路。

weixin_29248313的博客 325

GPT大模型在数学建模中的实战应用:从思路启发到代码生成

数学建模是将现实问题抽象为数学问题并求解的核心方法,其关键在于通过合理的假设与简化,构建可计算的数学模型。传统建模依赖MATLAB等工具进行推演试错,而大语言模型的出现革新了这一范式。GPT等模型通过理解自然语言、辅助逻辑推理与代码生成,能有效提升建模效率与质量,在问题解析、模型构建、算法实现等环节提供关键支持。本文聚焦GPT在数学建模中的具体应用,涵盖赛题解读、模型推导、代码生成与结果分析,并结合实战案例,探讨如何将其作为“副驾驶”融入建模全流程,实现人机协同的智能化建模。

weixin_29061465的博客 324

Spring(六) spring的web项目

Spring(六) spring的web项目 文章目录Spring(六) spring的web项目一、Web 项目使用 Spring 的问题二、步骤1.新建一个 Maven Project,web项目2.pom文件中加入依赖3.复制代码,配置文件4.建立index页面 与 result页面5.定义RegisterServlet6.web.xml注册Servlet7.配置tomcat运行三、程序中的不足问题代码:如何解决问题解决步骤1.添加maven依赖2.注册监听器ContextLoaderListener

qq_27331467的博客 890

一分钟教会你搭建steam新游幻兽帕鲁服务器

总结: 游戏对服务器搭建要求相对较高、且对服务器网络协议有要求不能封堵UDP、多开、游戏运行久、同时在线人数多了这些会很吃内存 我自己用的64G内存多开4区测试玩家同时在线50多人的情况下内存已经跑满了、对于想用服务器搭建联机的小伙伴建议根据开区数量以及玩家人数去选择配置、当然也可以直接找我阿杰购买、我可以提供技术搭建服务。注:如果用的是本地电脑局域网搭建直接输入127.0.0.1:8211就行 如果用的是服务器搭建输入自己服务器IP+端口或解析的域名+端口进入游戏。

用最简单的方式说最重要的事!服务器、存储、云计 算、A智能的大数据产品、游戏开发技术。致力于广 大开发者、政企用户、各项机构等,构建云上世界提供全方位云计算解决方案。旨在打造差异化的开放式闭环生态系统帮助用户快速构建稳定、安全的云计算环境。 2235

ssm整合开发 动力节点王鹤版本

动力节点 王鹤版本 视频地址https://www.bilibili.com/video/BV1sk4y167pD 1. pom.xml 1 2. web.xml 2 3. 新建包、目录、文件 新建4个包 分别是controller,dao,domain,service 新建resources/config目录 以及该目录下的applicationContext.xml、dispatcherServlet.xml、jdbc.properties文件 4.disp...

hello world 3881

FGC_grasp复现

FGC_GraspNet复现

qq_39568387的博客 385

GPU 运维实战:H100/H800/B300 换卡与压测

(烧多久、看什么、什么算合格)。文末还给了一个能直接跑的验收判定脚本,三个真实场景的裁决输出都在。

老韩的Linux云计算架构师进阶之路 271

『硬核』Spring完整版学习笔记,动力节点王鹤

Spring学习笔记(来自王鹤老师讲的最新版Spring) spring笔记官方下载地址 动力节点springboot资料 视频观看地址 https://www.bilibili.com/video/BV1nz4y1d7uy 第一章 Spring 概述 1.1. 什么是spring spring就是一个java框架,使用java语言开发的, 轻量级的, 开源的框架。 可以在j2se、j2ee项目中都可以使用。 spring核心技术: ioc, aop spring又叫做:容器, spring作为容器

Java_Coding1的博客 439

RK3588 hdmiout调试(一)

RK3588 hdmiout调试(一)

目前从事linux驱动开发,多交流多学习吧 5170

【Spring】(1)Spring概述:什么是Spring框架?为什么要用Spring框架?

两个月前跟着b站动力节点王鹤老师的Spring框架教程视频学习完了Spring框架,在学习过程中我将视频中涉及的代码都一行一行手敲了一遍,并且把Spring入门相关的资料整理了一下,在这里记录一下我在Spring框架学习过程中的笔记和一些心得,希望能帮助到想要通过文字教程入门Spring这一框架的小伙伴哦! 视频地址:2020最新Spring框架教程【IDEA版】-Spring框架从入门到精通 文章目录第一部分 Spring概述1. 什么是 Spring 框架2. Spring 的优点1)轻量2)面向接.

aaa_hao的博客 6252

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

动力节点王鹤MyBatis框架『第一章』框架的概述

MyBatis 框架 第一章 框架的概述 1.三层架构 mvc:web开发中,使用mvc架构模式。 m:数据, v:视图, c:控制器。 c控制器: 接收请求,调用service对象,显示请求的处理结果。 当前使用servlet作为控制器 v视图: 现在使用jsp,html,css,js。 显示请求的处理结果,把m中数据显示出来。 m数据: 来自数据库mysql, 来自文件,来自网络 mvc作用: ​ 1)实现解耦合。 ​ 2)让mvc 各负其职。 ​ 3)使的系统扩展更好。更

A_coding的博客 1394

ssm框架搭建

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

动力节点王鹤Spring Boot笔记

多年来,随着新功能的增加,spring变得越来越复杂。只需访问https://spring.io/projects页面,我们就会看到可以在我们的应用程序中使用的所有Spring项目的不同功能。 如果必须启动一个新的Spring项目,我们必须添加构建路径或添加Maven依赖关系,配置应用程序服务器,添加spring配置。 因此,开始一个新的spring项目需要很多努力,因为我们现在必须从头开始做所有事情。 Spring Boot是解决这个问题的方法。Spring Boot已经建立在现有spring框架之

DDDYSz的博客 335

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Spring Boot框架快速入门教程-动力节点王鹤

Spring Boot 框架快速入门教程以大量示例讲解了 Spring Boot 在各类情境中的应用,让大家可以跟着老师的思维和代码快速理解并掌握。适用于 Java 开发人员,尤其是初学 Spring Boot 的人员和需要从传统 Spring 转向 Spring Boot 开发的技术人员。 下边是动力节点的SpringBoot教程非常适合初学入门,讲的非常详细,而且全程无废话! 视频链接: https://www.bilibili.com/video/BV1XQ4y1m7ex 1. Spring.

Java___interview的博客 315

Spring Boot框架讲解-动力节点王鹤

Spring Boot 框架快速入门教程以大量示例讲解了 Spring Boot 在各类情境中的应用,让大家可以跟着老师的思维和代码快速理解并掌握。适用于 Java 开发人员,尤其是初学 Spring Boot 的人员和需要从传统 Spring 转向 Spring Boot 开发的技术人员。 下边是动力节点的SpringBoot教程非常适合初学入门,讲的非常详细,而且全程无废话! 视频链接: https://www.bilibili.com/video/BV1XQ4y1m7ex 1. Spring.

A_coding的博客 373

[Java]SpringMVC 学习笔记(动力节点王鹤王妈妈2020)

SpringMVC 学习笔记SpringMVC 概述 SpringMVC 处理用户请求的过程 第一个 SpringMVC 程序 创建项目 引入依赖 注册 DispatherServlet 对象 创建发起请求的页面 index.jsp 创建控制器类 创建显示结果的页面 创建 springmvc 的配置文件 请求处理过程分析 DispatcherServlet 源码分析 init() doDispath() 配置视图解析器 类上的 RequestMapping 注解 设置方法处理请求的类型 处理器方法形参 Ht

emmmm..... 701
上一篇: 动力节点Spring框架学习笔记-王鹤(四)Spring 事务
下一篇: 动力节点『lol版』Java学习路线图(一)准备工作
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值