【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,一经查实,立即删除!

相关文章

快速上手Git

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

Kubernetes Ingress 用法

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

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

一、HTTP代理与SOCKS5代理的差异HTTP代理和SOCKS5代理都是网络代理服务的两种主要类型,但它们在实现方式和应用场景上存在明显的差异。1.协议差异HTTP代理基于HTTP协议,是一种应用层代理,主要用于代理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部分忽略…

java heap dump文件简单快速查看

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

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

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

STM32-电动车报警器

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

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

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

优秀广大青年欢迎加入

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

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

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

Android 中的动态应用程序图标

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

Shell脚本⑦awk

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

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

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

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

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

第六讲_JavaScript原型

JavaScript原型 1. 原型的概念2. 原型继承2.1 原型链 3. class类的原型对象 1. 原型的概念 原型是 JavaScript 对象相互继承特性的机制。 每个函数都有一个 prototype 属性,这个属性指向一个对象,这个对象称为原型对象。每个对象都有一个 [[Prototype]…

网络原理-TCP/IP(1)

应用层 我们之前编写完了基本的java socket, 要知道,我们之前所写的所有代码都在应用层中,都是为了完成某项业务,如翻译等.关于应用层,后面会有专门的讲解,在此处先讲一下基础知识. 应用层对应着应用程序,是程序员打交道最多的一层,调用系统提供的网络api写出的代码都是应用层…

纯html+js+css个人博客

首页 <!DOCTYPE HTML> <html> <head> <title>博客</title> <meta http-equiv"Content-Type" content"text/html; charsetutf-8" /> <meta name"viewport" content"widthdevice-width, initial-sca…

TOP100 矩阵

1.73. 矩阵置零 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 提示&#xff1a; m matrix.lengthn matrix[0].length1 < m, n < 200-2^31 < matrix[i][j] < 2^31 - 1 思路&#xf…

SeaTunnel Web安装 一把成

安装相关jar包&#xff0c;以及SeaTunnel 和Web 打成的包&#xff0c;可以直接使用&#xff0c;但是需要安装MySQL客户端的分享&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1qrt1RAX38SgIpNklbQJ7pA 提取码&#xff1a;0kmf 1. 环境准备 环境名称版本系统环境C…

使用EasyPOI模板导出Execl表格(含有图片)

这是生成的文件效果 一、导入依赖 <!--easypoi--><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base</artifactId><version>4.2.0</version></dependency><dependency><groupId>cn.aft…