JavaEE——Tomcat和servlet

news2024/11/17 7:22:32

Tomcat

tomcat是一个http的服务器,用来简化我们的网站开发
大家在下载的时候,如果jdk是8,那么tomcat也应该大版本是8
安装解压缩后,可以看到其中的一系列目录

  1. bin 是tomcat的启动脚本(start.bat是windows用的,start.sh是Mac和linux用的)
  2. conf 配置文件
  3. logs 日志打印信息
  4. webapps 部署网站用的(将前后端代码放到这里即可访问)

启动程序后,访问127.0.0.1:8080,如果看到了tomcat的欢迎页面,说明启动成功了
其中8080是tomcat的默认端口

Servlet

这是tomcat给程序员二次开发的api,方便我们开发后端程序,使不同的请求能够返回不同的页面,形成动态页面

具体步骤

先创建一个maven项目
选择其中的maven,然后点next,jdk版本最好是8,能和之前讲的JDBC和后面的Servlet的版本对应上
在这里插入图片描述
命名后点击finish
在这里插入图片描述
在项目的左侧构造这样的目录结构
在这里插入图片描述
然后在web.xml文件中添加这样的代码,如果报红了,也没有关系,不影响正常的使用

<!DOCTYPE web-app PUBLIC
        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <display-name>Archetype Created Web Application</display-name>
</web-app>

在pom.xml中添加依赖
大家在这个网址下,可以访问maven中央仓库

https://mvnrepository.com/

搜索servlet,选择第一个java servlet api
在这里插入图片描述
选择其中的3.1.0版本的
在这里插入图片描述
复制其中的maven代码到pom.xml中
在这里插入图片描述
先在pom.xml中添加标签,然后粘贴刚才的代码
在这里插入图片描述
再添加下面这样的代码,可以将之后的打包程序的格式变成war包,并且名字可以变成servlet

<packaging>war</packaging>
<build>
    <finalName>servlet</finalName>
</build>

最后我们的pom.xml长这样
在这里插入图片描述

如果代码报红,那就点击一下maven的刷新
在这里插入图片描述

在刚才我们创建的HelloServlet中,让我们自己的类继承自HttpServlet,重写其中的doGet方法

doGet方法是服务器根据请求计算出相应的响应,与之对应的还有doPost方法,也就是浏览器为服务器传输数据

其中的req是请求,resp是响应,是一个输出型参数,我们用resp中的getWriter()中的write()方法,可以输出自己想要的字符串

在类上加上@WebServlet注解,后面加上一个/xxx的字符串,就代表这个类可以通过url中路径是/xxx并且是get请求获取到
在这里插入图片描述
然后,我们使用maven的package进行打包
在这里插入图片描述
左侧就会生成target目录,其中包含我们想要的war包
在这里插入图片描述
右键这个包,然后选择openin,这样的话就可以在自己的文件夹中看到这个包,把这个war包拷贝到tomcat的webapps的目录中
在这里插入图片描述
然后启动tomcat,如果是mac启动请参考我之前的一篇博客——Mac如何启动Tomcat,如果是windows,就双击bin目录下的startup.bat文件
tomcat运行后会自动把我们的war包解压缩
在这里插入图片描述
然后就可以上网进行验证了
在浏览器输入127.0.0.1:8080/war包名/类上面的注解中的字符串
如果是按照我刚才那样写的,那就是

127.0.0.1:8080/servlet/hello

在这里插入图片描述
到此为止,我们的第一个servlet程序就成功了!

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

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

相关文章

分布式IO系统应用连接华为云

分布式IO系统华为云设置 启用设置 &#xff1a;勾选启用 认证方式 &#xff1a;可选择设备秘钥方式和认证证书方式&#xff0c;认证证书方式需要上传证书 设备 ID &#xff1a;华为云创建设备时生成的设备 ID 服务 ID &#xff1a;产品需要创建服务才能上报数据 地域(Region …

Fiddler Classic 替换本地JS并远程调试

背景 众所周知&#xff0c;下载的m3u8文件无法直接播放&#xff0c;一般来讲m3u8文件采用AES128对称加密&#xff0c;并提供key、iv、ts列表。当然文件中的key与iv均为加密后的结果&#xff0c;需配合相应的解密文件与偏移量。本文基于某利威的player.js介绍如何利用Fiddler进…

Cesium案列学习(Multi-partCZML.html)

在学习这个案例之前&#xff0c;先花一点时间了解一下什么是CZML CZML Structure AnalyticalGraphicsInc/czml-writer Wiki (github.com) Cesium Language (CZML) 入门1 — CZML Structure&#xff08;CZML的结构&#xff09; - laixiangran - 博客园 CZML是JSON得一个子集…

面试官问我:一个 TCP 连接可以发多少个 HTTP 请求?我竟然回答不上来...

一道经典的面试题是从 URL 在浏览器被被输入到页面展现的过程中发生了什么&#xff0c;大多数回答都是说请求响应之后 DOM 怎么被构建&#xff0c;被绘制出来。但是你有没有想过&#xff0c;收到的 HTML 如果包含几十个图片标签&#xff0c;这些图片是以什么方式、什么顺序、建…

什么是 Element NFT 市场和 NFT 聚合?

Oct. 2022, Vincy Data Source: Footprint Analytics - Element NFT Marketplace NFT 交易市场 Element 在 2021 年 7 月 1 日作为解决了大多数 DeFi 项目利息的波动问题以及用户存款后本金流动性的问题推出。 8 月 15 日&#xff0c;该平台正式推出 2.0 版本&#xff0c;与原…

【树莓派不吃灰】命令篇③ 学习Shell脚本

目录1. Shell 脚本2. Shell 环境3. 运行 Shell 脚本3.1 方式13.2 方式24. Shell变量4.1 定义变量4.2 使用变量4.3 只读变量4.4 删除变量4.5 字符串4.5.1 获取字符串长度4.5.2 提取子字符串4.5.3 查找子字符串4.6 Shell 数组4.6.1 定义数组4.6.2 读取数组4.6.3 获取数组的长度4.…

100天精通Python(基础篇)——第8天:字符串的三种定义

文章目录字符串的三种定义方法示例代码如何想定义的字符串本身含有单引号&#xff0c;双引号&#xff0c;如何写呢&#xff1f;字符串的三种定义方法 1.单引号定义法 name ‘我是无敌的’ 2.双引号定义法 name “我是无敌的” 3.三引号定义法 name “”“我是无敌的”“” …

html实现扫雷小游戏(附源码)

文章目录实现功能1.扫雷设计1.1 主界面1.2 扫雷难度1.3 附带功能2.效果和源码2.1 动态效果2.2 源代码源码下载作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/127886480 html实现扫雷小游戏(附源码)&#xff0c;html扫雷…

神经网络编译器TVM

市面上&#xff0c;关于神经网络的提速方案&#xff0c;可谓八仙过海各显神通 英伟达搞了tensorRT facebook依托着pytorch也做了 libtorch c 的相关部署方案 谷歌在他原有的tensorflow的生态做了tensorflow c以及tensorflow lite相关的方案 这些方案各有优劣&#xff0c;各…

Redis数据结构之——intset

写在前面 以下内容是基于Redis 6.2.6 版本整理总结 一、整数集合&#xff08;intset&#xff09; 当一个集合只包含整数值元素&#xff0c;并且元素的个数不多时&#xff0c;Redis会使用整数集合作为集合键的底层实现。 1.1 整数集合的实现 整数集合可用保存的数据类型有&a…

MetersPhere提取信息头token并设置为全局变量

MetersPhere提取信息头token并设置为全局变量 我们需要登录接口的token参数&#xff0c;如下 在下面这一行了 Set-Cookie: tokenIdA552326CDC8F4A19B454DADF8938980B; path/参考了其他的文章&#xff0c;再加上自己的理解&#xff0c;现在提供两种方法,先把先驱的脚本拿出来…

Dragonframe是一个全功能的动画制作工具,专为满足电影,广播电视和电影的要求设计。

将 Dragonframe 置于您下一部定格动画电影的核心位置。 动画片 让您的动画栩栩如生。用于精确移动的专业屏幕工具。步进、播放、捕捉、重复。 摄影 使用相机控制、测试镜头和高级图像查看工具来构图和点亮完美的镜头。 声音的 导入和编辑多个音轨。对多个角色进行对话曲目阅读。…

我的力扣刷题顺序(参考代码回忆录)

数组 数组过于简单&#xff0c;但你该了解这些&#xff01;数组&#xff1a;二分查找数组&#xff1a;移除元素数组&#xff1a;序数组的平方数组&#xff1a;长度最小的子数组数组&#xff1a;螺旋矩阵II数组&#xff1a;总结篇 链表 关于链表&#xff0c;你该了解这些&…

当光伏巡检走向全自动化

作者 | 曾响铃 文 | 响铃说 无数的太阳能面板组成光伏发电的海洋&#xff0c;在烈日下矗立&#xff0c;为了保证它们正常运行&#xff0c;电站必须安排人力巡查&#xff0c;一块块面板全面检查&#xff0c;周而复始。 在光伏发电高速发展的这些年&#xff0c;这一幕已经成为…

餐饮美食网页设计(HTML+CSS+JavaScript)

&#x1f380; 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

hiveSql 跨N天最大连续统计

hiveSql 跨N天最大连续统计说明需求分析实现最后说明 看到标题可能没太能理解&#xff0c;什么叫跨N天连续&#xff1f;这里解释下&#xff1a; 跨N天连续定义为&#xff1a;登录相隔天数小于N 用跨2天举例&#xff08;即隔一天也算连续登录&#xff09; 例如 &#xff1a; 20…

书桌台灯怎么选?分享儿童卧室灯品牌

书桌少不了的就是台灯&#xff0c;从小到大&#xff0c;不管是学习还是工作&#xff0c;都离不开一张书桌&#xff0c;学生上学学习&#xff0c;书桌就是必不可少的一部分&#xff0c;而选择怎么样的台灯好呢&#xff1f; 最重要的是安全的的光线品质 在照明领域&#xff0c;光…

Matlab 实现 信号的基本运算

实验名称 利用 Matlab 软件的信号处理工具箱(Signal Processing Toolbox)中的专用函数来实现信号的基本运算。 包括 - * 时移、翻转、展缩 运算 实验环境 MATLAB - R2021b 实验目的 了解仿真基本的信号。 sin() 产生正弦信号 ysin(x) x 是自变量 可看做时间向量 plot() …

Quick MTF 照相机镜头图像质量测试程序-UPDATE

Quick MTF&#xff0c;图像质量测试应用程序 Quick MTF 可让您测试数字图像的质量。它具有精确的计算引擎和直观的用户界面&#xff0c;无需特殊培训即可轻松使用。只需使用 Quick MTF 打开测试图像并选择目标区域。 目的 Quick MTF 检查成像设备拍摄的图像质量&#xff0c;让…

【MySQL | 运维篇】07、MySQL 分库分表之 MyCat 管理与监控

目录 一、MyCat原理 二、MyCat管理 三、MyCat-eye 3.1 介绍 3.2 安装 1). zookeeper安装 2). Mycat-web安装 3.3 访问 3.4 配置 1). 开启MyCat的实时统计功能(server.xml) 2). 在Mycat监控界面配置服务地址 3.5 测试 A. 性能监控 B. 物理节点 C. SQL统计 …