如今将使用Tomcat的一些经验和心得写到这里。作为记录和备忘。假设有朋友看到,也请指教。
1、首先是Tomcat的获取和安装。
获取当然得上Apache的官方站点下载,开源免费。并且带宽也足够。下载会非常快。
这是两种不同的下载,一个是普通安装版本号,一个是解压安装版本号。
使用起来是一样的,仅仅是在普通安装版本号中有一些界面可提供对Tomcat的快捷设置,并且普通安装会将Tomcat作为系统服务进行注冊。
2、Tomcat的执行环境搭建。
(解压版)安装(就是解压)完毕后例如以下:
Tomcat的启动是一个bat文件(Windows下),在bin文件夹下。双击就可以。
假设启动不成功。一般的情况是控制台出来一下马上消失。说明Tomcat没有找到Java的执行时环境。
简单理解。就是Tomcat找不到JDK,没办法执行。
我们“告诉”它JDK的安装路径。即在环境变量里新建JAVA_HOME(不区分大写和小写),指向安装JDK文件夹。例如以下:
这样,Tomcat就配置好了,启动就OK。
启动Tomcat,在浏览器地址栏输入http://localhost:8080/假设看到乱七八糟的关于Tomcat的介绍神马。说明配置成功。
3、Tomcat的文件夹结构介绍。
bin文件夹存放一些启动执行Tomcat的可执行程序和相关内容。
conf存放关于Tomcatserver的全局配置。
lib文件夹存放Tomcat执行或者网站执行所需的jar包,全部在此Tomcat上的网站共享这些jar包。
wabapps文件夹是默认的网站根文件夹,能够更改。
work文件夹用于在server执行时过度资源,简单来说。就是存储jsp、servlet翻译、编译后的结果。
其它文件夹和文件临时不做介绍。
4、Tomcat的默认行为。
我们的浏览器请求假设到达了Tomcat。而且请求无误,一般Tomcat会以静态页面(即html文件)的形式给与响应,这是httpserver的默认行为。
一个完整的资源请求包含:
协议(如http)
主机名(域名。如localhost、www.baidu.com)
port号(http协议默觉得80。所以我们一般向某个站点发起请求没有输入)
网站
资源位置
如http://localhost:8080/ROOT/index.jsp
那么在第二步时我们仅仅输入了域名(或者主机名)就訪问到了某个详细的页面,这是怎么回事呢?。
首先。请求会通过一些途径到达请求的主机地址并被该server(指硬件。如我们的本机电脑)上的httpserver程序获得。这一步解释起来比較麻烦,我们不做赘述,我会在其它篇幅里介绍。
比方我们输入http://localhost:8080到浏览器里。被Tomcat发现了。
如今它拿到请求,先分析我们所请求的是什么资源。
因为我们没有指定。它会到默认的网站去拿默认的页面给我们。
如今我们把过程走一遍:
server端:Tomcat监听着8080port,时时注意是否有请求过来。
client浏览器发出请求,到达了server端,因为port的分配,请求终于被Tomcat得到。
Tomcat解析请求的资源,发现没有指定须要的是哪个网站下的哪个资源。
Tomcat在默认的网站下把默认的页面返回给client浏览器作为响应。
5、更改Tomcat默认配置。
①、改动Tomcat监听port。
我们都有过訪问站点的经历。我们一般仅仅输入了域名对吧。那么如果我们如今作为网络服务提供者。将要对外公布站点,我们怎么让用户仅仅输入我们的域名就能看到我们为他/她准备的网页呢?
首先我们须要将监听port设置为80。道理非常easy,用户不会在浏览器输入:8080来訪问站点,浏览器也不会自己主动将请求发送到server的8080port。
在%TOMCAT_HOME%(下面代指Tomcat的安装路径)下的conf文件夹下的server.xml文件里改动。
这个文件中东西不少,事实上大家不必在意。为什么呢?你把凝视删除后再把整个xml看作一个对象。是吧,每一个节点是一个属性,这个属性又可能是一个对象。它里面有属性……要这样去理解,或者直接觉得是Tomcat的配置信息到也没错。
这样,就不用输入:8080了。
②、改动默认网站。
首先说,网站是具有特定结构的目录。这一点在Tomcat里表现得极为清晰。
网站。在server上肯定是用目录(即目录结构)来存储和管理的。可是它和普通的目录又不同。在Tomcat里,可用于作为网站的目录必须有例如以下特点:拥有一个名为WEB-INF的子目录。该子目录下必须有一个名为web.xml的文件,并且该xml文件必须受约束与特定的DTD。
我们先配置或者说叫创建一个网站,再将其设置为默认网站。
配置网站:创建目录,创建WEB-INF子目录,创建web.xml,完毕。web.xml内容能够參考webapps/ROOT/WEB-INF/web.xml。
设置为默认网站:
这里须要分为两步运行。
告诉Tomcat当请求哪个网站时(或者说在域名后面跟的是什么名字),你来找我。
告诉Tomcat我在哪里。
上图已经将两步配置好了(实际上Tomcat默认加上了将空网站指向ROOT的代码)。我们的d:/myweb:
假设你的网站存放在webapps文件夹下,能够使用相对路径,比方,我们将d:/myweb整个拷到%TOMCAT_HOME%/webapps下。上图的docBase非常明显就不须要加上d:/了。
我在index.html里写了几句话。然后结果出来了:
③、改动默认页面。
在上面。我们还算是中规中矩。依照常理出牌,谢了index.html。
那么假设没有写呢?Tomcat会怎么做呢?
请大家找到conf/web.xml。
这个文件是对全部网站的共同属性做出了设置。
比方大家看文件结尾处:
这个叫做欢迎页面。当没有输入资源地址时,会由上至下地查找,获取页面。进行响应。
非常清楚了吧。修改它就能够。可是不建议在这里改,会是全部网站设置变化,你应该将其拷贝到你须要修改的网站下的web.xml,进行设置。
6、虚拟主机的配置。
所谓虚拟主机,就是将一个或多个主机名(域名)和Tomcat所在的server进行绑定。因为一个IP能够和多个域名进行帮定,我们大能够将不同的域名指向server(指硬件)上的不同目录。造成一个server(或者一个IP)多个主机的“虚拟主机”效果。
这个实现起来相当的简单。
仅仅须要在server.xml文件里新建Host节点。将其属性进行不同设置就可以。
1 #你的主机名(域名)1
2 <Host name="localhost" appBase="webapps"
3 unpackWARs="true" autoDeploy="true"
4 xmlValidation="false" xmlNamespaceAware="false">
5 </Host>
6 #你的域名2
7 <Host name="www.coderecord.org" appBase="主机空间地址"
8 unpackWARs="true" autoDeploy="true"
9 xmlValidation="false" xmlNamespaceAware="false">
10 #域名3能够和域名2共用一个主机空间
11 <alias>coderecord.org</alias>
12 <Context path="" docBase="网站地址" debug="1" reloadable="true" allowLinking="true" />
13 </Host>
以上配置信息依据Tomcat的版本号不同而不同。