保姆级 tomcat 快速入门

背景介绍
Apache Tomcat 是 Java Servlet、JavaServer Pages (JSP)、Java 表达式语言和 Java 的 WebSocket 技术的一个开源实现 ,通常我们将 Tomcat 称为 Web 容器或者 Servlet 容器 。
tomcat 各版本和相应规范的映射关系:

下载地址
下载到本地并解压:

进入主目录:

tomcat 目录介绍
bin
启动,关闭和其他脚本。这些 .sh 文件(对于 Unix 系统)是这些.bat 文件的功能副本(对于 Windows 系统)。由于 Win32 命令行缺少某些功能,因此此处包含一些其他文件。
比如说:windows 下启动 tomcat 用的是 startup.bat,另外 Linux 环境中使用的是 startup.sh。对应还有相应的 shutdown 关闭脚本。
conf
tomcat 的配置文件和相关的 DTD。这里最重要的文件是 server.xml。它是容器的主要配置文件。
catalina.policy
:tomcat:安全策略文件,控制 JVM 相关权限,具体可以参考 java.security.Permission。
catalina.properties
:tomcat Catalina 行为控制配置文件,比如:Common ClassLoader。
logging.properties
:tomcat 日志配置文件。里面的日志采用的是 JDK Logging。
server.xml
:tomcat server 配置文件(对于我开发人员来说是非常重要)。
context.xml
:全局 context 配置文件,监视并加载资源文件,当监视的文件发生发生变化时,自动加载 。
tomcat-user.xml
:tomcat 角色配置文件。
web.xml
:Servlet 标准的 web.xml 部署文件,tomcat 默认实现部分配置 入内:
org.apache.catalina.servlets.DefaultServlet。
org.apache.jasper.servlet.JspServlet
logs
日志文件默认位于此处。
localhost
有用,当你们的 tomcat 启动不了的时候,多看这个文件。比如:
NoClassDefFoundError
ClassNotFoundException
access
最没用。
catalina.{date}
主要是控制台输出,全部日志都在这里面。
webapps
这是您的 webapp 所在的位置。其实这里面这几个都是一个项目。
简化 web 部署的方式。在线上环境中我们的应用是不会放在这里的。最好的办法就是外置。
lib
tomcat 存放共用的类库。比如:
ecj-4.17.jar: eclipse Java 编译器
jasper.jar:JSP 编译器。
work
存放 tomcat 运行时编译后的文件,比如 JSP 编译后的文件 。
temp
存放运行时产生的临时文件。
启动 tomcat
启动 tomcat
我们在 windows 下的就直接启动 bin 目录下的 startup.bat,对应 Linux 环境中我们使用的是 startup.sh。
双击就能启动了。控制台会输 8080 端口,然后我们访问:
页面展示:

这就代表着我们的 tomcat 启动成功了。
此时,http://localhost:8080/
请求到的是 ROOT 目录。
比如:我们还可以http://localhost:8080/manager
Servlet 项目部署到 tomcat 中
创建 web 项目
使用 maven 创建 web 项目,既然说 tomcat 是 Servlet 容器,那么在项目中创建一个 Servlet 类,然后打成 war 包,拷贝到 tomcat 中部署。
项目结构如下:

添加依赖
创建 DemoServlet
web.xml 什么都没有,仅仅就是为了打包。
index.jsp 找那个也没什么内容:
使用 mvn 命令打成 war 包。

把打成的 war 包拷贝(其实拷贝 my-web-maven 文件夹也是一样的)到 tomcat 中 webapps 目录下:

然后到 bin 目录下,双击

项目运行起来后,访问 http://localhost:8080/

证明我们的项目已经启动成功了。
接下来我们访问我们写的 Servlet:
http://localhost:8080/demo?message=hello

报错,HTTP 状态 404 - 未找到;
注意:这里访问的时候,我们需要把项目名称当做 contextPath,即访问方式应该是:
页面上输出
hello
轻松搞定,这样我们的项目就成功的部署到 tomcat 中。
IDEA 中的项目部署到 tomcat 中
创建一个 servlet 项目,项目名称 my-servlet。


新建一个类 MyServlet

进入我们刚刚安装的 tomcat 目录,进入到 lib 目录中,选中 servlet-api.jar。



点击 ok。

点击 Apply,然后点击 OK。
修改 MyServlet 内容:
修改 web.xml 文件内容:
另外我们把 index.jsp 内容修改一下,主要是为了更好的演示:
IDEA 集成 tomcat
在我们的 IDEA 中添加我们安装的 tomcat:


来到 tomcat 配置 的界面:

配置 tomcat:

进入安装目录:

点击 OK,

然后进入 deployment 栏目:

添加我们创建的 servlet 项目:

自动就添加了我们的项目:

然后点击 Apply,再点击 OK。
IDEA 集成 tomcat,以及把我们项目给关联起来了。下面我们就来运行一下:

启动 tomcat
点击绿色三角:

证明我们的项目在 tomcat 中已经启动成功。

访问我们的 servlet
此时,我们就可以来访问我们的 servlet 了。
访问:http://localhost:8080/ 页面显示就是我们前面修改的 index.jsp 的内容。
再访问我们自己写的 Servlet:

成功的把我们的内容给输出来了。好了本文内容就这些,简单式 tomcat 入门。
总结
tomcat 是什么,tomcat 如何安装,如何启动 tomcat,如何部署我们自己的 Servlet 项目,我们在 IDEA 如何集成 tomcat 以及如何启动 tomcat。
「人只要不失去方向,就不会失去自己
」
版权声明: 本文为 InfoQ 作者【田维常】的原创文章。
原文链接:【http://xie.infoq.cn/article/6bf7bbab0ad64ffa7df87a6a7】。文章转载请联系作者。
评论