【Servlet】Smart Tomcat插件简化Servlet开发流程及解决常见问题
个人主页:兜里有颗棉花糖
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创
收录于专栏【Servlet】
本专栏旨在分享学习Servlet的一点学习心得,欢迎大家在评论区交流讨论💌
目录
- 一、Smart Tomcat插件
- 二、下载安装过程
- 三、如何使用Smart Tomcat
- 四、运行程序
- 五、常见报错
- 404
- 405
- 500
- 空白页面
- 无法访问此网站
一、Smart Tomcat插件
如果我们需要Servlet程序进行修改的话,我们需要重新打包并部署到Servlet容器中(比如Tomcat)。
现在我们可以简化上述重新打包并部署的过程:将IDEA和Tomcat集成起来,使用IDEA图形化界面将代码部署到Tomcat上。这样,我们就可以更加专注于编写和修改代码,而不必担心手动处理部署细节。
首先我们需要在IDEA上安装Smart Tomcat插件,使得IDEA把Tomcat集成进来。注意,如果是社区版的IDEA的话,我们只能使用安装Smart Tomcat插件的方式来集成Tomcat。
但是如果IDEA是专业版或者教育版的话,我们就可以使用TomcatServer(是IDEA专业版/教育版内置的功能,无需下载)而无需安装Smart Tomcat插件,这算是VIP的专属待遇吧。
二、下载安装过程
加下来我们以社区版IDEA为例来对
Smart Tomcat插件进行下载安装:
File->Settings->Plugins
搜索Smart Tomcat然后下载安装即可:
这里还有另外一种手动下载安装Smart Tomcat插件的方式。
直接去IDEA官网下载即可:传送门
下载之后我们会得到一个jar包,直接将这个jar包拖到IDEA就可以了。
三、如何使用Smart Tomcat
如果一个项目中是第一次使用Smart Tomcat的话我们就需要先简单配置一次,配置之后后续就不再需要配置了。
选择Smart Tomcat:
接下来需要配置几个地方:
上图中如果是项目首次使用Smart Tomcat的话只需要修改Tomcat Servlet和Context path即可。
下图是我修改后的设置,请看:
设置完成之后后续就不再需要修改配置了。
补充一点:上图设置的端口号不需要和Tomcat中conf文件中的端口号保持一致。我们只需要保证后续浏览器发的http请求的端口和上图中设置的一样即可。
四、运行程序
确认完成之后点击OK,然后就会出现如下图的标记:
然后点击绿色三角形就可以运行了(运行之前要保证Tomcat是关闭状态)。
如果Tomcat是处于运行状态的话->Tomcat的8080默认已经被占用,而一个端口号只能被一个进程调用,所以程序运行之后就会报红。
下面是程序正确的运行结果:
出现上图就说明Tomcat启动成功了,发现控制台打印出来的日志并没有出现乱码的问题(这是因为IDEA中的终端——控制台使用的是utf-8进行编码)。
此时我们在地址栏中输入路径:http://127.0.0.1:8080/java_servlet/hello。结果如下:

后续如果我们修改代码的话,只需要重新启动一下程序即可。
五、常见报错
404
404的意思就是要访问的资源不存在。
一般有两种情况会导致404报错。
- 第一种:浏览器请求路径和服务器配置路径不同。

- 第二种:确认webapp是否被正确加载。我们编写的Servlet程序并将其部署到Tomcat中时,Tomcat将会加载这个Web应用程序(也称为webapp),并在接收到浏览器请求时提供相应的服务。
加载失败的原因如下:web.xml文件不存在、目录错了、web.xml中内容出错等原因都可能会导致webapp加载失败。
405
405错误通常是由于请求方法不被支持或被禁止所导致的。出现405报错一般有两种情况:
- 第一种情况:Servlet程序中写的
doXX方法和请求发起的方法不匹配。比如说浏览器发起的是Get请求,而服务器代码写的是doPost方法。 - 第二种情况:浏览器发起的是Get请求,服务器写的代码是
doGet方法。但是doGet方法中并没有把super.doGet删除。
500
500表示服务器内部错误,代码错误比如代码中抛出异常。
空白页面
没有在Servlet的doGet()或doPost()方法中设置响应的输出内容(具体点就是没有getWriter.write方法),那么服务器将会返回一个空白页面给客户端浏览器。
比如下图:

无法访问此网站
出现此情况要么是Tomcat服务器没有正确运行;要么就是ip或者端口写错了:

好了,以上就是本文的全部内容了。希望各位友友可以一键三连哈!!!

相关文章:
【Servlet】Smart Tomcat插件简化Servlet开发流程及解决常见问题
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【Servlet】 本专栏旨在分享学习Servlet的一点学习心得,欢迎大家在评论区交流讨论💌 目录 一、Smart Tomcat插件二…...
解决Qt连接不上mysql数据库
问题: QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7 下载网盘中的三个文件(网盘链接在文章结尾):qsqlmysql.dll、qsqlmysqld.qll、libmysql.dll找到你安装Qt的目录ÿ…...
kubernetes-快速部署一套k8s集群
1、前置知识点 1.1 生产环境可部署Kubernetes集群的两种方式 目前生产部署Kubernetes集群主要有两种方式: kubeadm Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。 二进制包 从github下载发行…...
Windows Server 安装 Docker
一、简介 Docker 不是一个通用容器工具,它依赖运行的 Linux 内核环境。Docker 实质上是在运行的 Linux 服务器上制造了一个隔离的文件环境,所以它执行的效率几乎等同于所部署的 Linux 主机服务器性能。因此,Docker 必须部署在 Linux 内核系统…...
智能分析网关V4智慧机房:视频AI智能安全监管方案
一、背景分析 随着互联网的迅猛发展,机房及其配套设施的数量持续攀升,它们的运行状况对于企业运营效率和服务质量的影响日益显著。作为企业信息化的基石,机房的安全监测与管理的重要性不容忽视。它不仅关乎企业的稳定运营,同时也直…...
一些反序列化总结
1 反序列化漏洞原理 如果反序列化的内容就是那串字符串,是用户可以控制的(即变量的值),且后台不正当的使用了PHP中的魔法函数,就会导致反序列化漏洞,可以执行任意命令。Java 序列化指 Java 对象转换为字节序…...
分披萨(100%用例)C卷(JavaPythonC++Node.jsC语言)
“吃货”和“馋嘴”两人到披萨店点了一份铁盘(圆形)披萨,并咐店员将披萨按放射状切成大小相同的偶数扇形小块。但是粗心服务员将披萨切成了每块大小都完全不同奇数块,且肉眼能分辨出大小。 由于两人都想吃到最多的披萨,他们商量了一个他们认为公平的分法:从“吃货开始,轮流…...
SQL字符串截取函数【简笔记】
MySQL提供了多种字符串函数来处理和截取字符串。下面是一些常用的字符串截取函数及其使用示范: SUBSTRING(str, pos, len) str 是要截取的字符串。pos 是开始截取的位置。len 是截取的长度。 示例: SELECT SUBSTRING(Hello, World!, 8, 5); -- 结果: "World…...
会话技术复习笔记
一.登录校验的需求 什么是登录校验? 所谓登录校验,指的是我们在服务器端接收到浏览器发送过来的请求之后,首先我们要对请求进行校验。先要校验一下用户登录了没有,如果用户已经登录了,就直接执行对应的业务操作就可以…...
我用Rust开发Rocketmq name server
我是蚂蚁背大象(Apache EventMesh PMC&Committer),文章对你有帮助给Rocketmq-rust star,关注我GitHub:mxsm,文章有不正确的地方请您斧正,创建ISSUE提交PR~谢谢! Emal:mxsmapache.com 1. Rocketmq-rust namesrv概述 经过一个多月的开发,终…...
【Deep Dive: Al Webinar】开源人工智能中赋能、透明性和可重复性三者之间的关系...
【深入探讨人工智能】网络研讨系列总共有 17 个视频。我们按照视频内容,大致上分成了 3 个大类: 1. 人工智能的开放、风险与挑战(4 篇) 2. 人工智能的治理(总共 12 篇),其中分成了几个子类&…...
将Html页面转换为Wordpress页面
问题:我们经常会从html源码下载网站上获得我们想要的网站内容框架,以及部分诸如联系我们,About 等内页,但是在文章的发布上,则远不如Wordpress简便。而Wordpress尽管有各种模板,但修改又比较麻烦。解决方法…...
Next.js 学习笔记(七)——样式
样式 Next.js 支持不同的应用程序样式设计方法,包括: 全局 CSS:对于有传统 CSS 使用经验的人来说,使用简单且熟悉,但随着应用程序的增长,可能会导致 CSS 包过大,难以管理样式。CSS 模块&#…...
金线检测步骤
半导体行业,金线检测是必不可以少的一个检测项,除了焊点,die面,手指以外的必检项目. 重难点在于金线的提取,算法多种多样,找到适合才是关键,涉及到打光,图像处理,这里不做深入分析,软件和硬件配合好才能做的最好. 经典算法Block分析,结合图像检测. 高斯算法提取 边缘检测算法提…...
电池-电量监测基础知识
一、为何要进行电池电量监测 不知各位有没有想过为何现在手机电池和笔记本电脑电池不容易鼓包了?十年前还经常出现的电池鼓包最近像是消失了一样,其实是因为随着电量监测技术的发展,哪怕是最基本的电子设备也有电池侧和产品侧至少两级电量监测…...
西瓜书学习笔记——层次聚类(公式推导+举例应用)
文章目录 算法介绍实验分析 算法介绍 层次聚类是一种将数据集划分为层次结构的聚类方法。它主要有两种策略:自底向上和自顶向下。 其中AGNES算法是一种自底向上聚类算法,用于将数据集划分为层次结构的聚类。算法的基本思想是从每个数据点开始࿰…...
深度视觉目标跟踪进展综述-论文笔记
中科大学报上的一篇综述,总结得很详细,整理了相关笔记。 1 引言 目标跟踪旨在基于初始帧中指定的感兴趣目标( 一般用矩形框表示) ,在后续帧中对该目标进行持续的定位。 基于深度学习的跟踪算法,采用的框架包括相关滤波器、分类…...
【数据结构:顺序表】
文章目录 线性表顺序表1.1 顺序表结构的定义1.2 初始化顺序表1.3 检查顺序表空间1.4 打印1.5 尾插1.6 头插1.7 尾删1.8 头删1.9 查找1.10 指定位置插入1.11 删除指定位置数据1.12 销毁顺序表 数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一…...
android tts播报破音解决方案汇总
导航app引导中经常遇到破音,这里也将之前经历过的方案收集以下,方便以后选择: 1 对于开始和结尾破音: 可以用升降音来处理 两种方式 一种是 直接对开始和结束的时间段进行音量直接渐进改变。这里配的是200ms的渐变。 VolumeSha…...
2024年新提出的算法:一种新的基于数学的优化算法——牛顿-拉夫森优化算法|Newton-Raphson-based optimizer,NRBO
1、简介 开发了一种新的元启发式算法——Newton-Raphson-Based优化器(NRBO)。NRBO受到Newton-Raphson方法的启发,它使用两个规则:Newton-Raphson搜索规则(NRSR)和Trap Avoidance算子(TAO&#…...
【DeepSeek漏洞扫描辅助实战指南】:20年安全专家亲授3大避坑法则与5步提效流程
更多请点击: https://intelliparadigm.com 第一章:DeepSeek漏洞扫描辅助的核心价值与适用边界 DeepSeek漏洞扫描辅助并非通用型渗透测试引擎,而是一个聚焦于大语言模型(LLM)应用层安全的轻量级分析工具。其核心价值在…...
手机也能玩转无人机仿真:用安卓QGC App连接同一WiFi下的PX4 JMAVSim模拟器
手机也能玩转无人机仿真:用安卓QGC App连接同一WiFi下的PX4 JMAVSim模拟器 无人机开发者和爱好者们,是否曾想过用手机就能完成整个无人机仿真测试流程?告别笨重的电脑束缚,只需一部安卓设备,就能在沙发上调试飞控算法。…...
Actor Framework里的“多米诺骨牌”:一个错误如何让整个嵌套操作者链崩溃?
Actor Framework中的“多米诺效应”:如何避免嵌套操作者链的崩溃 在分布式系统设计中,Actor模型因其天然的并发处理能力而备受青睐。LabVIEW的Actor Framework(AF)通过操作者(actor)的嵌套结构,为复杂系统提供了模块化解决方案。然而&#x…...
Python之encode-cli包语法、参数和实际应用案例
Python encode-cli包完整使用指南 encode-cli 是Python生态中轻量、高效的命令行编码/解码工具包,专注于提供主流编码格式的快速转换,支持命令行直接调用,无需编写复杂Python代码,适用于数据加密、文本转码、URL处理、Base64转换等…...
SafeExamBrowser虚拟机检测绕过实战:双路径技术决策与深度破解
SafeExamBrowser虚拟机检测绕过实战:双路径技术决策与深度破解 【免费下载链接】safe-exam-browser-bypass A VM and display detection bypass for SEB. 项目地址: https://gitcode.com/gh_mirrors/sa/safe-exam-browser-bypass SafeExamBrowser(…...
拒绝繁琐 PS:美图秀秀 电脑版在技术博客配图、无畸变裁剪与尺寸标准化中的应用
在日常开发、技术写作或维护 GitHub 开源项目时,技术配图和录屏展示是不可或缺的组成部分。 然而,对于大多数程序员和前端开发者来说,仅仅为了裁剪一个 App Icon 尺寸、给一系列产品图加防伪水印、对系统敏感配置截图进行脱敏打码࿰…...
终极指南:5步精通开源网页版三国杀无名杀
终极指南:5步精通开源网页版三国杀无名杀 【免费下载链接】noname 项目地址: https://gitcode.com/GitHub_Trending/no/noname 想要随时随地畅玩经典的三国杀卡牌游戏吗?无名杀作为当前最受欢迎的开源网页版三国杀,让你无需下载客户端…...
终极指南:如何用猫抓浏览器扩展构建高效的流媒体资源嗅探工作流
终极指南:如何用猫抓浏览器扩展构建高效的流媒体资源嗅探工作流 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓(cat-c…...
Python日志框架设计:从基础到高级配置
引言 日志是任何生产级应用不可或缺的组成部分。作为从Python转向Rust的开发者,我深刻理解良好的日志系统对于应用可观测性的重要性。本文将深入探讨Python日志框架的设计原理和最佳实践,帮助你构建高效、可扩展的日志系统。 一、logging模块基础 1.1…...
科学机器学习工作流:融合物理与数据驱动的气候建模新范式
1. 项目概述:当气候科学遇见机器学习工作流 如果你和我一样,在气候科学或者更广泛的科学计算领域摸爬滚打多年,一定经历过这样的时刻:面对一个物理过程复杂、计算成本高昂的模型,既想引入数据驱动的新方法提升效率&…...











