Tomcat 基础

news/2024/12/1 8:51:40/

目录

一:web 概念

1.软件架构

2.资源分类

3.网络通信三要素

二:常见的web服务器

1 .概念

2.常见web服务器软件

三:Tomcat 历史

四:Tomcat 安装

1.下载

2. 安装

四:Tomcat 目录结构

五:Tomcat 启动停止

 启动

六:Tomcat源码 

1 .下载

2 .运行


一:web 概念

1.软件架构

①:C/S: 客户端/服务器端 ‐‐‐‐‐‐‐‐‐‐‐‐> QQ , 360 ....
②:B/S: 浏览器/服务器端 ‐‐‐‐‐‐‐‐‐‐‐‐> 京东, 网易 , 淘宝 ......

2.资源分类

①:静态资源: 所有用户访问后,得到的结果都是一样的,称为静态资源。静态资
源可以直接被浏览器解析。* 如: html,css,JavaScriptjpg
②:动态资源: 每个用户访问相同资源后,得到的结果可能不一样 , 称为动态资源。动态资源被访问后,需要先转换为静态资源,再返回给浏览器,通过浏览器进行解析。 * 如servlet/jsp,php,asp....

 

3.网络通信三要素

 ① IP:电子设备(计算机)在网络中的唯一标识。
 ②端口:应用程序在计算机中的唯一标识。 0~65536
 ③传输协议:规定了数据传输的规则
  •   基础协议:
  •  tcp : 安全协议,三次握手。 速度稍慢
  •  udp:不安全协议。 速度快

二:常见的web服务器

1 .概念

  • 服务器:安装了服务器软件的计算机
  • 服务器软件:接收用户的请求,处理请求,做出响应
  • web服务器软件:接收用户的请求,处理请求,做出响应。
        在web服务器软件中,可以部署web项目,让用户通过浏览器来访问这些项目

2.常见web服务器软件

  • webLogicoracle公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。
  • webSphereIBM公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。
  • JBOSSJBOSS公司的,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。
  • TomcatApache基金组织,中小型的JavaEE服务器,仅仅支持少量的JavaEE规范 servlet/jsp。开源的,免费的。

三:Tomcat 历史

  •  Tomcat 最初由Sun公司的软件架构师 James Duncan Davidson 开发,名称为 “JavaWebServer”
  •  1999年 ,在 Davidson 的帮助下,该项目于1999年于apache 软件基金会旗下的 JServ 项目合并,并发布第一个版本(3.x), 即是现在的Tomcat,该版本实现了Servlet2.2 JSP 1.1 规范 。
  •  2001年,Tomcat 发布了4.0版本, 作为里程碑式的版本,Tomcat 完全重新设计了其架构,并实现了 Servlet 2.3 JSP1.2规范。

四:Tomcat 安装

1.下载

https://tomcat.apache.org/download-80.cgi

 

2. 安装

         将下载的 .zip 压缩包 , 解压到系统的目录(建议是没有中文不带空格的目录)下即可。

四:Tomcat 目录结构

Tomcat 的主要目录文件如下 :
目录
目录下文件
说明
bin
/存放Tomcat的启动、停止等批处理脚本文件
startup.bat ,
startup.sh
用于在windowslinux下的启动脚本
shutdown.bat ,
shutdown.sh
用于在windowslinux下的停止脚本
conf
/用于存放Tomcat的相关配置文件
Catalina
用于存储针对每个虚拟机的Context配置
context.xml
用于定义所有web应用均需加载的Context
置,如果web应用指定了自己的context.xml
,该文件将被覆盖
catalina.properties
Tomcat 的环境变量配置
catalina.policy
Tomcat 运行的安全策略配置
logging.properties
Tomcat 的日志配置文件, 可以通过该文件修
Tomcat 的日志级别及日志路径等
server.xml
Tomcat 服务器的核心配置文件
tomcat-users.xml
定义Tomcat默认的用户及角色映射信息配置
web.xml
Tomcat 中所有应用默认的部署描述文件, 主
要定义了基础ServletMIME映射。
lib
/
Tomcat 服务器的依赖包
logs
/
Tomcat 默认的日志存放目录
webapps
/
Tomcat 默认的Web应用部署目录
work
/
Web 应用JSP代码生成和编译的临时目录

五:Tomcat 启动停止

 启动

双击 bin/startup.bat 文件 ;
停止
双击 bin/shutdown.bat 文件 ;
访问
http://localhost:8080

六:Tomcat源码 

1 .下载

地址: https://tomcat.apache.org/download-80.cgi

2 .运行

1) 解压zip压缩包

2)进入解压目录,并创建一个目录,命名为home , 并将confwebapps目录移入
home 目录中
3)在当前目录下创建一个 pom.xml 文件,引入tomcat的依赖包

<?xml version="1.0" encoding="UTF‐8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema‐instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven‐4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.tomcat</groupId>
<artifactId>apache‐tomcat‐8.5.42‐src</artifactId>
<name>Tomcat8.5</name>
<version>8.5</version>
<build>
<finalName>Tomcat8.5</finalName>
<sourceDirectory>java</sourceDirectory>
<!‐‐ <testSourceDirectory>test</testSourceDirectory>‐‐>
<resources>
<resource>
<directory>java</directory>
</resource>
</resources>
<!‐‐ <testResources>
<testResource>
<directory>test</directory>
</testResource>
</testResources>‐‐>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven‐compiler‐plugin</artifactId>
<version>2.3</version>
<configuration>
<encoding>UTF‐8</encoding>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>3.4</version>
</dependency>
<dependency>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.0</version>
</dependency>
<dependency>
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>javax.xml</groupId>
<artifactId>jaxrpc</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.eclipse.jdt.core.compiler</groupId>
<artifactId>ecj</artifactId>
<version>4.5.1</version>
</dependency>
</dependencies>
</project>
4) 在idea中, 导入该工程

5) 配置idea的启动类, 配置 MainClass , 并配置 VM 参数。  

‐Dcatalina.home=D:/idea‐workspace/itcast_project_tomcat/apache‐tomcat‐
8.5.42‐src/home
‐Dcatalina.base=D:/idea‐workspace/itcast_project_tomcat/apache‐tomcat‐
8.5.42‐src/home
‐Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
‐Djava.util.logging.config.file=D:/idea‐
workspace/itcast_project_tomcat/apache‐tomcat‐8.5.42‐
src/home/conf/logging.properties

 6) 启动主方法, 运行Tomcat , 访问Tomcat

出现上述异常的原因,是我们直接启动org.apache.catalina.startup.Bootstrap的时候没
有加载JasperInitializer,从而无法编译JSP。解决办法是在tomcat的源码ContextConfig
中的configureStart函数中手动将JSP解析器初始化:

 context.addServletContainerInitializer(new JasperInitializer(), null);

7) 重启tomcat就可以正常访问了。  


http://www.ppmy.cn/news/22448.html

相关文章

Vue使用v-viewer插件实现图片预览和缩放和旋转等功能

前言 昨天不是做了一个动态的图片展示吗&#xff0c;今天就寻思着能不能完善下功能&#xff0c;可以通过点击图片的方式进行放大缩小&#xff0c;甚至旋转。 图片展示可以参考&#xff1a;Vue显示图片的几种方式 然后我一顿收搜&#xff0c;发现了vue中有这么一款插件&…

46 理论计算机科学基础-北京大学

P10 课程介绍05:46P21-1 预备知识07:43P31-2 确定型有穷自动机例子11:23P41-3 确定型有穷自动机的形式化定义17:51P51-4 设计确定型有穷自动机05:57P61-5 正则运算与封闭性28:16P71-6 非确定型有穷自动机37:43P81-7 DFA与NFA的等价性17:41P91-8 正则语言的封闭性10:30P102-1 正…

Vue3 + vite + Ts + pinia + 实战 + 源码 +electron(2)

十二、异步组件&代码分包&suspense 顶层axios&#xff1a;在setup中&#xff0c;可以不需要使用async&#xff0c;它会自动编译成这个 <script setup lang"ts"> import axios from axiosconst {data:{data}} await axios({url:"http://localho…

Linux嵌入式开发——C编程

文章目录Linux嵌入式开发——C编程一、编写C程序1.1、设置vim编辑器1.2、编写C程序二、编译C程序三、make工具和Makefile文件3.1、编写C程序C文件H文件3.2、不使用make工具3.3、使用make工具和Makefile文件编译Linux嵌入式开发——C编程 一、编写C程序 我们目前就是使用VIM编…

Webug4.0靶场通关

14.Webug4.0靶场通关 显错注入 首先整体浏览网站 注入点&#xff1a; control/sqlinject/manifest_error.php?id1 判断注入类型 输入: and 11 正常, 再输入: and 12 还正常, 排除数字型 输入单引号: ’ 网页发生变化 输入’ – q注释掉单引号,页面回显正常 则为字符型 判…

Linux学习之VMware虚拟机安装

前言 今天是癸卯年正月十五元宵节&#xff0c;在此祝大家元宵快乐&#xff01; 这篇文章主要给大家介绍安装VMware虚拟机的步骤&#xff0c;话不多说&#xff0c;开始安装&#xff01; 安装准备 VWware-workstation rhel-8.2-x86_64-dvd.iso 64 位操作系统 VMware安装 可…

EAPOL四次握手流程

EAPOL四次握手流程协议功能数据帧格式四次握手流程数据帧日志解析组播代码协议 802.11i 功能 作用&#xff1a;派生和交换两组密钥 密钥包括ptk加解密单播数据&#xff0c;由用户设置的pmk扩展&#xff08;在setwork的时候通过pasapharse生成&#xff09; gtk加密解组播数据…

可变参模板指南

可变参模板 文章目录可变参模板可变参函数模板基本外观和介绍展开参数包(获取参数包的值)错误的演示正确的演示采取递归方式采取逗号表达式为什么需要逗号表达式其他方式应用1.求最大值&#xff08;可接受多个参数&#xff09;2. 用可变参数模板函数模仿printf的功能3. 使用tup…