Tomcat作为一名开发人员来说已经是再熟悉不过了,我们几乎每天都会与其打交道,无论是测试还是开发,甚至是生产环境。然而我相信大部分开发和测试人员仅仅是使用Tomcat,对其更深层次的研究寥寥无几,其实我也一样。
没关系!我们从基础开始系统的学习一下Tomcat的使用及高级应用。
1.Tomcat是什么?
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。目前最新版本是8.0。
Tomcat在严格意义上并不是一个真正的应用服务器,它只是一个可以支持运行Serlvet或JSP的Web容器,不过Tomcat也扩展了一些应用服务器的功能,如JNDI,数据库连接池,用户事务处理等等。
Tomcat在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选,目前Tomcat被非常广泛的应用在中小规模的Java Web应用中。
2.Tomcat的下载
Apache Tomcat官网:http://tomcat.apache.org/
从官网可以下载最新版本的Tomcat,也可以查看该版本对应的文档教程:
选定所需版本后(以8.0为例), 点击Tomcat主页左部导航栏中的“Download”下“Tomcat 8.0”链接,进入Tomcat 8的下载页面。
下载页面中,Tomcat又分可执行文件版和源代码版,正常情况下我们只需要下载可执行文件版中Croe所列即可(默认的本文已最新的Tomcat 8.0.21为例)。我们还可以根据不同的操作系统或需求下载不同的版本。
在下载链接的Core列表中列出了不同版本的Tomcat应用,如图:
一般情况下只需要下载zip或tar压缩版即可,类似与绿色免安装版。
3.Tomcat目录结构
下载解压缩之后,会呈现如下目录结构。
|--bin 存放启动和关闭等相关脚本
|--conf 存放相关配置文件(server.xml和web.xml等)
|--doc 存放Tomcat文档(需下载)
|--lib 存放Tomcat运行需要的库文件(jar文件)
|--logs 存放Tomcat执行时产生的log文件
|--src 存放Tomcat的源代码(需下载)
|--webapps Web应用默认发布目录(默认包含Tomcat示例)
|--work 存放Tomcat工作产生的class文件
以下是几个重要目录的简单介绍:
bin:存放的是Tomcat的启动、停止、调试等bat、sh可执行文件,.bat文件对应于windows系统,.sh文件对应于Linux系统,如:startup.sh、version.sh。
conf:用于存放Tomcat的各种配置文件,如权限相关,服务器配置相关等。
lib:放置Tomcat运行所需的jar包和Tomcat的相关类库,我们也可以将公用jar包复制到lib下
logs:Tomcat运行时产生的日志文件默认放置在此文件夹中,例如:catalina.out
webapps:Web应用的程序默认放置目录,新下载的Tomcat会包含示例,可以根据情况删除
work:由Tomcat自动生成,work文件是Tomcat运行期间的中间(intermediate)文件(诸如编译的JSP文件)放置的地方。一般情况下重启Tomcat时需要删除此文件下所有内容,已防止缓存的情况。
Tomcat相关的目录结构基本已经清晰,更深入的内容将在后面一起学习。
4.Tomcat的启动
1)Tomcat启动需要Java的支持,所以在启动前需要检查下Java环境配置:
echo $JAVA_HOME(Linux下) 显示结果:/usr/java/jdk1.7.0_67 echo %JAVA_HOME%(Windows下) 显示结果:C:\Program Files\Java\jdk1.7.0_67
2)在命令行状态下进入Tomcat/bin目录下,运行启动脚本:
./startup.sh(Linux下) 显示结果: Using CATALINA_BASE: /usr/local/apache-tomcat-8.0.21 Using CATALINA_HOME: /usr/local/apache-tomcat-8.0.21 Using CATALINA_TMPDIR: /usr/local/apache-tomcat-8.0.21/temp Using JRE_HOME: /usr/java/jdk1.7.0_67 Using CLASSPATH: /usr/local/apache-tomcat-8.0.21/bin/bootstrap.jar startup.bat(Windows下) 显示结果: Using CATALINA_BASE: "D:\apache-tomcat-8.0.21" Using CATALINA_HOME: "D:\apache-tomcat-8.0.21" Using CATALINA_TMPDIR: "D:\apache-tomcat-8.0.21\temp" Using JRE_HOME: "C:\Program Files\Java\jdk1.7.0_67" Using CLASSPATH: "D:\apache-tomcat-8.0.21\bin\bootstrap.jar"
3)启动成功后通过浏览器进入http://localhost:8080/地址进行验证,如果显示Tomcat的默认欢迎页面表示启动成功!
显示如下画面表示已经成功启动:
4)如果没有显示Tomcat默认首页,说明Tomcat启动失败,此时需要查看一下Tomcat的日志,进入Tomcat的logs目录,在Windows下用记事本等工具直接打开catalina.out 文件即可;Linux下可以使用tail -行数 catalina.out命令查看。
发现在启动过程中,Tomcat报如下错误:
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/catalina/startup/Bootstrap : Unsupported major.minor version 51.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) at java.lang.ClassLoader.defineClass(ClassLoader.java:615) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) Could not find the main class: org.apache.catalina.startup.Bootstrap. Program will exit.
这说明你所安装的JDK版本低于1.7,只需要升级至1.7或更高即可。
5.关闭Tomcat
关闭Tomcat只需要调用shutdown.sh或shutdown.bat脚本即可,调用方法与启动相同:
shutdown.bat(Windows下) 显示结果: Using CATALINA_BASE: "D:\apache-tomcat-8.0.21" Using CATALINA_HOME: "D:\apache-tomcat-8.0.21" Using CATALINA_TMPDIR: "D:\apache-tomcat-8.0.21\temp" Using JRE_HOME: "C:\Program Files\Java\jdk1.7.0_67" Using CLASSPATH: "D:\apache-tomcat-8.0.21\bin\bootstrap.jar;D:\apache-tomcat-8.0.21\bin\tomcat-juli.jar" shutdown.sh(Linux下) 显示结果: Using CATALINA_BASE: /usr/local/apache-tomcat-8.0.21 Using CATALINA_HOME: /usr/local/apache-tomcat-8.0.21 Using CATALINA_TMPDIR: /usr/local/apache-tomcat-8.0.21/temp Using JRE_HOME: /usr/java/jdk1.7.0_67 Using CLASSPATH: /usr/local/apache-tomcat-8.0.21/bin/bootstrap.jar;/usr/local/apache-tomcat-8.0.21/bin/tomcat-juli.jar
如果关闭失败,Tomcat会额外显示关闭失败的信息,这些信息也可以在日志文件catalina.out 末尾找到。
本篇文章旨在让大家了解Tomcat,更多深入内容会在后面有针对性的讲解。
相关推荐
传智播客_张孝祥_java.web_Tomcat入门第1讲(共4个part ,这是第4个)
### Jenkins+Maven+svn+Tomcat入门文档 #### Maven **基本介绍** Maven是一种基于项目对象模型(Project Object Model, POM)的软件项目管理工具,它可以帮助开发者通过少量的描述信息来管理和构建项目,包括编译...
传智播客_张孝祥_java.web_Tomcat入门第5讲(共4个part ,这是第4个)
传智播客_张孝祥_java.web_Tomcat入门第2讲(共4个part ,这是第3个)
传智播客_张孝祥_java.web_Tomcat入门第7讲(共3个part ,这是第3个)
传智播客_张孝祥_java.web_Tomcat入门第4讲(共5个part ,这是第5个)
传智播客_张孝祥_java.web_Tomcat入门第1讲(共4个part ,这是第1个)
传智播客_张孝祥_java.web_Tomcat入门第3讲(共4个part ,这是第2个)
传智播客_张孝祥_java.web_Tomcat入门第7讲(共3个part ,这是第1个)
传智播客_张孝祥_java.web_Tomcat入门第2讲(共4个part ,这是第2个)
传智播客_张孝祥_java.web_Tomcat入门第4讲(共5个part ,这是第1个)
传智播客_张孝祥_java.web_Tomcat入门第1讲(共4个part ,这是第3个)
传智播客_张孝祥_java.web_Tomcat入门第6讲(共3个part ,这是第3个)
传智播客_张孝祥_java.web_Tomcat入门第1讲(共4个part ,这是第2个)
传智播客_张孝祥_java.web_Tomcat入门第2讲(共4个part ,这是第1个)
传智播客_张孝祥_java.web_Tomcat入门第6讲(共3个part ,这是第1个)
传智播客_张孝祥_java.web_Tomcat入门第5讲(共4个part ,这是第1个)