使用Spring框架进行Web项目开发(初级)

news2025/1/13 9:36:54

目录

前言

1. 为什么常规的Spring框架不适合Web项目呢?

2. 如何在Spring框架中创建容器?

3. Spring框架开发Web项目的步骤

3.1 创建maven项目

3.2 添加相应的依赖

3.3 在webapp目录下的web.xml中注册监听器

3.4 在webapp文件夹下的web.xml中配置Servlet控制器

3.5 自定义控制器

 总结


前言

我们在初步学习了Spring框架之后,上来大家拿来练手的小demo都是基于最基础的javaSE,可是在将来的学习工作之后,会发现大多的项目都是Spring框架结合Web的,那么Spring框架在与Web结合之后,开发流程是否跟跟仅仅使用Spring框架的流程是一样呢?答案是否定的,因为Web项目有自身的特点,我们需要适当的对Spring框架的开发流程进行些许的改动,那到底是改动了哪里?以及为什么要改动,就仔细的看下面的介绍吧!

1. 为什么常规的Spring框架不适合Web项目呢?

答:在常规Spring框架的开发的时候,我们都是在Main方法中,创建一个容器;可是在Web应用中,每当我们发起一次地址的访问,就会执行一次Main方法,这样就会创建很多个容器,而这些创建出来的容器是不一样的,且每当容器被创建的时候,容器里面的对象也已经被创建好了,这样就会导致,创建多个容器的时候,占用太多的内存,这个时候若是出现容器的回收速度小于容器的创建速度,那么就会出现内存不足的情况。

因此我们需要寻找一种合适的方式去创建容器,让我们只用创建一次容器,就能一直使用。Spring框架中有没有机制能实现这个方案呢?答案是有!!。他就是监听器,因为Web项目将来在Tomcat服务器上只用发布一次,就会一直运行,而监听器就是在项目发布的时候被创建的,所以我们利用监听器的这个特殊的时间点来创建容器,并将创建的容器放在全局作用域中,这样,只要项目一直在运行,那么我们就能一直使用容器,而且容器只被创建了一次,正好满足了我们的需求,简直是两全其美。

2. 如何在Spring框架中创建容器?

答:功能强大的Spring框架已经实现了在创建监听器的时候,帮我们创建容器的功能,因此我们要做的只是,将监听器添加到我们Web项目即可

3. Spring框架开发Web项目的步骤

  • 创建一个maven项目
  • 添加相应的依赖
  • 注册监听器
  • 配置Servlet控制器
  • 自定义控制器

3.1 创建maven项目

创建maven项目就不介绍了,是个很简单步骤。

3.2 添加相应的依赖

3.3 在webapp目录下的web.xml中注册监听器

3.4 在webapp文件夹下的web.xml中配置Servlet控制器

 3.5 自定义控制器

 总结

上面的介绍就是Spring框架开发web项目的具体步骤,虽然实现了开发web项目的目的,但是仍有不完美的地方,也没体现出来Spring框架在Web开发时候的强大功能,在之后的学习中,我们就会明白今天介绍的Spring框架结合Web页面,其实就是SpringMVC框架的雏形。我们将在后来的学习SpringMVC的时候会对web项目的开发进行升级简化,那个时候我们也将再一次感受到Spring框架的强大之处。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【信息科学技术与创新】自然语言处理 NLP 计算机与智能 课程总结思考

深入了解 NLP 及课程总结反思 摘要 自然语言处理的历史发展自然语言处理的方法与相关应用关于数据智能科学技术导论这门课程的总结反思 Navigator深入了解 NLP 及课程总结反思一、自然语言处理的历史发展二、自然语言处理的方法与相关应用三、关于数据智能科学技术导论这门课…

【C++初阶】日期类实现、const成员函数、取地址及const取地址操作符重载

🌟hello,各位读者大大们你们好呀🌟 🍭🍭系列专栏:【C学习与应用】 ✒️✒️本篇内容:日期类的代码实现、const成员函数的概念和作用、取地址及const取地址操作符重载 🚢&#x1f6a2…

去水印小程序

真正的大师,永远都怀着一颗学徒的心! 一、项目简介 项目UI确实有点朴实无华,但并不影响她美丽的内在。这和人也一样,属于心灵美。 虽然,这个社会上的大多数人喜欢从一件事物的外表,去评判事物的好坏,即好…

vue支付项目-APP支付宝支付功能

⭐️⭐️⭐️ 作者:船长在船上 🚩🚩🚩 主页:来访地址船长在船上的博客 🔨🔨🔨 简介:CSDN前端领域优质创作者,资深前端开发工程师,专注前端开发…

FreeRTOS 软件定时器的使用

FreeRTOS中加入了软件定时器这个功能组件,是一个可选的、不属于freeRTOS内核的功能,由定时器服务任务(其实就是一个定时器任务)来提供。 软件定时器是当设定一个定时时间,当达到设定的时间之后就会执行指定的功能函数&…

【趣学算法】Day2 贪心算法——最优装载问题

14天阅读挑战赛努力是为了不平庸~ 算法学习有些时候是枯燥的,这一次,让我们先人一步,趣学算法! ❤️一名热爱Java的大一学生,希望与各位大佬共同学习进步❤️ 🧑个人主页:周小末天天开心 各位大…

ESP8266/esp32接入阿里云物联网平台点灯控制类案例

ESP8266/esp32接入阿里云物联网平台点灯控制类案例📌阿里云物联网云平台介绍:https://help.aliyun.com/product/30520.html 🎋需要自己在阿里云物联网云平台注册自己的账户,这里不做介绍了。 🌻阿里云物联网云平台创建…

Python基础入门(持续更新中)

一、发展历程 Python的创始人为荷兰人吉多范罗苏姆(Guido van Rossum)。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中单词P…

CANoe-以太网软硬件网络自动映射的问题

以太网软硬件网络自动映射的问题 当我们设置CANoe以太网模式为Network-based access模式时 我们需要在CANoe硬件里配置segment,具体内容请参考文章《如何配置CANoe Network-based access模式的以太网网络拓扑》 有时我们图省事,配置的segment默认名称是什么,我们也不管,也…

UVM如何处理out-of-order乱序传输

文章目录前言1、基本思路2、支持乱序传输的sequence3、支持乱序传输的Driver总结前言 乱序传输(out-of-order)是指在协议中,后发出去的req,支持先回resp,通常通过ID来保证req和resp之间的关系。很多协议支持乱序传输,例如AXI4。本…

我们简单的new了一个对象,JVM都做了哪些贡献?

前言:大家好,我是小威,24届毕业生,在一家满意的公司实习。本篇文章是关于CAS的介绍以及在我们new对象时,Java虚拟机会为我们做些什么贡献。 本篇文章记录的基础知识,适合在学Java的小白,也适合复…

【C++笔试强训】第九天

🎇C笔试强训 博客主页:一起去看日落吗分享博主的C刷题日常,大家一起学习博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话:夜色难免微凉,前方必有曙光 🌞。 💦 &…

基于骨骼的动作识别:PoseConv3D

Revisiting Skeleton-based Action Recognition解读摘要1. 简介2. Related Work2.1 基于3D-CNN的rgb视频动作识别2.2 基于GCN的骨骼动作识别2.3 基于CNN的骨骼动作识别3. Framework3.1 Pose Extraction3.2 From 2D Poses to 3D Heatmap Volumes3.3 基于骨骼的动作识别3D-CNN3.3…

智能的逻辑与理性的逻辑是不同的逻辑

1.世界是由事实和价值共同组成的1.1 事实由对象、事态及其联系(如语言)构成1.2 价值是事实在实践中的作用和效果构成1.3 事实中存在着决定论,价值里包含有自由意志1.3.1 事实反映有无,价值反映好坏1.4 每一个事实都具有变价值&…

8.2 从堆中绕过SafeS.E.H

一、实验环境 操作系统&#xff1a;windows XP SP2&#xff08;关闭DEP&#xff09; 软件版本&#xff1a;VS2008&#xff08;release&#xff09;、原版OD&#xff08;实时调试&#xff09; 二、实验代码 #include <stdafx.h> #include <stdlib.h> #include <…

计算机操作系统引论(操作系统)

目录 一、操作系统的目标 二、操作系统的作用 三、操作系统的基本特性 四、操作系统的主要功能 五、操作系统的结构设计 一、操作系统的目标 操作系统&#xff08;Operating System&#xff0c;OS&#xff09;是计算机硬件的第一层软件&#xff0c;是计算机必备配置的最基…

接口自动化测试(二)—— Postman实现接口测试

其他 接口自动化测试 知识参考&#xff1a;接口自动化测试 目录 一、Postman介绍和安装 1、简介 2、安装 3、安装Postman插件newman 二、Postman基本用法 1、案例一 2、案例二 三、Postman高级用法 1、管理测试用例Collections 1.1、创建 collections 1.2、创建 用…

libusb系列-002-Windows下libusb源码编译

libusb系列-002-Windows下libusb源码编译 文章目录libusb系列-002-Windows下libusb源码编译摘要Windows下编译libusb库下载源码进入msvc目录选择对应的项目工程编译查看编译好的库文件关键字&#xff1a; vs、 编译、 Qt、 libusb、 windows内容背景&#xff1a; 最近项目终于切…

从 0 到 1 落地前端工程化

你将获得 初识&#xff1a;总结前端工程化技能图谱 了解&#xff1a;梳理前端工程化落地流程 掌握&#xff1a;搭建前端工程化基建项目 提高&#xff1a;实战前端工程化解决方案 作者介绍 JowayYoung&#xff0c;资深前端工程师&#xff0c;目前就职于网易互动娱乐事业群&…

建立私人知识网站 cpolar轻松做到1 (部署DokuWiki)

维基百科&#xff08;wiki&#xff09;相信大家都有所耳闻&#xff0c;作为全球最有名的百科知识搜索网站&#xff0c;很多不常见的知识点都能在这上面搜索到&#xff0c;而维基百科能够成功的原因&#xff0c;就是可以编辑的和修订的功能&#xff0c;让维基百科能够收到各领域…