一、Tomcat 常见启动问题
1、Java_Home 环境变量。如果是非安装版本的话,就需要指定 Java_Home 环境变量。因为 Tomcat 本身是 Java 写的一个应用,所以需要 Java 虚拟机的支持,所以需要将 Java_Home 的变量值设置为 Java 的安装路径。
2、端口占用问题。由于 Tomcat 是基于 HTTP 协议设计的。一般来说会运行在 80 端口。但是在开发阶段一般运行在 8080 端口,如果有程序占用了端口,就导致 Tomcat 无法启动。配置 Tomcat 运行端口:在 Tomcat 的 conf/Server.xml 中(该配置文件决定了 Tomcat 如何启动) Connector 标签的 port 属性进行更改。
3、Catalina_Home 环境变量用于向系统指定 Tomcat 在哪里,如果配置了这个环境变量,那么在任意位置启动 Tomcat 时,都会按照 Catalina_Home 中指定的路径启动 Tomcat。一般不建议设置该环境变量。
二、Tomcat 服务器的组成目录
三、Web 应用程序
1、Web 应用程序是指供浏览器访问的程序,通常也简称 Web 应用。一个 Web 应用由多个静态 Web 资源和动态 Web 资源组成。如:(htm、css、js)、(Jsp、Java 程序、支持 jar 包)、(配置文件等等……),组成 Web 应用的这些文件通常我们会使用一个目录组织,这个目录称为 Web 应用所在目录。
2、Web 应用开发好后,若想供外界访问,需要把 Web 应用所在目录交给 Web 服务器管理,这个过程称为虚拟目录的映射。
四、Web 虚拟目录的映射
1、手动映射:
(1) 在 Tomcat 目录下的 conf/server.xml 中的 <Host></Host> 标签内,加入子标签 <Context path="/name" docBase="appDir" /> ,其中 name 为一个自定义的虚拟目录名,appDir 为 Web 应用的目录。(该方法必须重启服务器,所以不建议使用)
(2) 在 Tomcat 目录下的 conf/context.xml 文件中配置 <Context> 标签。(该方法会在所有 Web 应用中加载,被所有 Web 应用所共享)
(3) 在 Tomcat 目录下的 conf/[引擎]/[主机] 目录下写一个 context.xml 文件,在文件中写入
<Context path="/name" docBase="appDir" /> (该方法会被这个主机下的所有 Web 应用所加载,不用重启服务器)
(4) 在 Tomcat 目录下的 conf/[引擎]/[主机] 目录下写一个 xxx.xml,这个文件的名称(xxx)会被用作虚拟目录名(contex path)。多级虚拟目录可以为 xxx#yyy#zzz.xml。默认跟页面可以命名为: ROOT.xml 前提是该 Web 应用存在默认首页。
<Context docBase="appDir" />(不用重启服务器)
2、自动映射:
(1) 将 Web 应用拷贝到 Tomcat 的 webapps 目录下(Tomcat webapps 目录下的 Web 应用可以直接被外界访问)
原理:在 Tomcat 的 conf/server.xml 文件中的 <Host> 标签中,有一个 autoDeploy="true" 的属性。
五、Web 应用的组成结构
WEB-INF/classes 存放 .class 文件, WEB-INF/lib 存放 Web 应用所用的 jar 包,WEB-INF/web.xml 是整个 Web 应用的配置信息
六、web.xml 文件
web.xml 文件是整个 Web 应用中最重要的配置文件,它必须存放在 WEB-INF 目录中。在开发 Web 应用时,但凡涉及到对 Web 应用中的 Web 资源进行配置,通通是在 web.xml 文件中进行设置。例如:将 Web 资源配置为网站首页、将 Servlet 程序映射到某个 URL 地址上,为 Web 应用配置监听器、为 Web 应用配置过滤器等……
例:配置一个网站首页,在 web.xml 文件中的 <web-app> 标签内,增加
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
七、配置虚拟主机
在一个 Tomcat 服务器中国红可以放置多个网站,所谓配置虚拟主机就是在 Tomcat 服务器中配置一个网站。
1、如需在 Web 服务器中配置一个网站,需要用 <Host> 元素进行配置。如:
<Host name=www.sina.com appBase="d:\sina\">
<Context path="/news" docBase="d:\sina\news" />
</Host>
注意:这样访问是访问不到你本地的资源的,因为浏览器先从本地中的 HOST 文件中读取 IP,如果没有相关信息,则向 DNS 服务器获取对应的主机 IP 地址,如果有对应信息,则直接获取本地资源
2、配置缺省的虚拟主机
在 Tomcat 下的 conf\server.xml 中的 <Engine> 标签中增加 defaultHost="主机名" 属性