主頁 > 軟體設計 > Tomcat服務器

Tomcat服務器

2020-09-21 08:20:00 軟體設計

什么是互聯網通信

兩臺計算機通過網路實作檔案共享行為,就是【互聯網通信】

互聯網通信程序角色劃分

客戶端計算機:用于發送請求,來索要資源檔案的計算機

服務端計算機:用于接收請求,并提供對應的資源檔案計算機

互聯網通信模型

1.C/S通信模型
C,client software;客戶端軟體
1)客戶端軟體專門安裝在客戶端計算機上
2)幫助客戶端計算機向指定服務端計算機發送請求,索要資源檔案
3)幫助客戶端計算機將服務端計算機發送回來【二進制資料】決議
為【文字,數字,圖片,視頻,命令】

S,server software;服務器軟體
1)服務器軟體專門安裝在服務端計算機上
2)服務器軟體用于接收來自于特定的客戶端軟體發送請求
3)服務器軟體在接收到請求之后自動的在服務端計算機上定位被訪問的資源檔案
4)服務器軟體自動的將定位的檔案內容決議為【二進制資料】通過網路發送回
發起請求的客戶端軟體上

適用場景:C/S通信模型普遍用于個人娛樂市場,比如【微信,淘寶/京東,視頻(優酷/B站),大型網路游戲(魔獸/英雄聯盟)】
企業辦公領域相對應用較少

優缺點:

優點:
1.安全性較高
2.有效降低服務端計算機作業壓力

缺點:
1.增加客戶獲得服務的成本
2.更新較為繁瑣

2.B/S通信模型
B:browser,瀏覽器
1)瀏覽器安裝在客戶端計算機軟體
2)可以向任意服務器發送請求,索要資源檔案
3)可以將服務器回傳的【二進制資料】決議為
【文字,數字,圖片,視頻,命令】

S: server software 服務器軟體
1)服務器軟體專門安裝在服務端計算機上
2)可以接收任意瀏覽器發送請求
3)自動的在服務端計算機上定位被訪問的資源檔案
4)自動的將定位的資源檔案內容以二進制形式發送回發起請求瀏覽器上

適用場景: 既適用于個人娛樂市場,又廣泛適用于企業日常活動

優缺點:
優點:
1.不會增加用戶獲得服務的成本
2.幾乎不需要更新瀏覽器

缺點:
1.幾乎無法有效對服務端計算機資源檔案進行保護
2.服務端計算機作業壓力例外巨大----->【B/S通信下高并發解決方案】


共享資源檔案

1.什么是共享資源檔案:
可以通過網路進行傳輸的檔案,都被稱為共享資源檔案
所有的檔案內容都可以通過網路傳輸,所有檔案都是共享資源檔案

2.Http服務器下對于共享資源檔案分類

靜態資源檔案
動態資源檔案

3.靜態資源檔案:

1) 如果檔案內容是固定,這種檔案可以被稱為【靜態資源檔案】
(檔案,圖片,視頻)
2) 如果檔案存放不是內容而是命令,這些命令只能在瀏覽器編譯與執行
這種檔案可以被稱為【靜態資源檔案】
(.html,.css,.js)

4.動態資源檔案:
如果檔案存放命令,并且命令不能在瀏覽器編譯與執行;只能在服務端
計算機編譯執行,這樣的檔案可以被稱為【動態資源檔案】
(.class)
5.靜態資源檔案與動態資源檔案呼叫區別

靜態檔案被索要時,Http服務器直接通過【輸出流】將靜態檔案中內容或則命令
以【二進制形式】推送給發起請求瀏覽器

動態檔案被索要時,Http服務器需要創建當前class檔案的實體物件,通過實體物件
呼叫對應的方法處理用戶請求,通過【輸出流】將運行結果以【二進制形式】推送
給發起請求瀏覽器

class Student{
public int add(int num1,int num2){
int sum = num1 + num2;
return sum;
}
}
Http服務器(自動)
Student stu = new Student();
int 結果 = stu.add(10,20);
out.print(結果)

開發人員在互聯網通信流程擔負職責:

1.控制瀏覽器行為

2.開發動態資源檔案來解決用戶請求

Http網路協議包

網路協議包

1.在網路中傳遞資訊都是以【二進制】形式存在的,
2.接收方【瀏覽器/服務器】在接收資訊后,要做第一件事
就是將【二進制資料】進行編譯【文字,圖片,視頻,命令】
3.傳遞資訊資料量往往比較巨大,導致接收方很難在一組連續
二進制得到對應資料
比如 瀏覽器發送一個請求: http://192.168.100.2:8080/index.html
這個請求資訊以二進制形式發送 01010101010110101010101101010
Http服務器很難從二進制資料得到相關資訊

4.網路協議包一組有規律二進制資料,在這組資料存在了固定空間
每一個空間專門存放特定資訊,這樣接收方在接收網路協議包之后
就可以到固定空間得到對應資訊,網路協議包出現極大降低了
接收方對接收二進制資料編譯難度

【0000(ip地址)0000(埠號)0000(資源檔案名)0000】

常見網路協議

1.FTP網路協議包

2.Http網路協議包

Http網路協議包

在基于B/S結構下互聯網通信程序中,所有在網路中傳遞資訊都是
保存在Http網路協議包

分類:
Http請求協議包

Http回應協議包

Http請求協議包與Http回應協議包介紹

1.Http請求協議包:
在瀏覽器準備發送請求時,負責創建一個Http請求協議包
瀏覽器將請求資訊以二進制形式保存在Http請求協議包各個空間
由瀏覽器負責將Http請求協議包推送到指定服務端計算機

2.Http回應協議包:
Http服務器在定位到被訪問的資源檔案之后,
負責創建一個Http回應協議包
Http服務器將定位檔案內容或則檔案命令以
二進制形式寫入到Http回應協議包各個空間
由Http服務器負責將Http回應協議包推送回
發起請求的瀏覽器上,

Http請求協議包內部空間

1.按照自上而下劃分,分為4個空間

2.空間劃分:

請求行:[
url:請求地址(http://192.168.100.2:8080/index.html)
method:請求方式(POST/GET)
]

請求頭:[

請求引數資訊【GET】
]

空白行[
沒有任何內容,起到隔離作用

]

請求體:[

請求引數資訊【POST】
]

Http回應協議包內部結構

1.按照自上而下劃分,分為4個空間

2.空間劃分:

狀態行:[
Http狀態碼

]

回應頭:[
content-type: 指定瀏覽器采用對應編譯器
對回應體二進制資料進行決議

]

空白行:[
沒有任何內容,起到隔離作用

]
回應體:[
可能被訪問靜態資源檔案內容
可能被訪問的靜態資源檔案命令
可能被訪問的動態資源檔案運行結果
*****都是以二進制形式***
]

Tomcat服務器創建網站

Tomcat獲取地址:http://tomcat.apache.org/

下載后解壓直接可以使用

配置環境變數

CATALINA_HOME:apache-tomcat-9.0.30

JAVA_HOME:jdk1.8.0_101

在webapps目錄下創建自己的目錄

檢測是否能打開

在apache-tomcat-9.0.30的bin目錄下運行cmd

分別輸入startup和shutdown命令

以上表示打開成功

關閉后如果沒有報例外,重新再關閉一次

使用瀏覽器訪問Tomcat服務器

idea中配置Tomcat

新建一個module

在web目錄下插入圖片

在project structure中配置Tomcat

在run目錄下創建一個開關,并在deployment中發布網站

使用debug啟動服務器

在彈出的瀏覽器中訪問回應的圖片

以上實作了瀏覽器訪問Tomcat服務器的一個程序

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/95500.html

標籤:其他

上一篇:LeetCode——405.數字轉換為十六進制數

下一篇:Software Testing_軟體測驗基礎知識

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more