tomcat第1章 tomcat介绍、安装、部署项目

这篇具有很好参考价值的文章主要介绍了tomcat第1章 tomcat介绍、安装、部署项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

我们在写javaweb程序的时候有没有考虑如果没有tomcat,我们怎么给客户端返回响应数据?既然能返回响应数据,为什么还要使用tomcat?

什么是tomcat,以及tomcat历史版本发展情况,每个版本servlet规范的支持,相关的许可。

最后再介绍如何下载tomcat、安装tomcat、启动tomcat、运行tomcat以及tomcat目录结构、idea中如何使用tomcat等相关的基础知识点。

二、为什么要使用tomcat?

介绍这个问题之前,我们先来复习一下javaweb编码中不可或缺的http协议。
http (HyperText Transfer Protocol) 超文本传输协议,规定了浏览器和服务之间传输数据的规则
tomcat第1章 tomcat介绍、安装、部署项目,# tomcat,tomcat,java
下面演示一个简单得http协议代码,请求本地服务,返回给浏览器msg

public class Server {
    public static void main(String[] args) throws IOException {
        ServerSocket ss = new ServerSocket(8080); // 监听指定端口
        System.out.println("server is running...");
        for (;;) {
            Socket sock = ss.accept();
            System.out.println("connected from " + sock.getRemoteSocketAddress());
            Thread t = new Handler(sock);
            t.start();
        }
    }
}
 
class Handler extends Thread {
    Socket sock;
 
    public Handler(Socket sock) {
        this.sock = sock;
    }
 
    public void run() {
        try (InputStream input = this.sock.getInputStream()) {
            try (OutputStream output = this.sock.getOutputStream()) {
                handle(input, output);
            }
        } catch (Exception e) {
            try {
                this.sock.close();
            } catch (IOException ioe) {
            }
            System.out.println("client disconnected.");
        }
    }
 
   private void handle(InputStream input, OutputStream output) throws IOException {
    System.out.println("Process new http request...");
    var reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8));
    var writer = new BufferedWriter(new OutputStreamWriter(output, StandardCharsets.UTF_8));
    // 读取HTTP请求:
    boolean requestOk = false;
    String first = reader.readLine();
    if (first.startsWith("GET / HTTP/1.")) {
        requestOk = true;
    }
    for (;;) {
        String header = reader.readLine();
        if (header.isEmpty()) { // 读取到空行时, HTTP Header读取完毕
            break;
        }
        System.out.println(header);
    }
    System.out.println(requestOk ? "Response OK" : "Response Error");
    if (!requestOk) {
        // 发送错误响应:
        writer.write("HTTP/1.0 404 Not Found\r\n");
        writer.write("Content-Length: 0\r\n");
        writer.write("\r\n");
        writer.flush();
    } else {
        // 发送成功响应:
        String data = "<html><body><h1>Hello, world!</h1></body></html>";
        int length = data.getBytes(StandardCharsets.UTF_8).length;
        writer.write("HTTP/1.0 200 OK\r\n");
        writer.write("Connection: close\r\n");
        writer.write("Content-Type: text/html\r\n");
        writer.write("Content-Length: " + length + "\r\n");
        writer.write("\r\n"); // 空行标识Header和Body的分隔
        writer.write(data);
        writer.flush();
    }
}
}

这里的核心代码是,先读取HTTP请求,这里我们只处理GET /的请求。当读取到空行时,表示已读到连续两个\r\n,说明请求结束,可以发送响应。发送响应的时候,首先发送响应代码HTTP/1.0 200 OK表示一个成功的200响应,使用HTTP/1.0协议,然后,依次发送Header,发送完Header后,再发送一个空行标识Header结束,紧接着发送HTTP Body,在浏览器输入http://localhost:8080/就可以看到响应页面。

ok,上面我们可以 看到只是单单给浏览器返回一句话,代码量也有不少,别说一个大型的web系统。对于这种情况就有公司对http操作进行封装,使程序员不必对协议再进行操作,让web开发变得便捷,而tomcat就是对http操作的封装。

三、tomcat历史

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。
当前Tomcat存在5个主要版本,分别支持不同版本的规范,其对规范及JDK的版本支持如下
tomcat第1章 tomcat介绍、安装、部署项目,# tomcat,tomcat,java
Tomcat最后两个版本并不是顺序发布的。2015年11月,Tomcat发布了重要的里程碑版本9.0(目前仍为alpha版本)。在该版本中,Tomcat依赖最新的JDK8,使用了JDK8最新的语法特性,支持最新的Servlet规范 (4.0),并增加了对HTTP/2的支持。2016年3月,考虑到9.0版本的变更范围以及发布进度,Tomcat在8.0的基础上又发布了一个中间版本–8.5.它的主体架构延续自8.0,同时又实现了部分9.0的主要特性,以便用来取代8.0版本。

四、tomcat许可

Tomcat以Apache License许可的方式进行发布,具体许可内容参见http://apache.org/licensesLICENSE-2.0。主要概括如下。

  • Tomcat完全免费,可用于任何商业或者非商业产品,而不必支付任何费用
  • 修改Tomcat并发布变更版本的用户不必公开修改部分的源代码。
  • 修改Tomcat的用户不必将其变更捐献给Apache软件基金会
  • 所有针对Tomcat源代码或二进制文件的重新发布均须包含Apache许可
  • 任何重新发布所包含的资料必须经过Apache软件基金会批准
  • 无Apache基金会的许可,派生自Tomcat源代码的产品不能命名为“Tomcat”、“Apache”、“Jakarta”

五、tomcat基本使用

1、下载、安装、启动、停止

官网下载地址:https://tomcat.apache.org/
选择下载的版本,推荐压缩包的方式直接下载解压即可
tomcat第1章 tomcat介绍、安装、部署项目,# tomcat,tomcat,java
目录结构
tomcat第1章 tomcat介绍、安装、部署项目,# tomcat,tomcat,java

启动和运行
双击Tomcat下的bin下的startup.bat启动Tomcat或者命令行在tomcat目录下执行如下命令

D:\apache-tomcat-8.5.82\bin>catalina run

在浏览器的地址栏中输入http://localhost:8080,看到如下页面证明启动成功
tomcat第1章 tomcat介绍、安装、部署项目,# tomcat,tomcat,java

启动失败常见问题

点击 startup.bat启动Tomcat启动出现黑窗口一闪而过
主要原因:java环境配置问题,配置java home环境名必须是JAVA_HOME
​停止tomcat

找到bin下的shutdown.bat
如果是窗口启动的,关闭窗口即可停止tomcat

2、端口配置

默认端口是8080,如果出现端口占用,可以通过以下方式修改
1)找到 Tomcat 目录下的 conf 文件夹
2)进入 conf 文件夹里面找到 server.xml 文件
3)打开 server.xml 文件
4)在 server.xml 文件里面找到下列信息

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"redirectPort="8443" />

port="8080"改成你想要的端口,修改完重启tomcat才能生效

3、tomcat部署项目


在Tomcat中部署Web应用的方式主要有如下几种:

1、利用Tomcat的自动部署。把web应用拷贝到webapps目录。Tomcat在启动时会加载目录下的应用,并将编译后的结果放入work目录下。
一般将项目打包成war放到webapps目录下,tomcat会自动解压缩war文件

浏览器输入localhost:8080/项目名即可访问

2、使用Manager App控制台部署。在tomcat主页点击“Manager App” 进入应用管理控制台,可以指定一个web应用的路径或war文件。

3、修改conf/server.xml文件,增加Context节点可以部署应用。

4、在conf/Catalina/localhost/ 路径下增加 abx.xml文件,内容如下,内容是Context节点,可以部署应用

<Context path="/demo" docBase="E:\demo"/>

当浏览器输入访问地址如:

http://ip:port/  

没有工程名时候,默认访问的是ROOT工程
当浏览器输入访问地址如:

http://ip:port/工程名/  

没有资源名,默认访问index.html页面

4、tomcat web项目结构

一个javaweb项目要能够在tomcat下部署运行,需要满足一定的目录结构格式,在tomcat目录下的webapps目录下创建一个mail项目,结构如下,然后启动tomcat,localhost:8080/mail即可访问
tomcat第1章 tomcat介绍、安装、部署项目,# tomcat,tomcat,java
注意:WEB-INF目录是受保护的,外界不能直接访问,想让外界响应到,不要写在WEB-INF内。所以写的网页没有在WEB-INF中

以后创建的java web maven项目,开发完之后,需要package,package完项目的结构也是遵循上面项目结构的,对照如下
tomcat第1章 tomcat介绍、安装、部署项目,# tomcat,tomcat,java

  • 编译后的java字节码文件和resouce的资源文件,放到了WEB-INF下的class目录下
  • pom.xml 中依赖坐标对应的jar包,放入WEB-INF下的lib目录下

六、idea中使用tomcat

1、idea中创建maven web项目

方式1、使用maven骨架方式
1、选择web项目骨架
tomcat第1章 tomcat介绍、安装、部署项目,# tomcat,tomcat,java
接着填写项目名以及maven坐标,finish即可,我们可以删除pom里面不用的依赖,pom依赖如
tomcat第1章 tomcat介绍、安装、部署项目,# tomcat,tomcat,java
2、补齐缺失的目录结构
main下分别创建java和resource目录即可

方式2、不使用maven骨架方式
1、不勾选骨架创建项目
2、pom添加war的打包方式
3、补齐web项目目录结构:webapp目录即可

2、idea集成本地tomcat

上面我们创建好项目之后,如果想要运行将项目部署到tomcat下并运行,之前的方式是首先package,然后将打包好的war包复制到本地tomcat下的webapps即可运行,这个过程还是比较繁琐。
在idea中可以直接继承本地tomcat进行运行项目
如下
添加local tomcat
tomcat第1章 tomcat介绍、安装、部署项目,# tomcat,tomcat,java
tomcat第1章 tomcat介绍、安装、部署项目,# tomcat,tomcat,java
部署项目
tomcat第1章 tomcat介绍、安装、部署项目,# tomcat,tomcat,java
tomcat第1章 tomcat介绍、安装、部署项目,# tomcat,tomcat,java
选择要部署得项目,然后apply,部署完之后点击运行即可
tomcat第1章 tomcat介绍、安装、部署项目,# tomcat,tomcat,java

备注:如何是普通的web项目,不是maven项目,如何将第三方jar添加到项目中?
首先在当前项目WEB-INF下创建lib文件夹,将第三方jar复制到lib下
tomcat第1章 tomcat介绍、安装、部署项目,# tomcat,tomcat,java
打开Project structure中
tomcat第1章 tomcat介绍、安装、部署项目,# tomcat,tomcat,java
添加jar
tomcat第1章 tomcat介绍、安装、部署项目,# tomcat,tomcat,java
apply
tomcat第1章 tomcat介绍、安装、部署项目,# tomcat,tomcat,java

3、idea使用tomcat 插件

上面2介绍了如何把maven web项目部署到本地tomcat中,并运行起来,接下来介绍不使用本地tomcat,而是用tomcat maven 插件的方式运行maven 项目
tomcat第1章 tomcat介绍、安装、部署项目,# tomcat,tomcat,java文章来源地址https://www.toymoban.com/news/detail-542991.html

到了这里,关于tomcat第1章 tomcat介绍、安装、部署项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • jdk、tomcat及mysql的安装和windows项目部署

    目录 一、jdk安装 1.1 安装jdk 1.2 配置jdk环境 1.3 配置成功 二、tomcat安装 三、MySQL安装 3.1 解压安装文件夹 3.2改变my.ini文件位置 3.3编辑my.ini文件 3.4 打开cmd 输入 mysqld install 3.5初始化mysql服务端 3.6 sql服务启动mysql 3.7 登录mysql 3.8 修改密码 3.9 连接测试 四、项目部署 1. 双击jdk,进

    2024年01月22日
    浏览(45)
  • Tomcat安装使用与部署Web项目的三种方法

    ✅作者简介:C/C++领域新星创作者,为C++和java奋斗中 ✨个人社区:微凉秋意社区 🔥系列专栏:MySql一点通 📃推荐一款模拟面试、刷题神器👉注册免费刷题 🔥前言 今天带来 Tomcat 的安装教程,也会讲到各种目录下代表的含义,重点是在Tomcat服务器上面部署Web项目的三种方法

    2024年02月02日
    浏览(49)
  • J2EE项目部署与发布(Linux版本)->jdk&tomcat安装,MySQL安装,后端接口部署,linux单体项目前端部署

    jdktomcat安装 MySQL安装 后端接口部署 linux单体项目前端部署 1.jdktomcat安装 上传jdk、tomcat安装包 解压两个工具包 #解压tomcat tar -zxvf apache-tomcat-8.5.20.tar.gz #解压jdk tar -zxvf jdk-8u151-linux-x64.tar.gz 配置并且测试jdk安装 #配置环境变量 vim /etc/profile #java environment export JAVA_HOME=/javaxl/softwar

    2024年02月06日
    浏览(39)
  • Linux02(项目部署,手动和自动部署,JDK版本问题,安装软件,安装软件,安装JDK,Tomcat,MySQL,Irzsz)

    目录 一、安装软件 1. 安装准备工作 1 Linux里的软件安装方式 2 上传软件到Linux 3 拍照虚拟机快照 2. 安装JDK 1 卸载自带jdk 2 解压JDK 3 配置环境变量 4 测试JDK 3. 安装Tomcat 1 解压Tomcat 2 修改防火墙设置 3 测试Tomcat 启动Tomcat 访问Tomcat 查看Tomcat日志 4 关闭Tomcat 4. 安装MySQL 1 卸载自带

    2024年04月18日
    浏览(47)
  • linux jenkins 2.89.1 安装部署 持续构建svn下maven项目并部署到tomcat

    从这边博文可以学习到:  jenkins的安装 修改主目录 初始化 新建任务,构建第一个maven项目 将构建完成的项目部署到tomcat Jenkins的安装相当简单,只需要从官网下载war包,放入tomcat,运行tomcat就可以访问Jenkins了 准备工作:安装java环境,一个tomcat7+。如果构建maven项目还需要安

    2024年02月20日
    浏览(42)
  • 如何在Linux上安装JDK、Tomcat和MySQL以及部署后端项目

    目录 前言 一、JDK和Tomcat的安装 1.JDK安装 2.Tomcat安装 二、安装MySQL 三、后端接口部署 1.将ssh前后端分离项目进行部署 ​2.将单体项目进行部署 3.将ssm前后端分离项目进行部署并修改端口号 随着现代软件开发的快速发展,越来越多的企业和个人开始使用Linux作为服务器操作系统

    2024年02月06日
    浏览(38)
  • 【Linux】配置JDK&Tomcat开发环境及MySQL安装和后端项目部署

    目录 一、jdk安装配置 1. 传入资源  2. 解压  3. 配置  二、Tomcat安装 1. 解压开启 2. 开放端口 三、MySQL安装 1. 解压安装 2. 登入配置  四、后端部署 1. 数据库 2. 导入.war包 3. 修改端口 4.开启访问 打开虚拟机 Centos 登入账号,并且使用 MobaXterm 进行连接 不知道使用及连接到 Moba

    2024年02月06日
    浏览(56)
  • 云服务器 CentOS7 操作系统上安装Jpress (Tomcat 部署项目)

    xftp 新建连接 下载 jdk1.8 注:此处 CentOS7 是64位,所以下载的是:Linux x64, 文件类型为 tar.gz 的文件 JDK 官网地址:https://www.oracle.com/java/ 上传此包到云服务器上面 xShell 连接云服务器,找到 jdk1.8 所在的位置,输入解压指令: 配置 jdk 环境,输入编辑指令: 在最后一行加上环境

    2024年02月07日
    浏览(61)
  • 保姆级!如何在Window Server服务器上用tomcat部署java web项目

    首先,打开idae软件(我项目用的idea,也可以其他)导入你的项目,然后运行项目,确保项目能在localhost:8080,即在本地上运行。 确保能在本地上运行,且项目所有的已实现的功能没有bug,多测试几次。 然后打包项目,在打包前,看看数据库的.sql文件放在哪个位置(如果有的

    2024年02月06日
    浏览(51)
  • Tomcat的介绍和安装配置、eclipse中动态web项目的创建和运行、使用IDEA创建web项目并运行

    一、Tomcat的介绍和安装配置 安装tomcat:                                      环境变量的配置: 配置之后重启cmd,执行startup命令,启动tomcat 在localhost:8080,能进入tomcat主界面,说明配置成功 二、eclipse中动态web项目的创建和运行 tomcat可以在面板上配,可以去windows中pr

    2024年02月14日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包