本系列文章旨在记录和总结自己在Java Web开发之路上的知识点、经验、问题和思考,原来已经分享在我的CSDN博客,现在分享在百科,希望能帮助更多码农和想成为码农的人。版权声明:本文为CSDN博主「普通的码农」的原创文章,遵循CC 4.0 by-sa版权协议,请附上原文出处链接及本声明。原文链接:等等。
Java在Web开发的主要技术就是Servlet,它最初是由Sun公司的某个大牛用Java开发Web服务器的产物,最后形成规范、标准,就叫Java Servlet Specification,简称JSS。Tomcat也是由该大牛开发出来的(其实就是用Java开发的),后来贡献给了Apache软件基金会。
所以,Tomcat首先是一个Web服务器,同时也是一个Servlet容器,当然它也是一个JSP容器(本质上,JSP也是Servlet)。容器也可以叫引擎。既然叫容器,那么它肯定就是能够装某些东西,什么东西呢?当然就是Servlet了,那Servlet又是什么东西呢?它既然是Java提供的技术,在Java世界里一切都是类和对象,所以Servlet其实就是某种类而已,只不过它遵循某些规范(可以想象为某种格式)来供Servlet容器装载并执行。
Servlet技术咱暂且不细说,既然我们要用Servlet技术来开发Web应用程序,一个Servlet容器就必然是需要的,我们就选择Tomcat吧。
下载和安装因为我使用的是Windows系统作为开发平台,在Windows系统下Tomcat的安装有两种,一种是使用安装器(就是Installer),一种是直接解压Tomcat二进制发行包。安装器可以把Tomcat安装为一个Windows服务。但这里,我采用跟Eclipse类似的方式,直接解压安装法。
当然,当你开发完你的Web应用程序之后,需要放到Tomcat服务器上,所以在你的部署机器上也需要安装Tomcat。
先到Tomcat官网(。

我们就选择红色箭头所指的版本Tomcat 9.0.16.Released(读者可以选择当前的最新版本),点击下面的Download,将出现:

大家根据自己的系统来选择就可以了,我选择的是64-bit Windows zip。下载完毕之后,直接解压缩到合适的目录下。OK,这样就算安装完毕了,进入到解压出来的目录去看看都有哪些内容:

bin目录:(英文单词binary的简写,二进制的意思,引申为各种可执行的文件和工具)主要存放各种脚本,包括启动和停止等脚本;conf目录:(英文单词configuration的简写,配置的意思)存放配置文件,包括server.xml等配置文件;lib目录:(英文单词library,图书馆的意思,引申为存放各种库的地方)存放各种JAR包,包括servlet-api.jar、jsp-api.jar等,我们的web应用程序就需要引用这些JAR包中的类或接口等。logs目录:顾名思义,就是存放Tomcat的日志文件的,目前是空的;temp目录:Tomcat临时文件的存放目录,暂时不需要理会,目前是空的;webapps目录:这里就是存放你的Web应用程序的地方了,你需要把你的Web应用程序拷贝到这,然后Tomcat就能加载它,这就是所谓的部署你的应用。当然,还有其他的部署方式。这个目录里面已经带有一些Tomcat的示例Web应用程序。work目录:这个是Tomcat的工作目录,目前是空的。剩下的:就是些说明文件、授权文件等,无须理会。这里要说明的是,Tomcat把这些个目录分成三类:
可以修改其中的文件的目录:conf、logs、webapps、work这四个目录。这类目录的存放位置其实可以用环境变量CATALINA_BASE设置,其值默认是安装目录;只能读其中的文件的目录:bin、lib这两个目录,可以用环境变量CATALINA_HOME设置,其值默认是安装目录;临时文件目录:temp目录,可以用环境变量CATALINA_TMPDIR设置,其值默认是CATALINA_HOME/temp。为什么要这样分呢?这是为了启动多个Tomcat实例而拥有各自的定制特性和日志等(就放在自己设置的CATALINA_BASE目录下),或者避免升级Tomcat带来的文件覆盖。
启动和停止既然这就算安装成功了,那咱就启动一下Tomcat来验证一下。打开Windows命令行工具,并进入到Tomcat的安装目录,我的机器上是:E:\csdn\apache-tomcat-9.0.16,然后输入:
bin\startup.bat这就是执行bin目录下的tomcat启动脚本,一般情况下会执行成功,同时弹出Tomcat的控制台窗口:

从最后一句日志信息中可以看出Tomcat已经成功启动,但问题是出现了很多乱码,这是怎么回事?猜想是Tomcat打印日志的字符集和这个控制台显示信息的字符集有问题吧。于是网上搜了半天,在Tomcat控制台的标题栏右击弹出菜单,点击属性弹出属性对话框:

显示Tomcat控制台窗口的字符集是GBK。于是想只要把Tomcat日志打印的字符集改为GBK就可以了吧。日志打印的字符集配置在哪呢?当然是先到conf目录下找找看啊,可以找到一个logging.properties文件,用文本编辑器打开看看:

可以看到这个文件里有一项是配置日志打印字符集的,那就把它修改为GBK试试,结果真的成功了。
好,现在已经把Tomcat成功启动了,实际上我们就可以在浏览器地址栏输入:
/按回车键可以看到:

这其实就是Tomcat自带的一个示例Web应用程序,只不过它也可以用来配置、管理和监控该Tomcat运行实例,这也说明Tomcat确实已经运行起来了,而且是监听在8080端口上,当然,这都是可配置的。
停止Tomcat有几种方法:
直接点击Tomcat控制台窗口标题栏的关闭按钮;在Tomcat控制台窗口时,使用快捷键Ctrl + C;在另外一个命令行窗口执行Tomcat停止脚本:bin\shutdown.bat配置这里先暂时不用理会,等需要用到的时候再讨论,所谓契约优先原则就是我们尽量使用默认的配置,尽量让默认的配置够用,这样就可以减少我们的工作量。试想一下,如果一个软件的使用需要很多很繁复的配置,那用户将会多么沮丧,这样的软件将是失败的。实际上,我们设计出的软件也应该尽量遵循这个原则。
Tomcat自带的示例Web应用程序上面提到的webapps目录就是部署Web应用程序的目录,Tomcat安装包里面已经自带有几个示例Web应用。我们可以尝试着访问它们。
启动Tomcat,打开浏览器,先在地址栏输入:
/在浏览器上可以看到下面这个页面:

说明这个Web应用可以访问,它是Tomcat的使用文档,如果英文熟练的话,我们完全就可以通过这个应用来研究Tomcat的使用。没错,这就是Web应用,看起来用户体验不错吧。
在地址栏输入:
/在浏览器上可以看到下面这个页面:

说明这个Web应用也可以访问,它真的是Tomcat的示例Web应用,我们可以进一步点击上面三个链接中的每一个,看看里面都有什么内容,每一个页面又有链接,继续点击访问即可,反正鼠标可以到处尝试着点击,看页面会有什么反应。这里给出的例子还是比较丰富的,甚至有聊天工具、贪吃蛇游戏、画板等应用。
我点击上面的Servlets examples,页面显示:

再点击红色箭头所指的HelloWorld这个Servlet的源代码,让我们来看看Servlet的庐山真面目:

可以看到,Servlet的庐山真面目就是一个Java类:
import java.io.*;import javax.servlet.*;import javax.servlet.。我们后面就介绍何为继承。
再在地址栏输入:
/或
应用可以访问,但是需要用户名和密码登录后才能继续使用。
最后在地址栏输入:
应用。
总结Tomcat是一个既是Web服务器,又是Servlet容器;Servlet其实就是一个特殊的类,遵循Servlet规范,当然Servlet规范可不仅仅包含Servlet这个类而已;遇到乱码的问题,一般都是字符集冲突的原因造成的;我们设计出的软件最好也遵循契约优先原则。
你可能想看:webshell是什么意思,如何避免网站被留下webshell后门?
webshell实际是以asp、php、jsp,ini、cgi等网页文件形式存在的一种代码执行环境,也可以将其称做为一种网页后门。通常有很多黑客都通过使用webshell来让其在入侵一个网站后留下这个...
COMEBABY是什么意?COMEBABY?
come baby翻译为:来吧宝贝。短语Come On Baby 宝宝总动员 ; 宝贝儿来吧 ; 来吧 ; 来吧宝贝here come my baby 这里来我的宝宝 ; 这里是我的宝贝 ; 这里是我...
MXA920天花麦克风阵列和IntelliMix Room音频处理软件,获Zoom Rooms认证!
Shure进一步帮助IT专业人员和AV经理利用会议解决方案提升协作体验。Microflex Advance MXA920天花麦克风阵列和IntelliMix Room音频处理软件获得Zoom Room...
明明是迷你抄袭mc,为什么迷你玩家却说mc抄袭迷你?
还有这个游戏么?让我查一查,MC的玩家评论区坐好,点个关注。咱们聊一聊明明迷你抄袭mc,迷你玩家却说mc抄袭迷你,那些迷你玩家为什么玩迷你?说实话阿懵并没有玩迷你世界,但是网上看到了很多迷你世界的新闻...
求MC喊麦词和曲 最近刚学MC喊麦 请各位朋友介绍几个 简单易学的 曲子和词 歌曲速度稍微慢点的 词不要带脏字?
这些都是我平时喜欢的曲子,你可以听听,总有几首你喜欢的,我也是在学习MC,还木有找到老师,自己一个人练,这东西,我觉得吧,还是自己的感觉最重要!
为什么「骰子」的「骰」正确读音是「tóu」而几乎每个人都念「shǎi」(色)?
我不赞同所谓几乎所有人把“骰”(tóu)念“shǎi”这个观点,我国民间很多地方,就是念(tóu),尤其是南方的一些地方。南方十里不同音,方言多种,但很多地方对“骰”(tóu)字的读法,均沿用了古音,...
我的世界为什么叫MC和我的世界?
作为一个MC老玩家,也许能回答你这个问题。"我的世界"的称呼渐渐成为了分隔新老玩家的一个分水岭。老玩家认为我的世界翻译不够准确,而且那时候Mojang从来没有承认我的世界是官方译名。2016年5月20...
喜茶发布十周年报告,会员人数超6300万;东方甄选新年首个专场收官:25款农产品销售超1万单;BeBeBus首店开业|消研所日报
1月3日,喜茶发布名为《喜茶这十年》的十周年报告,报告中显示,喜茶已经进入了全球83个城市。截至2022年底,喜茶GO会员人数突破了6300万,2022年新增会员人数达1300万,2022年6月以来喜...
害我的是我的亲人,伤我的也是我的亲人,你说我该怎么办?
你怎么这么倒霉呀?最亲的人,都伤害你是不是你太不听话了,是不是你做什么对不起亲人的事情,亲人连续伤害你,假如你是一个有志气的好孩子,亲人一个敬佩你特别给亲人争光,伤害分轻重,假如是有意的,即便是至亲也...
初恋日记的jason谁演的
马志威,王敏奕,符龙飞,林雪,罗家英,苑琼丹,黄一山,麦家琪,利健森,杜小乔,贝依霖,魏文青,莫美妮
变频器端子ATCGNDAV1AFMCOM分别是什么意思?谢谢?
变频器端子ATCGNDAV1AFMCOM分别是什么意思,这个首先要看变频器的品牌和型号才清楚的,不同的变频器的端子定义是不一样的,你所说的端子GND、AVI、AFM、COM等等在变频器控制回路中都是常...
IIS、Apache、Tomcat、Nginx、CDN,它们之间有何区别?
一个学习的总结,或者说是汇总,有些链接给出的观点过时,已按照自己的理解经过修改编辑;IIS、Apache、Tomcat都可以属于Web服务器。Apache与Tomcat都是Apache开源组织开发的用...
Web已死,垄断盛行,小鱼喂大鱼
如今的中国互联网行业正在印证着一个工业化铁律:创造、传播、普及、垄断。随着百度、腾讯和阿里巴巴三大巨头的大肆圈地,业界喊出了“Web已死”。在他们看来,“互联网精神”将在垄断的冲击下荡然无存。所以,产...
豆瓣和知乎:论Web 2.0社区的平等性
豆瓣和知乎是现在国内Web 2.0网站的两个标杆,然而仔细对比之下,我们会发现两者在用户的区分上有着截然不同的方式,而正是这种细节上的差异决定了两个网站不同的发展趋势。豆瓣用户门柱的文章从个人角度对两...
web服务器是什么?
Web服务器有硬件服务器和软件服务器,现在硬件服务器多以云的方式为用户提供服务。Apache、nginx属于软件服务器,软件服务器是架设在服务端为Web应用提供系统级支撑服务,除了题目中提到的两个服务...
哪个Golang的Web框架好一点,可以推荐一下吗?
可以看一下 GitHub 上的 awesome-go( awesome 很酷的意思。可以理解为优质golang资源大全)这里整理了基于golang的优质的web框架列表,很多开发者都在关注。你可以从中...
谁可以提供下eWebEditor最新版本下载地址 ?
那个CSDN上有下载的呀~~eWebEditor是eWebSoft.com旗下eWeb团队开发的基于网页的、所见即所得的在线HTML编辑器~~你看看是不是这个啊!希望可以帮到你!
Web安全漏洞如何修复?
作为信息安全领域的从业人员很高兴回答你的问题。关于Web安全如何修复我认为漏洞修复分四步发现漏洞、确定漏洞的危害、确定有那些修复方案及成本、综合比较选择修复方案进行修复。可以通过专业的漏洞扫描工具或者...
如何快速解决网站中存在的Web漏洞?
最直接的可能就是通过URL 跳转漏洞。而且URL跳转漏洞的测试难度小,其次那些细节可能会存在漏洞呢?认证的正常页面可能存在URL跳转漏洞;可能存在URL跳转漏洞的是站内的一些其他外部链接,当你点击跳转...
常见的web安全漏洞有哪些?
跨站脚本攻击是指通过存在安全漏洞的Web网站注册用户的浏览器内运行非法的HTML标签或JavaScript进行的一种攻击:利用虚假输入表单骗取用户个人信息,XSS 的原理是恶意攻击者往 Web 页面里...
(来源:问答百科)
)
)
)
)