1.Tomcat 基础
1.1.简介
Tomcat是Apache软件基金会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/JSP等少量JavaEE规范。
1.2.下载安装
可以从 下载合适的版本进行安装。
注意,不同的版本需要不同版本的 java(JDK)运行环境支持,具体的版本支持列表可以看。
解压后运行根目录下的/bin/startup.bat
即可启动 Tomcat。
Linux 系统运行
/bin/startup.sh
。如果出现闪退的情况,可以检查环境变量
JAVA_HOME
是否设置正确。
启动后控制台会输出监听的端口信息:
开始协议处理句柄["http-nio-8081"]
访问对应的端口即可,比如我这里是 http://localhost:8081/。
1.3.配置
可以修改配置文件/conf/server.xml
来修改默认的监听端口:
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8" />
1.4.部署
部署 Web 应用到 Tomcat 有两种方式,一种是直接将资源文件组成的目录放在/webapps
下,另一种是将 war 包放在 /webapps
目录下。
1.4.1.资源文件目录
提供一个示例项目,下载解压后将目录直接复制到/webapps
下。
然后访问 http://localhost:8081/hello2/a.html 就可以看到页面。
1.4.2.war 包
提供一个示例 war 包,直接将这个 war 包放到 /webapps
下。等一会刷新就能看到 Tomcat 将其自动解压并生成对应的 /webapps/haha
目录。
访问 http://localhost:8081/haha/a.html 就能看到页面。
2.Maven 创建 Web 项目
2.1.目录结构
目录结构分为在 Maven 项目开发阶段的工程目录,以及打包成 war 后在 Tomcat 部署并自动解压后的结构。
工程目录的结构:
war 包解压后的结构:
2.2.Idea 中创建 Maven Web 项目
有两种方式,一种是在创建 Maven 项目时使用“模版”maven-archetype-webapp
。
Idea 需要从远程读取模版列表,有时候会网络连接失败(可以查看 help-> show log in ...),会一直卡在模版列表刷新上,此时需要重启 Idea 多尝试几次。
使用 Maven 模版创建项目,在构建项目框架阶段,Maven 还需要从中央仓库读取模版的详细内容,这是一个 XML 配置文件,有几 M 大小。因为国内访问中央仓库速度非常慢,所以经常会卡死在这一步。
实际上在 Maven 使用模版构建项目的时候,可以通过参数 archetypeCatalog 指定从哪里加载模版内容,有三个可选项:
-
remote
-
internal
-
local
其中的 remote 选项就是从中央仓库加载模版,可以修改为使用其他两种方式。
具体可以参考。
通过该模版创建好的项目在/src/main
目录下还缺少java
和resources
目录,自行手动创建即可。
模版会添加一个 JUnit 依赖以及各种插件,删除即可。
不使用模版创建项目的方式可以观看这个。
2.3.开发环境集成
虽然可以将项目打包成 war 后手动部署到本地的 Tomcat 进行测试,但这样做太过麻烦。所以最好将 Tomcat 集成到开发环境中,以方便使用。
2.3.1.集成本地 Tomcat
可以在 Idea 中集成本地 Tomcat,这样就可以在 Idea 中启动本地 Tomcat,并将当前应用进行部署。
相关内容查看这个。
2.3.2.Tomcat Maven 插件
还可以使用 。
修改 POM.xml 文件,添加:
<build>
<plugins>
<!--Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</build>
该插件包含了一个 Tomcat7,所以直接可以通过这个插件运行内置的 Tomcat。
Tomcat Maven 插件最高只支持 Tomcat7,不包含之后的版本。
可以添加配置修改内置 Tomcat 的监听端口和项目路径:
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>80</port>
<path>/</path>
</configuration>
</plugin>
The End,谢谢阅读。
本文的完整示例可以从获取。
3.参考资料
文章评论