TOMCAT入门到精通

目录

一 WEB技术

1.1 HTTP协议和B/S 结构

1.2 前端三大核心技术

1.2.1 HTML

1.2.2 CSS(Cascading Style Sheets)层叠样式表

1.2.3 JavaScript

二 WEB框架

2.2后台应用架构

2.2.1单体架构

2.2.2微服务

2.2.3单体架构和微服务比较

三 tomcat的功能介绍

3.1 安装 Tomcat

3.2 tomcat的文件结构和组成

3.3 生成tomcat的启动文件

四 结合反向代理实现tomcat部署

4.1 常见部署方式介绍

4.2 利用 nginx 反向代理实现

4.3 实现tomcat中的负载均衡

4.3.1 HTTP的无状态,有连接和短连接

4.3.2 tomcat负载均衡实现

五 Memcached

5.1 Memcached简介

5.2 memcached的安装与启动

5.3 memcached 操作命令

六 session 共享服务器

6.1 msm 介绍

6.2 安装

6.3 配置过程


一 WEB技术

1.1 HTTP协议和B/S 结构

操作系统有进程子系统,使用多进程就可以充分利用硬件资源。进程中可以多个线程,每一个线程可以被CPU调度执行,这样就可以让程序并行的执行。这样一台主机就可以作为一个服务器为多个客户端提供计算服务。

客户端和服务端往往处在不同的物理主机上,它们分属不同的进程,这些进程间需要通信。跨主机的进程间通信需要使用网络编程。最常见的网络编程接口是Socket。

Socket称为套接字,本意是插座。也就是说网络通讯需要两端,如果一端被动的接收另一端请求并提供计算和数据的称为服务器端,另一端往往只是发起计算或数据请求,称为客户端。

这种编程模式称为Client/Server编程模式,简称C/S编程。开发的程序也称为C/S程序。C/S编程往往使用传输层协(TCP/UDP),较为底层,比如:QQ,迅雷, 云音乐, 云盘, foxmail,xshell等

1990年HTTP协议和浏览器诞生。在应用层使用文本跨网络在不同进程间传输数据,最后在浏览器中将服务器端返回的HTML渲染出来。由此,诞生了网页开发。

网页是存储在WEB服务器端的文本文件,浏览器发起HTTP请求后,到达WEB服务程序后,服务程序根据URL读取对应的HTML文件,并封装成HTTP响应报文返回给浏览器端。

起初网页开发主要指的是HTML、CSS等文件制作,目的就是显示文字或图片,通过超级链接跳转到另一个HTML并显示其内容。

后来,网景公司意识到让网页动起来很重要,傍着SUN的Java的名气发布了JavaScript语言,可以在浏览器中使用JS引擎执行的脚本语言,可以让网页元素动态变化,网页动起来了。

为了让网页动起来,微软使用ActiveX技术、SUN的Applet都可以在浏览器中执行代码,但都有安全性问题。能不能直接把内容直接在WEB服务器端组织成HTML,然后把HTML返回给浏览器渲染呢?

最早出现了CGI(Common Gateway Interface)通用网关接口,通过浏览器中输入URL直接映射到一个服务器端的脚本程序执行,这个脚本可以查询数据库并返回结果给浏览器端。这种将用户请求使用程序动态生成的技术,称为动态网页技术。先后出现了ASP、PHP、JSP等技术,这些技术的使用不同语言编写的程序都运行在服务器端,所以称为WEB后端编程。有一部分程序员还是要编写HTML、CSS、JavaScript,这些代码运行在浏览器端,称为WEB前端编程。合起来称为Browser/Server编程,即B/S编程。

1.2 前端三大核心技术

1.2.1 HTML

HTML(HyperText Markup Language)超文本标记语言,它不同于一般的编程语言。超文本即超出纯文本的范畴,例如:描述文本颜色、大小、字体等信息,或使用图片、音频、视频等非文本内容。

HTML由一个个的标签(标记)组成,这些标签各司其职,有的提供网页信息,有的负责文字,有的负责图片,有的负责网页布局,所以一个HTML文件,是由格式标签和数据组成。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>
<h1>老李老李出门见喜</h1>
</body>
</html>

超文本需要显示,就得有软件能够呈现超文本定义的排版格式,例如显示:图片、表格,显示字体的大小、颜色,这个软件就是浏览器。

超文本的诞生是为了解决纯文本不能格式显示的问题,是为了好看,但是只有通过网络才能分享超文本的内容,所以制定了HTTP协议。

1.2.2 CSS(Cascading Style Sheets)层叠样式表

HTML本身为了格式化显示文本,但是当网页呈现大家面前的时候,需求HTML提供更多样式能力。这使得HTML变得越来越臃肿。这促使了CSS的诞生。

1994年,W3C成立,CSS设计小组所有成员加入W3C,并努力研发CSS的标准,微软最终加入。

1996年12月发布CSS 1.0。

1998年5月发布CSS 2.0

CSS 3采用了模块化思想,每个模块都在CSS 2基础上分别增强功能。所以,这些模块是陆续发布的。

不同厂家的浏览器使用的引擎,对CSS的支持不一样,导致网页布局、样式在不同浏览器不一样。因此,想要保证不同用户使用不同浏览器看到的网页效果一直非常困难。

1.2.3 JavaScript

Javascript 简称JS,是一种动态的弱类型脚本解释性语言,和HTML、CSS并称三大WEB核心技术,得到了几乎主流浏览器支持。

1994年,网景Netscape公司成立并发布了Netscape Navigator浏览器,占据了很大的市场份额,网景意识到WEB需要动态,需要一种技术来实现。

1995年9月网景浏览器2发布测试版本发布了LiveScript,随即在12月的测试版就更名为JavaScript。同时期,微软推出E并支持JScript、vBScript,与之抗衡。

1997年,网景、微软、SUN、Bocland公司和其他组织在ECMA (European Computer Manufacturers

Association欧洲计算机制造商协会)确定了ECMAScript的本程序设计语言的标准。JavaScript和JScript都成为ECMAScript标准的实现。

2008年后随着chrome浏览器的V8引擎发布。

V8Js引擎不是解释执行,而是本地编译,在V8引擎做了很多优化,JS程序在其上运行堪比本地二进制程序。v8引擎使用C++开发,可以嵌入到任何C++程序中。基于V8引擎,2009年基于服务器javascript的运行环境Node,js诞生,创建了第一版npm (Node.js包管理器和开源库生态系统),提供了大量的库供程序员使用。从此,便可以在服务器端真正大规模使用JavaScript编程了。也就是说JavaScript 也可以真正称为服务器端编程语言了,成为目前唯一的前,后端通用的语言。

同步

交互式网页,用户提交了请求,就是想看到查询的结果。服务器响应到来后是一个全新的页面内容,哪怕URL不变,整个网页都需要重新渲染。例如,用户填写注册信息,只是2次密码不一致,提交后,整个注册页面重新刷新,所有填写项目重新填写(当然有办法让用户减少重填)。这种交互非常不友好。从代价的角度看,就是为了注册的一点点信息,结果返回了整个网页内容,不但浪费了网络带宽,还需要浏览器重新渲染网页,太浪费资源了,影响了用户体验和感受。上面这些请求的过程,就是同步过程,用户 发起请求,页面整个刷新,直到服务器端响应的数据到来并重新渲染。

异步

1996年微软实现了iframe标签,可以在一个网页使用iframe标签局部异步加载内容。

1999年微软推出异步数据传输的ActiveX插件技术,太笨重了,但是也火了很多年。有一个组件 XMLHttpRequest被大多数浏览器支持。

传统的网页如果需要更新内容,必需重载整个网页面。Ajax的出现,改变这一切,同时极大的促进了Javascript的发展。Ajax即"Asynchronous Javascript And XML"(异步 JavaScript 和 XML),是指一种创建交互式、快速动态网页应用的网页开发技术,最早起源于1998年微软的Outlook Web Access开发团队。Ajax 通过在后台与服务器进行少量数据交换, 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。Javascript 通过调用浏览器内置的WEB API中的XMLHttpRequest 对象实现Ajax 技术。早期Ajax结合数据格式XML,目前更多的使用JSON。利用AJAX可实现前后端开发的彻底分离,改变了传统的开发模式。

AJAX是一种技术的组合,技术的重新发现,而不是发明,但是它深远的影响了整个WEB开发。

二 WEB框架

2.1 web资源和访问

PC 端或移动端浏览器访问

从静态服务器请求HTML、CSS、JS等文件发送到浏览器端,浏览器端接收后渲染在浏览器上从图片服务器请求图片资源显示从业务服务器访问动态内容,动态内容是请求后有后台服务访问数据库后得到的,最终返回到浏览器端

手机 App 访问

内置了HTML和JS文件,不需要从静态WEB服务器下载 JS 或 HTML。为的就是减少文件的发送,现代前端开发使用的JS文件太多或太大了

有必要就从图片服务器请求图片,从业务服务器请求动态数据

客户需求多样,更多的内容还是需要由业务服务器提供,业务服务器往往都是由一组服务器组成。

2.2后台应用架构

2.2.1单体架构

·传统架构(单机系统),一个项目一个工程:比如商品、订单、支付、库存、登录、注册等等,统一部署,一个进程all in one的架构方式,把所有的功能单元放在一个应用里。然后把整个应用部署到一台服务器上。如果负载能力不行,将整个应用进行水平复制,进行扩展,然后通过负载均衡实现访问。

·Java实现:JSP、Servlet,打包成一个jar、war部署

·易于开发和测试:也十分方便部署;当需要扩展时,只需要将war复制多份,然后放到多个服务器上,再做个负载均衡就可以了。

·如果某个功能模块出问题,有可能全站不可访问,修改Bug后、某模块功能修改或升级后,需要停掉整个服务,重新整体重新打包、部署这个应用war包,功能模块相互之间耦合度高,相互影响,不适合当今互联网业务功能的快速迭代

·特别是对于一个大型应用,我们不可能吧所有内容都放在一个应用里面,我们如何维护、如何分工合作都是问题。如果项目庞大,管理难度大

·web应用服务器:开源的tomcat、jetty、glassfish。商用的有weblogic、websphere、Jboss

2.2.2微服务

·属于SOA (Service Oriented Architecture)的子集

·微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底去掉耦合,每一个微服务提供单个业务功能,一个服务只做一件事。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等

·从技术角度讲就是一种小而独立的处理过程,类似与进程的概念,能够自行单独启动或销毁

·微服务架构(分布式系统),各个模块/服务,各自独立

Tomcat是一个开源的Java Servlet容器,它用于在服务器上运行Java Web应用程序。下面是一个关于Tomcat入门精通的简要指南: 1. Tomcat目录结构:Tomcat的主要目录文件包括bin(存放启动、停止等脚本文件)、conf(存放配置文件)、lib(存放依赖包)、logs(存放日志文件)、webapps(存放Web应用程序)等。 2. 运行时编译:Tomcat在默认的web.xml中配置了一个JspServlet,用于处理所有以.jsp或.jspx结尾的请求。这个Servlet实现了运行时编译的功能,将JSP文件转换成可执行的Java代码。 3. 核心功能:Tomcat主要有两个核心功能,一是处理Socket连接,负责网络字节流与Request和Response对象的转化,二是加载和管理Servlet,以及具体处理请求。为了实现这两个功能,Tomcat设计了连接器(Connector)和容器(Container)这两个核心组件。连接器负责对外交流,容器负责内部处理。 4. 连接器:Coyote是Tomcat的连接器框架,它是Tomcat服务器提供的供客户端访问的外部接口。Coyote负责与客户端建立连接、发送请求并接收响应。它封装了底层的网络通信,为容器提供统一的接口,使容器与具体的请求协议和IO操作方式解耦。Coyote将Socket输入转换为Request对象,并交由容器进行处理,处理完成后通过Coyote提供的Response对象将结果写入输出流。 5. 学习资源:要从入门精通Tomcat,可以从以下几个方面进行学习: - 熟悉Tomcat的目录结构和配置文件,了解每个文件的作用和使用方法。 - 学习Java Servlet的基本概念和使用方法,了解Servlet的生命周期和请求处理过程。 - 深入学习Tomcat的连接器和容器的原理和实现机制,理解其内部工作原理。 - 实践编写和部署简单的Java Web应用程序,通过实际操作加深对Tomcat的理解和掌握。 通过学习和实践,逐步深入理解Tomcat的运行原理和使用方法,可以从入门精通Tomcat
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值