JavaWeb 学习笔记 2:Tomcat

JavaWeb 学习笔记 2:Tomcat

1.Tomcat 基础

1.1.简介

Web服务器是一个应用程序(软件),对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷。主要功能是"提供网上信息浏览服务"。

JavaWeb 学习笔记 2:Tomcat_第1张图片

Tomcat是Apache软件基金会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/JSP等少量JavaEE规范。

1.2.下载安装

可以从 Tomcat 官网 下载合适的版本进行安装。

注意,不同的版本需要不同版本的 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.资源文件目录

提供一个示例项目hello2,下载解压后将目录直接复制到/webapps下。

然后访问 http://localhost:8081/hello2/a.html 就可以看到页面。

1.4.2.war 包

提供一个示例 war 包haha.war,直接将这个 war 包放到 /webapps下。等一会刷新就能看到 Tomcat 将其自动解压并生成对应的 /webapps/haha目录。

访问 http://localhost:8081/haha/a.html 就能看到页面。

2.Maven 创建 Web 项目

2.1.目录结构

目录结构分为在 Maven 项目开发阶段的工程目录,以及打包成 war 后在 Tomcat 部署并自动解压后的结构。

工程目录的结构:

JavaWeb 学习笔记 2:Tomcat_第2张图片

war 包解压后的结构:

JavaWeb 学习笔记 2:Tomcat_第3张图片

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目录下还缺少javaresources目录,自行手动创建即可。

模版会添加一个 JUnit 依赖以及各种插件,删除即可。

不使用模版创建项目的方式可以观看这个视频。

2.3.开发环境集成

虽然可以将项目打包成 war 后手动部署到本地的 Tomcat 进行测试,但这样做太过麻烦。所以最好将 Tomcat 集成到开发环境中,以方便使用。

2.3.1.集成本地 Tomcat

可以在 Idea 中集成本地 Tomcat,这样就可以在 Idea 中启动本地 Tomcat,并将当前应用进行部署。

相关内容查看这个视频。

2.3.2.Tomcat Maven 插件

还可以使用 Tomcat Maven 插件。

修改 POM.xml 文件,添加:

<build>
    <plugins>
        
        <plugin>
            <groupId>org.apache.tomcat.mavengroupId>
            <artifactId>tomcat7-maven-pluginartifactId>
            <version>2.2version>
        plugin>
    plugins>
build>

该插件包含了一个 Tomcat7,所以直接可以通过这个插件运行内置的 Tomcat。

Tomcat Maven 插件最高只支持 Tomcat7,不包含之后的版本。

可以添加配置修改内置 Tomcat 的监听端口和项目路径:

<plugin>
    <groupId>org.apache.tomcat.mavengroupId>
    <artifactId>tomcat7-maven-pluginartifactId>
    <version>2.2version>
    <configuration>
        <port>80port>
        <path>/path>
    configuration>
plugin>

The End,谢谢阅读。

本文的完整示例可以从这里获取。

3.参考资料

  • 黑马程序员JavaWeb基础教程

你可能感兴趣的:(JAVA,学习,笔记,tomcat)