配置Tomcat和在Eclipse中创建Web工程
配置Tomcat服务器信息:
在Tomcat的安装目录下有一个conf目录,里面存放着Tomcat服务器的配置文件,其中最为核心的配置文件是server.xml,在这个文件里我们可以配置服务器的各种参数,例如超时时间、连接数量、端口配置等等。
下面介绍一些日常中可能会去server.xml里进行配置的参数:
超时时间
最大连接数
上图中的:
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="150" minSpareThreads="4" />
这是一个Executor 元素标签,Executor 用来配置共享线程池的,其实最大连接数就取决于线程池里的线程数量,所有的Connector都能共享这个线程池,要注意的是:这个标签要写在Connector之前。
关于以上Executor里声明的属性解释:
name 此属性是定义这个线程池的名字,这个名字必须唯一。
namePrefix 此属性是给每个线程池中的线程的name字符串设置一个前缀,这个前缀就是namePrefix 的值,而所谓的name字符串就是线程的线程号,默认值为tomcat-exec。
maxThreads 此属性定义好线程池的最大线程数量,也就是最大连接数量,默认值为200。
minSpareThreads 此属性定义Tomcat始终打开的最小线程数,也就是说无论如何Tomcat中的线程数量都不会小于这个属性定义的数量,默认值为25。
除了以上用到的四种属性之外,还有一个maxIdleTime属性也比较经常会用到,这个属性用来定义在Tomcat关闭一个空闲线程之前,允许空闲线程持续的时间,单位是毫秒,默认值为60000(一分钟)。
端口
端口也就是Tomcat服务器的通信端口,默认为8080。所有的用户都是通过这个端口来访问Tomcat服务器,这个端口是可以自定义的,在Connector标签的port属性中定义:
我们在开发实验的过程中使用的默认8080端口,如果发布上线的话,需要改为80端口,80端口是http协议的默认端口号。
常见的默认端口号如下:
⑴. HTTP协议代理服务器常用端口号:80/8080/3128/8081/9080
⑵. SOCKS代理协议服务器常用端口号:1080
⑶. FTP(文件传输)协议代理服务器常用端口号:21
⑷. Telnet(远程登录)协议代理服务器常用端口:23
HTTP服务器,默认的端口号为80/tcp
HTTPS(securely transferring web pages)服务器,默认的端口号为443/tcp 443/udp;
Telnet(不安全的文本传送),默认端口号为23/tcp(***Tiny Telnet Server所开放的端口);
FTP,默认的端口号为21/tcp(***Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口);
TFTP(Trivial File Transfer Protocol),默认的端口号为69/udp;
SSH(安全登录)、SCP(文件传输)、端口重定向,默认的端口号为22/tcp;
SMTP Simple Mail Transfer Protocol (E-mail),默认的端口号为25/tcp(***Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口);
POP3 Post Office Protocol (E-mail) ,默认的端口号为110/tcp;
WebLogic,默认的端口号为7001;
Webshpere应用程序,默认的端口号为9080;
webshpere管理工具,默认的端口号为9090;
JBOSS,默认的端口号为8080;
TOMCAT,默认的端口号为8080;
WIN2003远程登陆,默认的端口号为3389;
Symantec AV/Filter for MSE,默认端口号为 8081;
Oracle 数据库,默认的端口号为1521;
ORACLE EMCTL,默认的端口号为1158;
Oracle XDB(XML 数据库),默认的端口号为8080;
Oracle XDB FTP服务,默认的端口号为2100;
MS SQL*SERVER数据库server,默认的端口号为1433/tcp 1433/udp;
MS SQL*SERVER数据库monitor,默认的端口号为1434/tcp 1434/udp;
MySQL 数据库,默认的端口号为3306/tcp;
发送关闭信息端口
这个端口在Server标签上定义:
Server标签包含的是整个Tomcat服务器。它有三个属性:
className 此属性定义服务器容器实现要使用的完全限定类名。
port 此属性定义接收关闭Tomcat请求的端口,这个端口只能从本地访问,所以能够阻止有人通过网络来关闭你的服务器。
shutdown 用来向port 定义的端口发送关闭服务器的命令字符串。如上图就是会向8005发送SHUTDOWN命令。
https加密协议端口
同样的如果是发布上线的话就要把8443改为443,因为https协议的默认端口号是443。
关于https协议:
https就是使用ssl加密的http协议,是一种加密的超文本传输协议。如果http不加密的话,被人抓包或监听了数据包,就能很轻易地看到数据包里面的数据内容,那样的话你的信息就泄露了。
如果使用的是https协议,那么你的数据包上传和下载时都会被加密,即便被人抓包了,也没有那么轻易破解加密算法,因为数据包是被公钥加密的只能使用服务器上的私钥解密,而服务器根本不会在任何情况下发送私钥,想要不通过私钥来直接破解数据包几乎是不可能的。
具体流程如图:
https协议是需要一个受信任的证书才能实现的,这个证书实际上就是一对密钥(公/私)。而我们自己也可以通过一些工具来生成这对密钥,这就叫做颁发证书。
自己颁发的证书是不受信任的,通过浏览器访问时就会有一个警告,受信任的证书需要去一些注册了的证书公司、网站上去购买,但是为什么自己颁发的证书就不受信任呢?是因为不安全吗?实际上不是的,这是因为我们自己制作的证书没有去进行相关的信任注册,没有去和浏览器厂商挂钩,而那些售卖的受信任证书就是去注册了并且和浏览器厂商挂钩了,所以浏览器才会认为是受信任的。
例如去访问12306网站的https协议时浏览器也是会显示不安全的连接:
https://www.12306.cn
这不是因为天朝没钱买证书,而是不信任那些外部购买过来的证书,所以才使用自己内部颁发的证书。
因此可以知道,显示这个警告的原因仅仅是因为浏览器没有认可这个证书,并非是真的不安全。
https原理详细可以参考以下两篇文章:
http://www.cnblogs.com/zery/p/5164795.html
http://www.jianshu.com/p/650ad90bf563
手动创建web工程
以上介绍了许多Tomcat服务器的相关配置,现在尝试手动创建一个web工程吧:
首先在Tomcat的webapps目录中创建一个工程文件夹,例如我创建一个名为myweb的一个文件夹:
在myweb目录下,创建一个WEB-INF文件夹
然后在WEB-INF目录下,分别创建classes和lib文件夹:
classes是用来存放编译后的java类文件的。
lib 里面则是存储jar包文件,也就是库文件
除了classes和lib文件夹外,你还可以创建一个web.xml文件,这个web.xml文件在以前的web工程中是必须的,但是现在则是可选的,你可以创建一个也可以选择不创建,为了简单我这里就不创建了,除了web.xml文件外这个WEB-INF目录下也可以存放JSP文件。
然后返回到myweb目录下,你站点的索引页可以放在这个目录下,所谓索引页就是index.html或者.jsp文件,当用户访问该web工程目录时不指定要访问的页面的话,就会默认访问这个索引页,所以要创建一个索引页文件,示例:
然后往这个html文件中写上一些内容:
到目前为止,我们的一个简单的web工程就构建好了,现在打开Tomcat服务器,然后使用浏览器访问这个web工程,就会默认访问index.html文件,然后根据里面的内容就会显示Hello My Web:
工程目录的结构的思维导图:
如果你不创建这个index.html索引页文件的话,就会出现404状态码,例如我现在把index.html给删掉再访问:
这个404状态码意思是找不到文件,这种情况出现于你访问一个不存在的文件时,就会出现这个状态码。
关于http状态码可参考以下教程:
http://www.runoob.com/http/http-status-codes.html
除此之外我们还可以把web工程打包成war包放在webapps目录下,这样也是发布工程的方式一种,所谓war包其实就是一个zip格式的压缩包,只不过后缀名改为了war罢了。现在就可以把刚刚构建的工程打成war包:
手动打war包的时候要注意一点,不要打包myweb这个目录,而是打包它里面的WEB-INF和index.html:
因为Tomcat是支持热部署的,所以需要先把Tomcat关掉,然后把war包剪切出来把原本的工程删掉,这时候就相当于发布了这个war包,接下来再把Tomcat启动,会发现war包被解压缩了:
这时候使用浏览器去访问myweb,依旧是显示Hello My Web:
如图代表发布成功。
除了手动构建工程和使用war包的方式发布工程外,还可以发布外部工程,也就是说发布不存放在webapps目录下的工程,这种叫做外部发布,例如我现在把war包剪切到E盘根目录下,并解压:
然后就是去server.xml中配置一段内容:
Context中的属性:
path 定义在浏览器URL上填写的访问工程名称
reloadable 定义是否支持热部署,所谓热部署也就是说只要某个文件的源码发生更改,服务器就会自动重新加载该web应用。
docBase 定义外部工程的路径
修改完配置文件后,通过浏览器访问myweb看看是否成功:
思维导图:
在Eclipse中创建Web工程
介绍完如何手动创建和发布web工程后,当然得试一下在Eclipse中创建并发布web工程,因为在实际的日常开发环境中一般极少会使用手动的方式去创建和发布web工程,都是通过工具来进行创建和发布,比如通过Eclipse(这里的Eclipse必须是for JavaEE版本)。
创建web工程之前我们首先得配置Tomcat到Eclipse中,打开Servers控制台:
打开后在下方可以看到Servers控制台:
然后点击上图中的那段文字,进入到以下界面:
开始配置:
现在Tomcat就配置好了,下方的Servers控制台也出现了Tomcat:
然后工程目录下也出现了Tomcat服务器的目录:
配置完Tomcat了,现在就可以创建一个web工程了,右键点击选择动态工程:
现在就创建好了这样的一个web工程:
现在我们在WEB-INF目录下,创建一个索引页文件(index.html):
编辑文件内容如下:
创建完成:
好了,web工程算是构建完成了,接下来就是进行发布到Tomcat服务器上了,右键点击Tomcat:
将工程添加进去:
现在打开Tomcat目录可以看到工程已经发布进去了:
接下来就是启动Tomcat并使用浏览器访问了:
启动成功,并且控制台上会打印很多日志信息:
通过浏览器访问:
成功访问
在Eclipse上虽然是发布工程到Tomcat,但是却不是发布到Tomcat主目录下的webapps目录中,现在打开webapps目录是找不到myweb工程的:
那么如何找到这个工程发布的路径呢?查看Tomcat启动时在控制台中打印的日志信息就可以找到:
复制路径,然后粘贴到“我的电脑”中的地址栏上,回车就可以进入到该目录:
这一点要注意:这是因为在Eclipse中运行的Tomcat是一个副本而不是原本,所以如果在Eclipse中修改server.xml配置文件时出现配置不生效的情况,可以去修改原本的server.xml文件试一下。
转载于:https://blog.51cto.com/zero01/1977657
相关文章:

eureka需要替换吗_iOS第三方库Eureka实现定制动画详解(二):万变不离其宗-Row组件...
Eureka的核心就是Row,所以我们得重点聊聊它。Row是什么?其实上面已经说过了,不过这只是干巴巴的概念,下面本猫用一个实际的例子带大家性感,哦,不…是感性的认识一下到底什么是Row 新建一个iOS项目ÿ…

学习这么多算法到底在解决哪些问题?深度学习之外,我们要选择谁?
CSDN 出品的《2018-2019 中国人工智能产业路线图》V2.0 版即将重磅面世! V1.0 版发布以来,我们有幸得到了诸多读者朋友及行业专家的鼎力支持,在此表示由衷感谢。此次 V2.0 版路线图将进行新一轮大升级,力求为读者呈现更全面的中国…

JDK6.0+Eclipse3.2+MyEclipse5.0GA+Tomcat5.0+Win2003搭建J2EE开发平台.
呼.........不容易啊.J2EE平台今天终于搭建起来了.... 1.先安装jdk-6-beta2-windows-i586.exe,安装目录:E:\Program Files\Java\jdk1.6.0 2.然后安装jakarta-tomcat-5.0.30服务器.安装目录:E:\Program Files\Java\Tomcat 5.0 3.在"我的电脑"--"属性"--&quo…

Google全球员工围攻Google!
参加 2018 AI开发者大会,请点击 ↑↑↑屋漏偏逢连夜雨,仍未进得了中国的搜索巨人 Google,在自己的地盘上,日子也不好过。自 2005 年收购以来,硅谷科技巨头 Google 在世界上第一大手机操作系统 Android 收益颇丰&#x…

23 版本以上的v4包_Ant Design Pro V2升级到V4 小结
前言前不久接手过一个历史悠久的项(shi)目(shan),技术栈之复杂(混乱)令我潸然泪下:你甚至可以在一个项目里使用前端三大框架(Angular1, Vue, React)。三份的代码,本应该给我带来更多的快乐,但是为什么会变成这样呢?鉴于接到的是一…

python标准库介绍——23 UserString 模块详解
UserString 模块(2.0 新增) UserString 模块包含两个类, //UserString// 和 //MutableString// . 前者是对标准字符串类型的封装, 后者是一个变种, 允许你修改特定位置的字符(联想下列表就知道了).注意 //MutableString// 并不是效率很好, 许多操作是通过切片和字符串连接实现…

影像融合操作的几种途径
影像融合操作的几种途径 1、在遥感软件中作影像融合 融合必须在全色波段和多光谱波段两者配准好的基础上进行,我建议你用edars融合,这样比较省时。据说PCI最好,机器没有软件没有试验。 在envi中,把全色波段和多光谱波段两个图像…

微信小程序万里目_微信小程序学习用推荐:破音万里:音频播放,音乐列表
[AppleScript]let bsurl https://poche.fm/api/app/playlists var common require(../../../utils/util.js); let seek 0 let defaultdata { winWidth: 0, winHeight: 0, listHeight: 0, // tab切换 currentTab: 0, // 播放列表 playlists: [], tracks: [], coverImgUrl: &…

11月11日截止报名!快来参加顶尖极客汇聚的“AI Challenger 全球AI挑战赛”!
“AI Challenger 全球AI挑战赛”是面向全球人工智能人才的开源数据集和编程竞赛平台,致力于满足AI人才成长对高质量丰富数据集的需求,推动AI在科研与商业领域结合来解决真实世界的问题。AI Challenger以服务、培养AI人才为使命,打造良性可持续…

Asp.net下实现隐藏真实下载地址(可以实现简单的防盗链)
现在随着FlashGet和xunlei等下载工具的日益普及,下载网站的一些下载地址都能直接被捕获到,,但是有些时候为了防盗链或权限限制不想对地址进行暴露,对于Asp.net下的防盗链有很多方法,我这里写了一种(51aspx的…

大众点评数据平台架构变迁
2019独角兽企业重金招聘Python工程师标准>>> 最近和其他公司的同学对数据平台的发展题做了一些沟通,发现各自遇到的问题都类似,架构的变迁也有一定的相似性。 以下从数据&架构&应用的角度对2012.07-2014.12期间大众点评数据平台的架构…

无人驾驶汽车系统入门:基于深度学习的实时激光雷达点云目标检测及ROS实现...
参加 2018 AI开发者大会,请点击 ↑↑↑作者:申泽邦(Adam Shan),兰州大学在读硕士研究生,主要研究方向无人驾驶,深度学习;兰大未来计算研究院无人车团队负责人,自动驾驶全…

sendmail服务器配置过程中出现的一些错误和解决办法
sendmail服务器配置过程中出现的错误和解决办法 以前在做实验的过程中总结和写的一些教程的一些资料,一直没时间发布到博客上面,五一到了,终于有点时间发布啦!关于Linux上面还会有RHCE系列的学习笔记发表 1、rpm包不能正常卸载&am…

python多功能电子钟_python gui - PyQt4 精彩实例分析之电子钟
PyQt4 精彩实例分析之电子钟,当然在写实例之前要先安装PyQt4模块。from PyQt4.QtGui import *from PyQt4.QtCore import *import sysclass DigiClock(QLCDNumber):def __init__(self,parentNone):super(DigiClock,self).__init__(parent)pself.palette()p.setColor(…

编译安装Zabbix 2.2 (LNMP环境)
说明:操作系统:CentOS7环境:mysql5.6PHP5.5Nginx1.12Zabbix版本:Zabbix2.2编译安装确实比YUM安装麻烦好多些,但是为了加强对Zabbix的理解,编译安装还是很有意义的,毕竟这样自己能很清楚安装路径…

凸透镜成像实验软件_中考物理凸透镜成像难点解析
凸透镜一直以来都是中考物理上考察的重点内容,生活中也有很多凸透镜成像的例子,如照相机成像。那么凸透镜成像这类问题该如何解答呢?小编为你整理了凸透镜成像的难点,让你能在遇到这类问题时能够全部解答出来。一、凸透镜对光的作…

总奖金300万的AI Challenger 2018进入第二阶段,决赛在即!
参加 2018 AI开发者大会,请点击 ↑↑↑此前,AI科技大本营曾报道过奖金池高达 300 万元的 AI Challenger 2018 比赛。与往届不同,今年的比赛共有 5 个主赛道,5 个实验赛道。其中,5 个主赛道的数据集包括:观点…

如何做好中层领导
中层经理人不论是作为一名执行者、还是一名领导者,都必须通过别人来完成任务。要做个“服众”的经理人,应该有意识地提高以下八项能力: 1. 领悟能力 做任何一件事以前,一定要先弄清楚上司希望你怎么做,然后以此为目标来…

200行代码,一行行教你自制微信机器人
参加 2018 AI开发者大会,请点击 ↑↑↑作者|上海小胖,四大咨询的TechLead,mongoDB Professional 获得者。「Python专栏」专注Python领域的各种技术:爬虫、DevOps、人工智能、Web开发等。还有「大航海计划」,各种内推活…

只有你想不到,没有它做不到——可随时变身的模块化机器人
默默单干不如灵活协作 独立单干虽自由灵活,但是和牛逼队友协作完成任务却是一件更美好、高效的事情。这不是只适用于人类社会的定律,在机器人世界里依然如此。 雷锋网消息,近日,著名英国杂志Nature Communications报道了一项关于协…

dlib 怎么安装vs2017_VS2017(Visual Studio2017) 搭建QT5开发环境
VS创建QT工程并添加到GitHub中大家好!欢迎打开并阅读本文,这次咱们说说怎么在VS中创建一个QT项目并且放到GitHub中吧因为GitHub或者码云Gitee都是一个很好的提供代码托管的地方对吧将自己的项目开源到上面,如果项目很好的话,肯定能收获到很多…

ASP.net 2.0中水晶报表迁移部署问题
asp.net 2.0的水晶报表,在迁移机器的时候,如果目标机器没有相应的程序集,在IIS中会报错。错误描述:Parser Error Description: An error occurred during the parsing of a resource required to service this request. Please re…

MySQL数据类型--------字符串类型实战
1. 背景 * MySQL支持的字符串类型有CHAR、VARCHAR、二进制、var二进制、BLOB、文本等等。 2. 字符串类型所需的存储和值范围 类型说明N的含义是否有字符集最大长度CHAR(N)定义字符字符是255VARCHAR(N)变长字符字符是16384BINARY(N)定长二进制字节字节否255VARBINARY(N)变长二进…

android怎么监听多点触摸_什么是多点触控技术,有哪些用途
自从乔布斯将触控技术用于苹果手机上,很多的手机厂商纷纷效仿,触控技术几乎成为手机的“标配”。其实,触控技术早就存在,只是一直未能大面积用于各种设备中,本文将带您认识神奇的触控技术。并非只有手机上可以看到触控…

帮AI摆脱“智障”之名,NLP这条路还有多远?
CSDN 出品的《2018-2019 中国人工智能产业路线图》V2.0 版即将重磅面世! V1.0 版发布以来,我们有幸得到了诸多读者朋友及行业专家的鼎力支持,在此表示由衷感谢。此次 V2.0 版路线图将进行新一轮大升级,内容包括 3 大 AI 前沿产业趋…

分页控件 WebPager [ZT]
两个类文件,点这里下载DLL文件>WebPager.dll1、 WebPager.csusing System;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.ComponentModel; [assembly:TagPrefix("WebPager", "wp")]namespace Xiaoqia…

typedef interrupt void (*PINT)(void)的分析
今天写程序时,在DSP2833x_PieVect.h看到typedef interrupt void (*PINT)(void)突然一愣,上网查了下发现在这是加了interrupt 中断关键字的函数指针,顺便记一下并复习一下函数指针。 本文参照下面的博客整理而来 http://blog.csdn.net/lg2lh/a…

webpack打开项目命令_配置webpack中dev.env.js、prod.env.js,解决不同命令下项目启动和打包到指定的环境...
前后端分离的项目开发中,我们有开发环境、测试环境、预生产环境和生产环境。1、开发环境下调试接口的时候,一般都会有好几个接口地址(开发服务器上的,本地的,接口开发人员的,七七八八的接口地址),要根据情况…

倒计时2天,如何搭乘通往AI全明星技术盛宴的末班车?(附大会完整版全日程)...
在操作系统、芯片领域跌倒的中国程序员,如何崛起?| 畅言GitHub服务中断24小时11分钟事故分析报告大咖指路:机器学习人才这些方向最紧缺!以太坊2.0? 亲历3天的Devcon我看到了这样一个以太坊 | 见闻录土味纪实文学 | 四十五度角仰望…
ASP.NET Web页面(.aspx)添加用户控件(.ascx)无显示的问题
写好的用户控件点击视图显示没有问题,但是将控件添加到Web窗体上时却显示如下图标:F5运行,查看源代码:有代码——但是页面却显示一片空白。分析代码,比较了一下能显示用户控件的其他web页面以及代码,发现只有如下代码不同:<script languag…