Tomcat和Servlet了解

一,服务器概述

先了解下主机-系统-容器和程序这几个之间的关系.

主机:主机是指一台计算机设备,可以是物理服务器或虚拟服务器,用于存储数据、运行应用程序和提供服务。在这种情况下,主机是托管Ubuntu(Linux系统)、Tomcat和Java程序的计算机设备。

Ubuntu(Linux系统):Ubuntu是一种流行的Linux操作系统,具有开源、稳定和安全的特点。Linux系统提供了一个稳定的操作环境和丰富的命令行工具,适合用于服务器环境。您可以在主机上安装Ubuntu作为操作系统来托管和运行应用程序。

Tomcat:Tomcat是一个开源的Servlet容器,用于运行Java Servlet和JavaServer Pages(JSP)等Java Web应用程序。您可以在主机上安装和配置Tomcat,将其作为Java Web应用程序的运行环境。

Java程序:Java程序是使用Java编程语言编写的应用程序,可以在Java虚拟机(JVM)上运行。在这种情况下Java程序通常是指Java Web应用程序,如Servlet和JSP等。这些Java程序可以部署在Tomcat这样的Servlet容器中,并在主机上运行。

也就是说,我们平时所说的服务器,就是安装了服务器软件的计算机.而服务器软件的作用就是:接收用户的请求,处理请求,做出响应.
我们常常听见后端同事说的tomcat就是一种web服务器.

二,tomcat

Web应用开发好后,若想供外界访问,需要把web应用所在目录交给Web服务器管理(Tomcat就是Web服务器之一),这个过程称之为虚似目录的映射。
Tomcat是一个开源免费的轻量级Web服务器,支持Servlet/JSP少量JavaEE规范,所以Tomcat即是Web容器,也是Servlet容器.
它的主要作用是:

封装HTTP协议操作
部署和管理web项目
接收 HTTP 请求,然后将响应返回给客户端的软件或设备

因为我用的是mac,这里就记录下mac电脑下的tomcat的安装与使用.

2,1,tomcat的下载

打开tomcat官网,选择合适的版本下载,然后解压,复制到/Library文件夹下,至于苹果系统怎么打开这个文件夹,可以打开控制台,直接open /Library即可打开.

在这里插入图片描述

2.2,tomcat的使用

通过终端Terminal打开Tomcat中的bin目录,操作命令如下:

cd /Library/Tomcat/bin

授权使用Tomcat bin目录下的所有操作,操作命令如下:

sudo chmod 755 *.sh

回车使用后,需要输入管理员密码.
启动Tomcat,需要在bin目录,操作命令如下:

 sudo sh ./startup.sh

然后访问localhost:8080就可以看到了:
在这里插入图片描述
关闭Tomcat,操作命令如下(先切换Tomcat中的bin目录)

cd ~/Library/Tomcat/bin
sh ./shutdown.sh

这里我们所访问的其实就是webapps下的ROOT文件夹.
请添加图片描述

2.3,利用tomcat直接部署项目:直接复制

上文说到,tomcat可以作为一个web服务器,localhost:8080访问到的是webapps文件夹.里面的每一个文件夹都代表着一个web项目.
于是就可以把一个前端项目部署到webapps目录下试试:
请添加图片描述

2.4,webapps文件下的项目结构

web站点的目录是有规范的:

|-- webapp                         # 站点根目录
    |-- META-INF                   # META-INF 目录
    |   `-- MANIFEST.MF            # 配置清单文件
    |-- WEB-INF                    # WEB-INF 目录
    |   |-- classes                # class文件目录
    |   |   |-- *.class            # 程序需要的 class 文件
    |   |   `-- *.xml              # 程序需要的 xml 文件
    |   |-- lib                    # 库文件夹
    |   |   `-- *.jar              # 程序需要的 jar 包
    |   `-- web.xml                # Web应用程序的部署描述文件
    |-- <userdir>                  # 自定义的目录
    |-- <userfiles>                # 自定义的资源文件

那么,tomcat作为一个web容器的部分讲完了,后续来讲讲tomcat为啥又是一个servlet容器.

三, Servlet

Servlet是平台独立的Java类,编写一个Servlet,实际上就是按照Servlet规范编写一个Java类。Servlet被编译为平台独立的字节码,可以被动态地加载到支持Java技术的Web服务器中运行。
客户端请求和响应的流程如下:

1)客户端(通常都是浏览器)访问Web服务器,发送HTTP请求。
2)Web服务器接收到请求后,传递给Servlet容器(tomcat)3)Servlet容器(tomcat)加载Servlet,产生Servlet实例后,向其传递表示请求和响应的对象。
4)Servlet实例使用请求对象得到客户端的请求信息,然后进行相应的处理。
5)Servlet实例将处理结果通过响应对象发送回客户端,容器负责确保响应正确送出,同时将控制返回给Web服务器

按照这个说法,我们可以将Servlet视为HTTP请求的拦截器和处理器.
接下来,就可以利用tomcat和servlet来部署一个helloworld应用.
具体可以参考这篇文章:
https://zhuanlan.zhihu.com/p/649220226
其中在使用tomcat插件部署时,会报错:“Directory is invalid /Library/Tomcat/conf/Catalina”
这是因为权限不够,进入对应的tomcat文件夹,然后修改权限即可:

 sudo chmod 777 Catalina

最后实现的效果:
请添加图片描述

在这里插入图片描述

相关推荐

  1. ServletTomcat、Control区别

    2024-03-28 00:24:03       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-28 00:24:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-28 00:24:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-28 00:24:03       82 阅读
  4. Python语言-面向对象

    2024-03-28 00:24:03       91 阅读

热门阅读

  1. 【机器学习】如何计算解释模型的SHAP值

    2024-03-28 00:24:03       41 阅读
  2. 华为机试真题练习汇总(101~110)

    2024-03-28 00:24:03       37 阅读
  3. 新建uni-modules插件

    2024-03-28 00:24:03       39 阅读
  4. 前端理论总结(js)——闭包和内存泄漏

    2024-03-28 00:24:03       42 阅读
  5. 关于远程调试应用中的网页鸿蒙

    2024-03-28 00:24:03       38 阅读
  6. 面试算法-118-用队列实现栈

    2024-03-28 00:24:03       40 阅读
  7. [c++] 自写 MyString 类

    2024-03-28 00:24:03       35 阅读
  8. ShardingSphere对国产数据库的支持

    2024-03-28 00:24:03       36 阅读
  9. 《装饰器模式(极简c++)》

    2024-03-28 00:24:03       30 阅读
  10. LCR 001. 两数相除

    2024-03-28 00:24:03       36 阅读
  11. 大话设计模式之简单工厂模式

    2024-03-28 00:24:03       39 阅读