JavaWeb之Tomcat
Tomcat 简介
Tomcat 是一个免费的开放源代码的 Servlet 容器,它是 Apache 软件基金会的一个顶级项目,由 Apache,Sun和其他一些公司及个人共同开发而成。由于有了 Sun 的参与与支持,最新的 Servlet 和 JSP 规范总是能在 Tomcat 中的到体现。
Tomcat 的目录结构
bin:存放启动和关闭 Tomcat 的脚本文件
conf:存放 Tomcat 服务器的各种配置文件
lib:存放 Tomcat 服务器和所有 web 应用程序需要访问的 jar 文件
logs:存放 Tomcat 的日志文件
temp:存放 Tomcat 运行时产生的临时文件
workapps:当发布 web 应用程序时,通常把 web 应用程序的目录及文件放到这个目录下
work:Tomcat 将 JSP 生成的 Servlet 源文件和字节码文件放到这个目录下
Tomcat运行
1. 配置 java_home 或 jre_home;
2. 双击 bin 目录下的 startup.bat 文件,执行 startup.bat ,实际上执行的是 catalina.bat;
3. 在地址栏中输入 http://localhost:8080/;
4. 双击 bin 目录下的 shutdown.bat 文件关闭 Tomcat 服务器
备注:
1. 若想在任意目录下都能启动 Tomcat,则需设置 CATALINA_HOME 环境变量
2 直接执行 catalina.bat 时需要带上命令行参数,常用的参数是start,run 和 stop
配置Tomcat 的端口号
1. 修改 Tomcat 默认的端口号:
打开 conf 目录下的 server.xml 文件
Tomcat 的管理程序
Tomcat 提供了一个管理程序:manager,用于部署到 Tomcat 服务器中的 web 应用程序。要访问 manager web 应用程序,需要添加具有管理员权限的账号,编辑 conf 目录下的 tomcat-users.xml 文件,添加 manager 角色,设置用户名和密码
Web 程序结构
一个 web 应用程序是由一组 Servlet,HTML 页面,类,以及其它的资源组成的运行在 web 服务器上的完整的应用程序,以一种结构化的有层次的目录形式存在。组成 web 应用程序的这些文件要部署在相应的目录层次中,根目录代表整个 web 应用程序的”根”。通常将 web 应用程序的目录放在 webapps 目录下,在 webapps 目录下的每一个子目录都是一个独立的 web 应用程序,子目录的名字就是 web 应用程序的名字,也就是 web 应用程序的“根”。用户通过 web 应用程序的”根”来访问 web 应用程序中的资源。
WebDemo
|----WEB-INF
| |----classes
| |----lib
| |----web.xml
|----index.jsp
WebDemo:Web应用程序的根目录,属于此Web应用程序的所有文件都存放在这个目录下
WEB-INF:存放Web应用程序的部署描述符文件web.xml,WEB-INF目录下的classes和lib目录都可以存放Java的类文件,在Servlet容器运行时,Web应用程序的类加载器将首先加载classes目录下的,其次才是lib目录下的类。如果这两个目录下存在同名的类,起作用的将是classes目录下的类。WEB-INF 是一个特殊的目录(所有字母都要大写)。这个目录并不属于Web应用程序可以访问的上下文路径的一部分,对客户端来说,这个目录是不可见的。但该目录下的内容对于Servlet代码是可见的 。
classes:存放Servlet和其他有用的类文件
lib:存放Web应用程序需要用到的JAR文件,这些JAR文件中可以包含Servlet、Bean和其他有用的类文件
web.xml:web.xml文件包含Web应用程序的配置和部署信息
index.jsp:Web页面文件
配置任意目录下的Web应用程序
配置方法一:
在Web服务器中可以配置虚拟目录,而虚拟目录所对应的真实目录可以在任何路径下。在Tomcat服务器中,主要在 XML 配置文件中通过<Context>元素的设置来完成的。一个<Context>元素就表示一个Web应用程序,运行在特定的虚拟主机中。 <Context>元素是<Host>元素的子元素,可以在conf\server.xml文件中设置Context元素。 <Context>元素是<Host>元素的子元素,可以在conf\server.xml文件中设置Context元素。使用docBase属性指定Web应用程序的真实路径。将属性reloadable设置为true,Tomcat在运行时会自动监测Servlet类的改动,如果发现有类被更新,Tomcat服务器将自动重新加载该Web应用程序。这样,在开发时,就不需要频繁重启Tomcat了。
备注【Context元素的常用属性】:
配置方法二:
可以在conf目录下依次创建Catalina\localhost目录,然后在localhost目录下为 WebDemo 这个Web应用程序建立 WebDemo.xml 文件,编辑这个文件输入以下内容:
<?xml version="1.0" encoding="UTF-8"?> <Context docBase="D:/WebDemo" reloadable="true"/>
从Tomcat 5开始,不建议直接在server.xml文件中配置<Context>元素,因为server.xml文件作为Tomcat的主要配置文件,一旦Tomcat启动后,将不会再读取这个文件,因此无法在Tomcat服务器启动时发布Web应用程序。如果在其他地方配置<Context>元素,那么在Tomcat运行时,也可以发布Web应用程序。从Tomcat 5.5开始,在\conf\Catalina\localhost目录下创建XML配置文件来配置Web应用程序,Tomcat将以XML文件的文件名将作为Web应用程序的上下文路径,而不理会在<Context>元素的path属性中指定的上下文路径是什么。由于Tomcat 5.5之后的版本是以XML配置文件的文件名作为Web应用程序的上下文路径的,因此在配置<Context>元素时,可以不使用path属性。
reloadable:当修改了 docBase 下的 classes 目录下的 class 文件时, tomcat 服务器是否会重新加载 WEB 应用