框架的优点(SpringBoot VS Servlet)

news2024/11/24 20:12:34

 

创建项目比较:

创建Servlet项目:流程复杂,容易出错,这里可以参考之前写的一篇博客:

如何创建一个Servlet项目(Maven)?_crazy_xieyi的博客-CSDN博客_maven创建servlet

1.创建maven项目

2.引入依赖(而且还要注意版本号是否对应,比如Tomcat8只能引入Servlet3.1)

3.创建目录

而创建Spring Boot项目很简单,直接创建Spring Boot项目并勾选添加项目依赖即可。

编写代码比较以添加用户和删除用户为例

对于Servlet而言,

1.创建两个类,一个类对应一个url,一个添加用户的url,一个删除用户的url,然后再继承自HttpServlet并重写doGet/doPost方法

2.使用request来获取前端参数

3.编写业务逻辑

4.设置返回类型,设置编码格式,使用resp来返回响应

对Spring Boot而言则就简单很多很多了。

 运行项目比较:

对于Servlet而言:

1.社区版idea安装插件smartomcat

2.下载并解压一个tomcat

3.配置tomcat

4.运行项目

而对于Spring Boot而言,直接运行main方法即可。

发布项目比较:

对于Servlet而言:

1.maven打包,将打包好的war/jar上传到服务器

2.在服务器上安装tomcat

3.将war包放到webapps目录下

4.启动tomcat,运行项目

对Spring Boot而言,.maven打包,将打包好的war/jar上传到服务器这一步是相同的,但是可以直接使用java -jar xxx.jar 直接就可以运行项目了。

Servlet的缺点:

1. 添加外部 jar 不⽅便,容易出错,⽐如添加了⼀个不匹配的外部 jar 版本;

2. 运⾏和调试的时候需要配置 tomcat 不⽅便;

3. 发布不⽅便,servlet 项⽬必须依靠外置的 tomcat(外置的 web 容器)运⾏。

4. 路由配置不⽅便,⼀个访问地址对应⼀个 Servlet 类。

5..........

使⽤ Spring Boot 项⽬框架相⽐于 Servlet 所具备的以下优点:

1. ⽆需配置 Tomcat,点击“运⾏”按钮就可以运⾏项⽬,Spring Boot 内置了 Web 容器(可直接运

⾏)。  

2. 对象⾃动装配

3. 添加外部 jar 更容易,不易出错(版本问题⽆需关注);

4. 调试项⽬更加⽅便,⽆需配置 Tomcat;

5. 发布项⽬更加⽅便,⽆需配置 Tomcat;

6. 添加路由更加⽅便,⽆需每个访问地址都添加⼀个类。

7. ...

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

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

相关文章

【JavaSE】HashMap底层原理、面试题详解

【JavaSE】HashMap底层原理、面试题详解 文章目录【JavaSE】HashMap底层原理、面试题详解一:HashMap的数据结构1:JDK1.72:JDK1.8二:hash 方法的原理三:HashMap的put流程四:HashMap的get流程五:H…

ARM基础(2):模式和特权等级(User/Thread mode和Privileged level)

Cortex-M3处理器支持两种模式和两种特权级别。 如下图所示,当处理器运行于Thread mode时,它可以处于Privileged或User级别;而Handler mode下,只能处于Privileged级别。当处理器复位完毕后,处于Thread mode。 在User级…

SSM(spring+springmvc+mybatis)完全注解开发整合

SSM(springspringmvcmybatis)完全注解开发整合 目录结构如图: 创建数据库 create database mydb; use mydb; create table tbl_users(id int primary key auto_increment,username varchar(20),password varchar(20),age int,birthday date );insert tbl_users(…

[Cortex-M3]-4-如何在内嵌RAM中运行程序

[Cortex-M3]-1-启动流程-启动文件[Cortex-M3]-2-map文件解析[Cortex-M3]-3-分散加载文件解析(.sct)[Cortex-M3]-4-如何在内嵌RAM中运行程序 1 定义items 在进行项目开发时,可以在project items中创建debug和release,并确定。 平时调试下拉选…

web结课作业的源码——HTML+CSS+JavaScript仿oppo官网手机商城(1页)

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…

15、简单了解Vue

1、vue概述 Vue是一套前端框架,可以免除原生JavaScript中的DOM操作,简化书写。 基于MVVM(Model-View-View Model)思想,实现数据的双向绑定,将编程的关注点放在数据上 vue的官网:https://cn.v…

电脑数据转移到新电脑?换新电脑如何转移软件

电脑数据转移到新电脑?许多用户在下载游戏的时候,没有更改默认安装位置,直接把游戏安装到了C盘里,结果导致C盘空间不足,于是希望将游戏移动到其他驱动器以释放空间。也有的用户是更换了电脑,不想重新安装游…

常用数据库之sqlite的使用

2.1 介绍 sqlite为关系型数据库,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌…

反序列化__wakeup

简介 __wakeup()&#xff0c;执行unserialize()时&#xff0c;先会调用这个函数。 <?php class c1 {private $argv;private $method;function __construct($argv,$method){$this->argv$argv;$this->method$method;}public function f1(){ech…

BUG系列路径规划算法原理介绍(六)——BugFlood算法

本系列文章主要对Bug类路径规划算法的原理进行介绍&#xff0c;在本系列的第一篇文章中按照时间顺序梳理了自1986年至2018年Bug类路径规划算法的发展&#xff0c;整理了13种BUG系列中的典型算法&#xff0c;从本系列的第二篇文章开始依次详细介绍了其中具有代表性的BUG1、BUG2、…

KubeSphere开启DevOps 功能教程

基于 Jenkins 的 KubeSphere DevOps 系统是专为 Kubernetes 中的 CI/CD 工作流设计的&#xff0c;它提供了一站式的解决方案&#xff0c;帮助开发和运维团队用非常简单的方式构建、测试和发布应用到 Kubernetes。它还具有插件管理、Binary-to-Image (B2I)、Source-to-Image (S2…

MySQL遵循最左前缀匹配原则!面试官:回去等通知吧

我们都知道&#xff0c;MySQL的Innodb引擎中&#xff0c;索引是通过B树来实现的。不管是普通索引还是联合索引&#xff0c;都需要构造一个B树的索引结构。 那么&#xff0c;我们都知道普通索引的存储结构中在B树的每个非节点上记录的索引的值&#xff0c;而这棵B树的叶子节点上…

Markdown官方教程(六)

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

Spring Boot 创建项目 / 目录介绍 / 配置文件

目录 Spring Boot项目创建 一、通过IDEA来创建Spring Boot项目 二、通过网页版创建Spring Boot项目 Spring Boot项目目录介绍 Spring Boot项目创建 一、通过IDEA来创建Spring Boot项目 社区版IDEA需要先安装 Spring Assistant 插件。 1. 创建新项目&#xff0c;选择Sprin…

2022最后一个月,我们该如何学Java​?

2022最后一个月&#xff0c;我们该如何学Java&#xff1f; 互联网的快速发展和激烈竞争&#xff0c;在世界编程语言排行榜中&#xff0c;Java位列前三&#xff0c;占全球编程市场份额的12%左右,各大公司对Java工程师的需求量都很大&#xff0c;要求也越来越高&#xff0c;优秀…

Gradle学习第一篇——自定义Gradle插件

纸上得来终觉浅&#xff0c;绝知此事要躬行。 自定义Gradle插件有三种方法&#xff0c;各有优劣处&#xff0c;同类博客文章很多但是有的语法已经过时了&#xff0c;笔者运行环境 Android Studio Dolphin && gradle-7.4-bin 文章目录第一种 build script (单文件生效)第…

Linux目录操作

一、常用权限操作 权限操作实战 1、创建文件&#xff0c;设置其用户组 root用户创建新文件love.txt 命令&#xff1a;echo I Love you > love.txt 查看文件love.txt的用户及用户组 将其用户组改为lzy用户组 命令&#xff1a;chgrp lzy love.txt 查看文件love.txt的用…

System Verilog断言

简介 断言通常被称为序列监视器或者序列检验器&#xff0c;是对设计应当如何执行特定行为的描述&#xff0c;是一种嵌入设计检查。如果检查的属性&#xff08;property&#xff09;不是我们期望的表现&#xff0c;那么在我们期望事件序列的故障上会产生警告或者错误提示。 断言…

SpringMVC:整合SSM框架

一、大致框架 1.建立数据库&#xff0c;并导入数据 create database cjgl; create table books( bookID int(10) not null auto_increment comment 书id, bookName varchar(100) not null comment 书名, bookCounts int(11) not null comment 数量, detail varchar(200) no…

C. Planar Reflections

题目如下&#xff1a; 思路 or 题解 我们可以通过图解发现&#xff1a;可以递推找到答案了 我们约定&#xff1a;dp[i][j]dp[i][j]dp[i][j] 第 iii 个板, 衰变年龄为jjj 的答案是 dp[i][j]dp[i][j]dp[i][j] 我们通过图解找到转移方程&#xff1a; dp[i][j]dp[i−1][j]dp[n−i]…