如何运行第一个Tomcat HttpServlet 程序

devtools/2025/1/18 18:03:00/

怀旧网个人博客网站地址:怀旧网,博客详情:如何运行第一个Tomcat HttpServlet 程序

1、编写一个 Servlet 类

image-20240326110655024

创建一个包

image-20240326110714934

在创建一个类--继承HttpServlet

image-20240326110746080

爆红:原因,没有导入所依赖的包

alt+enter 

image-20240326110815249

选着add macen

image-20240326110830025

选着第一个--javax.servlet 这个

然后随便选一个版本即可。

image-20240326110859813

导入包,没报错,就说明成功了

image-20240326110948506

重写父类的doGet方法。

2、编写配置文件映射

image-20240326111030204

打开配文件

加入配置数据:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!--  配置映射(对应到主机host文件中的实际地址)  --><servlet><!-- 映射名称-可以随意取 --><servlet-name>hello</servlet-name><!-- 对应到java类的地址 --><servlet-class>com.huaijiuwang.servlet.Hello</servlet-class></servlet><!--  配置映射(对应到主机host文件中的url地址)  --><servlet-mapping><!-- 对应上面的servlet-name --><servlet-name>hello</servlet-name><!--访问的时候访问这个路径即可--><url-pattern>/hello</url-pattern></servlet-mapping>
</web-app>

3、配置完成,启动项目访问hello路径

image-20240326111425961

image-20240326111442695

访问成功,没有报错,但是其中没有数据,现在取加入数据

加入代码

public class Hello extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {PrintWriter writer = resp.getWriter();writer.println("<h1>Hello</h1>");}
}

重新启动查看

image-20240326111608366

效果实现,

4、重新设置访问路径,测试

image-20240326111641983

修改配置文件,并重启

image-20240326111711548

再次访问hello爆粗了,试一下新配置的路径

image-20240326111729445

访问成功输出Hello

5、中文乱码问题解决

在代码中输出中文

image-20240326111812158

查看结果

image-20240326111850043

解决方案:

在文件中配置HttpServletResponse对象,设置响应数据的编码

image-20240326111946650

image-20240326112044031

运行还上乱码,原因前端没有设置响应类型,添加响应类型代码。

image-20240326112411843

image-20240326112418898

乱码问题解决

image-20240326112628306

由于这边可以直接设置编码格式,所以setCharacterEncoding可以不用写了

image-20240326112727725


http://www.ppmy.cn/devtools/151617.html

相关文章

Vue3实现表格搜索内容高亮

采用html拼接 v-html 指令用来将给定的 HTML 字符串直接渲染到页面上 <template><div><!-- 搜索框 --><input v-model"searchText" placeholder"搜索内容" /><!-- 表格 --><el-table :data"tableData" style…

【Excel超实用,VLOOKUP函数,通过excel数据精准匹配,将一个excel文件的某列数据,用另一个excel文件快速填充】

1、使用背景 如下图1所示&#xff0c;1.xlsx文件&#xff0c;有两列数据&#xff0c;一列序号&#xff0c;一列内容&#xff0c; 我现在需要将第二列的内容快速完成填充&#xff0c;并且有相应的excel模板作为参照。 图1 如图2所示&#xff0c;2.xlsx是模板文件&#xff0c;序…

c#删除文件和目录到回收站

之前在c上遇到过这个问题&#xff0c;折腾许久才解决了&#xff0c;这次在c#上再次遇到这个问题&#xff0c;不过似乎容易了一些&#xff0c;亲测代码如下&#xff0c;两种删除方式都写在代码中了。 直接上完整代码&#xff1a; using Microsoft.VisualBasic.FileIO; using Sy…

怎么抓取IOS手机app的网络流量,也就是iphone手机抓包

继续昨天的教程&#xff0c;如抓取ios手机上的https请求。今天介绍如何在抓取iphone手机上的非https请求 也就是socket通信的数据。如果在pc上我们会第一时间讲到wireshark&#xff0c;但是对移动设备&#xff0c;似乎就要复杂很多。最近研究发现的工具嗅探大师&#xff0c;能…

51.WPF应用加图标指南 C#例子 WPF例子

完整步骤&#xff1a; 先使用文心一言生成一个图标如左边使用Windows图片编辑器编辑&#xff0c;去除背景使用正方形&#xff0c;放大图片使图标铺满图片使用格式工程转换为ico格式&#xff0c;分辨率为最大 在资源管理器中右键项目添加ico类型图片到项目里图片属性设置为始终…

【Qt 常用控件】按钮类(QPushButton、QRadioButton、QCheckBox)

按钮控件继承自抽象类QAbstractButton。 抽象类不允许实例化对象&#xff0c;内部定义纯虚函数。只能通过子类继承&#xff0c;重写纯虚函数的方式使用。 1. QPushButton 1.1 QAbstractButton中和QPushButton相关的属性 text按钮显示文本icon按钮图标iconSize按钮图标尺寸s…

STM32 FreeRTOS中断管理

目录 FreeRTOS的中断管理 1、STM32中断优先级管理 2、FreeRTOS任务优先级管理 3、寄存器和内存映射寄存器 4、BASEPRI寄存器 5、FreeRTOS与STM32中断管理结合使用 vPortRaiseBASEPRI vPortSetBASEPRI 6、FromISR后缀 7、在中断服务函数中调用FreeRTOS的API函数需注意 F…

【Axure】1500+实用图标库

most Icon 是基于工作中常用的图标进行整理的一款高度灵活的矢量图标库&#xff08;非字体图标&#xff0c;不需要安装字体&#xff09;&#xff0c;并在 axure 内可以右键转换成图形并修改颜色&#xff0c;轻松调整图标的尺寸、色调、光影效果以及背景填充等各项属性。 它在 …