赞
踩
最近在学Java Web,用到Tomcat。
安装Tomcat前需要安装JDk或JRE(高版本的jre已经一起打包在JDK安装包里面,如果用1.3的话,还需要自己安装JRE。)。
tomcat仅仅依赖与JRE,因为作为JAVA产品,运行时有JAVA运行时环境就足够了,tamcat的JAVA类都已经编译好并封装了 。
Tomcat 5.5及以前的版本,我们都必须安装JDK,因为Tomcat Jasper需要使用JDK去编译jsp(翻译后的java文件),Tomcat 6的jasper在新的版本
已经做了重新的设计,也就是说,以后在生产机上安装tomcat的时候,不再需要去安装一个JDK了,只需要安装一个JRE就可以!
获取当然得上Apache的官方网站下载,开源免费,而且带宽也足够。下载会很快。
这是两种不同的下载,一个是普通安装版本,一个是解压安装版本。使用起来是一样的,只是在普通安装版本中有一些界面可提供对Tomcat的快捷设置,而且普通安装会将Tomcat作为系统服务进行注册。
(若Tomcat解压后,启动bin目录的startup.bat一闪而过这是没有搭建环境变量)
(解压版)安装(就是解压)完成后如下:
Tomcat的启动是一个bat文件(Windows下),在bin目录下。双击即可。
如果启动不成功,一般的情况是控制台出来一下立即消失,说明Tomcat没有找到Java的运行时环境。
解决方法:
1)、Tomcat 7.0 的免安装版的配置(假如将Tomcat 解压到C:\Program Files目录,目录结构为:C:\ProgramFiles\apache-tomcat-7.0.11
2)、添加环境变量:在 我的电脑->属性->高级->环境变量
3)、新建系统变量,
变量名:TOMCAT_HOME 变量值:C:\Program Files\apache-tomcat-7.0.11 (Tomcat 解压到的目录)。
(如果只是让Tomcat作为服务器下面一步可有可无)
4)、Tomcat 7.0的管理员的配置,进入C:\Program Files\apache-tomcat-7.0.11(Tomcat目录)下的conf目录,编辑tomcat-users.xml,找到最后的:
<!--
<rolerolename="tomcat"/>
<role rolename="role1"/> <user username="tomcat"password="tomcat" roles="tomcat"/>
<user username="both"password="tomcat" roles="tomcat,role1"/>
<user username="role1"password="tomcat" roles="role1"/>
-->
在上面这段后面 添加上:
<rolerolename="manager-gui"/>
<rolerolename="admin-gui"/>
<user username="admin"password="admin888" roles="admin-gui"/>
<user username="tomcat"password="tomcat" roles="manager-gui"/>
到这应该知道我们添加的管理员的用户名和密码是多少了吧!
5)、进入Tomcat 目录下的bin目录,双击startup.bat 启动Tomcat 在
命令行窗口会出来英文提示。
6)、浏览器输入:http://localhost:8080 可以看到Tomcat的欢迎页面就(若无法显示,可能是端口被占用,更改即可)
说明配置成功了,点击右上角上manager连接,输入上面配置的用户名和密码,
就可以进入管理页面。
注意:
若出现 解压缩完了运行tomcat7.exe屏幕一闪就没了 运行tomcat7w.exe弹出个筐
指定的服务并未以已安装的服务存在 Unable to open the Service 'tomcat6'
我安装了tomcat7,双击startup.bat可以正常启动Tomcat,也可以显示http://localhost:8080/,但是貌似安装版的不好用。卸载之后,也把tomcat的一些服务给卸载了。双击绿色版的tomcat7w.exe却出现"指定的服务并未以已安装的服务存在","Unable to open the
service"Tomcat6"。
后来找到了原因,原来是没有安装此项服务。具体安装方法:打开命令行提示符窗口
=> 进入Tomcat安装目录==> 进入bin目录下==> 输入:service.bat install 即可
情况:Tomcat解压后,启动bin目录的startup.bat正常,但是启动tomcat7.exe却启动不了,为什么?
tomcat7.exe与startup.bat的区别:
1)、这两个都可以启动tomcat,但tomcat7.exe必须安装了服务才能启动,而startup.bat不需要
2)、另外一个区别是它们启动所使用的Java环境配置是分开的
tomcat7.exe启动所使用JAVA配置与服务启动所使用的JAVA配置一样,都是通过tomcat7w.exe的JAVA面板配置(可以在创建服务前修改service.bat文件的JAVA_HOME变量来指定初始的JVM,该JAVA面板的所有配置项都是从service.bat文件初始化的。)
bin目录存放一些启动运行Tomcat的可执行程序和相关内容。
conf存放关于Tomcat服务器的全局配置。
lib目录存放Tomcat运行或者站点运行所需的jar包,所有在此Tomcat上的站点共享这些jar包。
wabapps目录是默认的站点根目录,可以更改。
work目录用于在服务器运行时过度资源,简单来说,就是存储jsp、servlet翻译、编译后的结果。
其他目录和文件暂时不做介绍。
我们的浏览器请求如果到达了Tomcat,并且请求无误,一般Tomcat会以静态页面(即html文件)的形式给与响应,这是http服务器的默认行为。
一个完整的资源请求包括:
协议(如http)
主机名(域名,如localhost、www.baidu.com)
端口号(http协议默认为80,所以我们一般向某个网站发起请求没有输入)
站点
资源位置
如http://localhost:8080/ROOT/index.jsp
那么在第二步时我们只输入了域名(或者主机名)就访问到了某个具体的页面,这是怎么回事呢?。
首先,请求会通过一些途径到达请求的主机地址并被该服务器(指硬件,如我们的本机电脑)上的http服务器程序获得。这一步解释起来比较麻烦,我们不做赘述,我会在其他篇幅里介绍。
比如我们输入http://localhost:8080到浏览器里。被Tomcat发现了。
现在它拿到请求,先分析我们所请求的是什么资源。由于我们没有指定,它会到默认的站点去拿默认的页面给我们。
现在我们把过程走一遍:
服务器端:Tomcat监听着8080端口,时时注意是否有请求过来。
客户端浏览器发出请求,到达了服务器端,由于端口的分配,请求最终被Tomcat得到。
Tomcat解析请求的资源,发现没有指定需要的是哪个站点下的哪个资源。
Tomcat在默认的站点下把默认的页面返回给客户端浏览器作为响应。
①、修改Tomcat监听端口。
我们都有过访问网站的经历。我们一般只输入了域名对吧,那么假设我们现在作为网络服务提供者,将要对外发布网站,我们怎么让用户只输入我们的域名就能看到我们为他/她准备的网页呢?
首先我们需要将监听端口设置为80,道理很简单,用户不会在浏览器输入:8080来访问网站,浏览器也不会自动将请求发送到服务器的8080端口。
在%TOMCAT_HOME%(以下代指Tomcat的安装路径)下的conf目录下的server.xml文件中修改。
这个文件里东西不少,其实大家不必在意。为什么呢?你把注释删除后再把整个xml看作一个对象,是吧,每个节点是一个属性,这个属性又可能是一个对象,它里面有属性……要这样去理解,或者直接认为是Tomcat的配置信息到也没错。
这样,就不用输入:8080了。
②、修改默认站点。
首先说,站点是具有特定结构的文件夹。这一点在Tomcat里表现得极为清晰。
站点,在服务器上肯定是用文件夹(即目录结构)来存储和管理的。但是它和普通的文件夹又不同,在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,进行设置。
所谓虚拟主机,就是将一个或多个主机名(域名)和Tomcat所在的服务器进行绑定。由于一个IP可以和多个域名进行帮定,我们大可以将不同的域名指向服务器(指硬件)上的不同文件夹,造成一个服务器(或者一个IP)多个主机的“虚拟主机”效果。
这个实现起来相当的简单。只需要在server.xml文件中新建Host节点,将其属性进行不同设置即可。
1 #你的主机名(域名)1
2<Hostname="localhost" appBase="webapps"
3 unpackWARs="true" autoDeploy="true"
4 xmlValidation="false" xmlNamespaceAware="false">
5</Host>
6 #你的域名2
7<Hostname="www.coderecord.org" appBase="主机空间地址"
8 unpackWARs="true" autoDeploy="true"
9 xmlValidation="false" xmlNamespaceAware="false">
10 #域名3可以和域名2共用一个主机空间
11 <Alias>coderecord.org</Alias>
12 <Contextpath="" docBase="站点地址" debug="1" reloadable="true" allowLinking="true"/>
13</Host>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。