【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 ServletContext 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或者端口写错了:
在这里插入图片描述

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

在这里插入图片描述

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

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

相关文章

Day32贪心_买卖股票的最佳时机_跳跃游戏Ⅰ、Ⅱ

文章目录 [122 买卖股票的最佳时机](https://programmercarl.com/0122.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C%BAII.html)[55 跳跃游戏](https://programmercarl.com/0055.%E8%B7%B3%E8%B7%83%E6%B8%B8%E6%88%8F.html)[45 跳跃游戏Ⅱ…

快速上手Git

目录 一、Git概述 二、Git的常用命令 Git全局配置 获取Git仓库 基本概念 本地仓库操作 远程仓库操作 分支操作 标签操作 三、在IDEA中使用Git 在IDEA中配置Git 本地仓库操作 远程仓库操作 分支操作 冲突解决 一、Git概述 Git是一个分布式版本控制工具&…

Kubernetes Ingress 用法

Service的表现形式为IP地址端口号的方式,即工作在TCP/IP层,而对于基于HTTP的服务来说,Service机制很难实现,7层应用的复杂转发逻辑。kubernetes在1.1版本开始引入ingress资源对象,用于将集群外部的客户端请求路由到集群…

Elasticsearch 中使用MustNot等同于不等于遇到的坑

1、在写关键词推荐时,需要把当前文章过滤掉,不能再推荐自己的文章,所以再es中需要用到 MustNot属性查询 /// <summary> /// 服务中心es检索 /// </summary> /// <param name="input"></param> /// <returns></…

http代理与socks5代理有什么差异,http代理出现502错误如何修复?

一、HTTP代理与SOCKS5代理的差异HTTP代理和SOCKS5代理都是网络代理服务的两种主要类型&#xff0c;但它们在实现方式和应用场景上存在明显的差异。1.协议差异HTTP代理基于HTTP协议&#xff0c;是一种应用层代理&#xff0c;主要用于代理HTTP请求和响应。而SOCKS5代理则基于SOCK…

js实现贪吃蛇

文章目录 实现方法_11实现效果2 实现步骤2.1 移动场地2.2 游戏难度2.3 造蛇和食物2.4 蛇的移动2.5 产生食物的随机位置 3 全部代码 实现方法_21 实现效果2实现想法2.1 蛇的存储和显示2.2 蛇的移动(重难点)2.3 吃食物 3 完整代码 实现方法_1 1实现效果 2 实现步骤 html部分忽略…

Activity启动流程分析一 总体流程步骤分析

Launcher进程启动App进程MainActivity Launcher主线程捕获onClick()点击事件后&#xff0c;调用Launcher.startActivitySafely()方法。Launcher.startActivitySafely()内部调用了Launcher.startActivity()方法&#xff0c;Launcher.startActivity()内部调用了Launcher的父类Ac…

java heap dump文件简单快速查看

如何 查看 堆内存的对象占用情况 1 准备工具&#xff1a; idea , 2、 步骤&#xff1a; 1、jmap 或者其他工具&#xff0c;获取到 heap 快照 2、更改该文件的后缀名为 xxxx.hprof 3、用idea open 这个文件 如图&#xff1a; 5、点击biggest tab , calculate xxxx 即可…

Flask 入门1:一个简单的 Web 程序

1. 关于 Flask Flask诞生于2010年&#xff0c; Armin Ronacher的一个愚人节玩笑。不过现在已经是一个用python语言基于Werkzeug工具箱编写的轻量级web开发框架&#xff0c;它主要面向需求简单&#xff0c;项目周期短的小应用。 Flask本身相当于一个内核&#xff0c;其他几乎所…

ElasticSearch性能优化篇

目录 一、 架构的设计 1.1 一个节点只承担一个角色的配置 1.2 主节点设计 二、 索引的设计 2.1 冷热数据分离 1. 在配置文件中标记节点 2. 设置索引分配到热节点上 2.2 节点数的选择 2.3 索引的拆分 2.4 索引分片的设计 一、 架构的设计 1.1 一个节点只承担一个角…

C: AES对称加密算法代码

说明&#xff1a;本文提供基于C代码的 AES 加密、解密代码&#xff0c;并附带测试案例。 简介&#xff1a;AES加密是一种对称加密算法&#xff0c;全称为Advanced Encryption Standard&#xff0c;是美国联邦政府采用的一种区块加密标准。这种算法使用相同的秘钥进行加密和解密…

STM32-电动车报警器

STM32-电动车报警器 1.振动传感器点亮LED灯 需求:当振动传感器接收到振动信号时&#xff0c;使用中断方式点亮LED1 //重写中断服务函数&#xff0c;如果检测到EXTI中断请求&#xff0c;则进入此函数 void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {//一根中断线上接有多个…

JY-7A/3DK/220静态电压继电器 无源型 板前接线

系列型号 JY-7A/1DK不带辅助电源电压继电器&#xff1b;JY-7B/1DK不带辅助电源电压继电器&#xff1b; JY-7/1DK/120不带辅助电源电压继电器&#xff1b;JY-7/1DK/120不带辅助电源电压继电器&#xff1b; JY-7A/1DKQ不带辅助电源电压继电器&#xff1b;JY-7B/1DKQ不带辅助电源…

优秀广大青年欢迎加入

在深在广 年龄在20-35左右 男生工作稳定&#xff0c;幽默&#xff0c;长相帅气&#xff0c;爱好旅行&#xff0c;健身&#xff0c;读书&#xff0c;做饭&#xff0c;摄像&#xff0c;养宠&#xff0c;人心公益等…… 女生青春美丽&#xff0c;暖心贴心&#xff0c;踏实过日子&a…

网络安全知识和华为防火墙

网络安全 网络空间安全 ---Cyberspace 2003年美国提出的网络空间概念 ---一个由信息基础设施组成的互相依赖的网络。 我国官方文件定义&#xff1a;网络空间为继海、陆、空、天以外的第五大人类互动领域。 通信保密阶段 --- 计算机安全阶段 --- 信息系统安全 --- 网络空间安…

C++面试:MySQL服务器的安装与配置数据表的新建、查询和删除操作

MySQL服务器的安装与配置 安装 下载MySQL服务器&#xff1a;可以从MySQL的官方网站下载适合你操作系统的版本。安装MySQL&#xff1a; 在Windows上&#xff0c;通常是通过一个安装向导进行安装。在Linux上&#xff0c;可以通过包管理器进行安装&#xff0c;例如使用APT&#…

Android 中的动态应用程序图标

Android 中的动态应用程序图标 一、需求二、解决方案三、方案实现四、结论 一、需求 您可能遇到过那些可以实现巧妙技巧的应用程序 - 更改应用程序图标&#xff08;也许是在您的生日那天&#xff09;&#xff0c;然后无缝切换回常规图标。这种功能会激起你的好奇心&#xff0c…

Shell脚本⑦awk

目录 一.awk概述 1.awk介绍 2.基本格式 3.工作原理 4.常见的内建变量 二.awk基本操作 1.打印文本内容 &#xff08;1&#xff09;打印磁盘使用情况 &#xff08;2&#xff09;打印字符串 &#xff08;3&#xff09;打印字符串确定文件有多少行 2.根据$n以及NR提取字…

实战教程:如何用Spring Boot和MySQL存储共享单车数据

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

【经典项目】Java入门,实现斗地主小游戏

一、需求分析 实现斗地主游戏可以涉及以下几个关键步骤和思路&#xff1a; 游戏规则定义&#xff1a;首先&#xff0c;你需要明确斗地主游戏的规则&#xff0c;包括牌的花色和大小、玩家数量、发牌顺序、出牌规则、胜利条件等。 牌的表示和初始化&#xff1a;定义一套扑克牌的…