如何假裝成一個服務端開發(一)html
如何假裝成一個服務端開發(二)java
如何假裝成一個服務端開發(三) android
如何假裝成一個服務端開發(五)apache
本系列文章將會記錄筆者從服務端小白一點點跋涉的過程。筆者是Android端開發,因此對java仍是有一些經驗的,此次服務端的切入方向也是java web。內容比較零碎,學習路線不必定值得借鑑。有些詞或者技術點可能會反覆出現,由於剛開始對於某樣東西的理解是極其粗淺的,隨着學習的深刻,咱們必定會對原有的概念進行刷新認知,爲了可以如實反映學習的路線,不會返回去補充知識點,而是會從新記錄。擦……仍是等學點皮毛以後再來寫前言吧……編程
就如標題說的"假裝成服務端開發",實際上服務端開發的內容相比客戶端而言,更是廣闊,各類各樣的框架層出不窮,因此若是不長時間學習實踐,就靠書本知識和一些些demo,就只能到這個地步了。不過,誰不是從這個地步走上去的呢?小程序
開發系統: macOS瀏覽器
java : 1.8tomcat
開發工具 : IntelliJ IDEA安全
下載安裝maven。網上資料不少,不過就是下載,解壓,配置一個path而已。
maven就至關於android中的gradle的功能,包括管理你的文件結構,編譯流程,依賴管理。實際上,咱們也可使用gradle來完成這件事情。可是因爲在eclipse中對於gradle的支持並很差,而且業內使用maven的也比較多,因此習慣性的,你們仍是在用maven來維護java web項目。
用我微少的知識我知道,在搭建一個網站的時候咱們須要一個 WEB服務器,用百度的話說就是一個經過HTTP協議能夠向瀏覽器等WEB客戶端提供文檔的程序。經常使用的WEB服務器有Apache,Nginx,Lighttpd,Tomcat等。
至於具體的工做原理,協議出來,各類各類結構圖,咱們能夠在完成「假裝」以後再按需填充。面向對象編程嘛,先要有對象,而後再慢慢在對象裏添加須要的東西。
在WEB服務器的邏輯中,咱們只能提供靜態的請求網頁,由於咱們沒有中間服務代碼可以在請求過來的時候根據請求作某些處理。爲了解決這個問題,因而就引入了Servlet,所謂的Servlet就是,Servlet就是使用java編寫的服務端的小程序,主要就是根據請求動態生成web內容。
而servlet容器就是裝載這些小程序的容器。
Servlet容器和Web服務器處理一個請求的基本流程:
1. Web服務器接收到HTTP請求
2. Web服務器將請求轉發給servlet容器
3. 若是容器中不存在所需的servlet,容器就會檢索servlet,並將其加載到容器的地址空間中
4. 容器調用servlet的init()方法對servlet進行初始化(該方法只會在servlet第一次被載入時調用)
5. 容器調用servlet的service()方法來處理HTTP請求,即,讀取請求中的數據,建立一個響應。servlet會被保留在容器的地址空間中,繼續處理其餘的HTTP請求
6. Web服務器將動態生成的結果返回到正確的地址。
下圖標出了上述的六個步驟:
PS: servlet着重於控制端,展現端會使用jsp,不過如今jsp的替代仍是不少的,若是要學展現端,能夠網上搜搜,選一門學學,至於筆者的學習流程中,暫時尚未展現端的安排。
Tomcat厲害了,首先他是一個servlet容器,另外他有個兼職,WEB服務器,因此不少新手入門教程的時候直接使用Tomcat完成了全部的服務部署流程,可是咱們要清楚,這裏其實有兩個部分的。
Tomcat的安裝網上資料不少。
*.sh
文件用於 Unix 系統; *.bat
文件用於 Windows 系統。通常 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> # 自定義的資源文件
webapp
:工程發佈文件夾。其實每一個 war 包均可以視爲 webapp 的壓縮包。
META-INF
:META-INF 目錄用於存放工程自身相關的一些信息,元文件信息,一般由開發工具,環境自動生成。
WEB-INF
:Java web應用的安全目錄。所謂安全就是客戶端沒法訪問,只有服務端能夠訪問的目錄。
/WEB-INF/classes
:存放程序所須要的全部 Java class 文件。
/WEB-INF/lib
:存放程序所須要的全部 jar 文件。
/WEB-INF/web.xml
:web 應用的部署配置文件。它是工程中最重要的配置文件,它描述了 servlet 和組成應用的其它組件,以及應用初始化參數、安全管理約束等。
tomcat在conf文件夾下有一個 conf/server.xml 文件,該文件用於tomcat自己的屬性設置。他有不少設置項,咱們能夠在官網找到,用到一個學一個吧。
(擴展名爲.War,Web Application Archive)包含所有Web應用程序。在這種情形下,一個Web應用程序被定義爲單獨的一組文件、類和資源,用戶能夠對jar文件進行封裝,並把它做爲小型服務程序(servlet)來訪問。 war包是一個能夠直接運行的web模塊,一般用於網站,打成包部署到容器中。以Tomcat來講,將war包放置在其\webapps\目錄下,而後啓動Tomcat,這個包就會自動解壓,就至關於發佈了。war包是Sun提出的一種web應用程序格式,與jar相似,是不少文件的壓縮包。war包中的文件按照必定目錄結構來組織。根據其根目錄下包含有html和jsp文件,或者包含有這兩種文件的目錄,另外還有WEB-INF目錄。一般在WEB-INF目錄下含有一個web.xml文件和一個classes目錄,web.xml是這個應用的配置文件,而classes目錄下則包含編譯好的servlet類和jsp,或者servlet所依賴的其餘類(如JavaBean)。一般這些所依賴的類也能夠打包成jar包放在WEB-INF下的lib目錄下。
https://blog.csdn.net/snarlfuture/article/details/18473761
https://www.cnblogs.com/jingmoxukong/p/8258837.html?utm_source=gold_browser_extension
https://blog.csdn.net/ganquanzhong/article/details/80719703