(JavaEE-02)Web服務器---Tomcat

Web開發

從今天開始,咱們學習JavaWeb開發,那麼什麼是JavaWeb開發,就目前來看,JavaWeb涵蓋的內容和所涉及的領域已經很是廣闊了,簡單來講,Web技術基本都是用來開發網站的,可是網站與網站的區別是很是大的。
JavaWeb技術應用:css

  • 電子商務平臺html

  • 各類社區web

  • 銀行、電信領域以及各種金融行業的應用系統數據庫

  • 企業內部大型應用系統(ERP、CRM、OA等)apache

  • 大數據(以Hadoop爲中心的技術羣)編程

  • 搜索引擎(Nutch、Lucene、Solr等)瀏覽器

  • 雲計算、雲服務等tomcat

Web開發已是將來的大勢所趨(WebQQ,ChromeOS,強悍的HTML5),不論如今是否進入到移動時代,可是將來必然是網絡時代,全部的任何形式的客戶端,都須要網絡服務端來提供服務。因此學好Web開發,對將來很是有好處,發展前景很是好!安全

Web資源

Web,它用於表示Internet主機上供外界訪問的資源。Web資源分爲兩類:服務器

  • 靜態Web資源,好比HTML,一張圖片等。指得是web頁面中供人們瀏覽的始終不變的數據

  • 動態Web資源,指Web頁面中供人們瀏覽的數據是由程序產生的,不一樣動做訪問web頁面看到的內容是不一樣的

  • 靜態Web資源開發技術:HTML、CSS、Javascript

  • 動態Web資源經常使用開發技術:Servlet/JSP、ASP(ASPX)、PHP、Ruby、Python等等

在Java中,動態Web資源開發技術統稱爲JavaWeb技術體系(使用JavaWeb技術開發動態Web資源)

Web服務器

要學習Web開發,須要擁有一個臺Web服務器,而後在Web服務器中開發Web資源,供別人瀏覽和使用。(服務器的概念)

一個Web資源(HTML),想讓用戶經過Internet來訪問,就須要咱們編寫一些基於Internet傳輸規則的程序(這樣的程序就是 Web服務器),好比,經過使用Java網絡編程的相關技術(網絡套接字)就能夠編寫一個支持網絡訪問的程序,可是功能比較有限。Tomcat就是一個寫 好的支持網絡訪問的,功能強大的程序,它能對外提供Web資源的訪問,因此它就是一個Web服務器,而它使用Java編寫的,因此Tomcat就是一個 JavaWeb服務器。

Tomcat

Tomcat是一個JavaWeb服務器,也稱之爲Web容器。
一個示例,啓動tomcat,將一個Web資源放入Tomcat服務器,經過網絡客戶端,就能夠直接訪問該資源了。

常見的Web服務器

  • WebLogic,它是Oracle公司的產品(收費),是使用很是普遍的Web服務器,支持JavaEE規範

  • WebSphere,它是IBM公司的產品(收費,可是隻要不商用,能夠無償使用),支持JavaEE規範。

  • Tomcat,Apache公司產品(開源免費),支持所有的Servlet和JSP規範。

tomcat

安裝Tomcat

  • 首先下載Tomcat,選擇正確的版本,推薦使用綠色安裝版,也就是zip包版本

  • 綠色版無需安裝,解壓後就直接可使用(切記不要將其放入到帶有中文或空格的目錄中!!!)

  • 進入tomcat解壓包的 bin 目錄,雙擊 startup.bat 若是能正常啓動而且正常訪問出現tomcat首頁,就說明服務器安裝成功了

Tomcat安裝常見問題

若是啓動Tomcat出現報錯,或者直接一閃而過,就說明Tomcat啓動不了,環境有問題,常見問題有:

  • JAVA_HOME環境變量

  • 端口占用(netstat -ano),http協議工做默認端口:80

  • Catalina_home 環境變量,該變量告訴啓動程序Tomcat在哪裏,若是配置了該變量,那麼啓動的tomcat就以配置的爲準,若是沒有配置,啓動程序會尋找本身所在的tomcat程序

Tomcat的端口是能夠修改的,經過conf文件夾中的server.xml文件第70行(不一樣版本位置不 太同樣,可是差很少)就能夠修改。若是機器上還裝有別的web服務器,頗有可能會佔用端口。要麼修改別的web服務器的端口,要麼直接將別的服務器關閉, 若是進程關閉不了,那確定是該進程是由某個服務在後臺管理,那麼就要先關閉該進程對應的服務,而後再關閉進程!
Tomcat能夠安裝成系統的服務,隨着開機啓動(真正上線之後的操做)

Tomcat目錄

Tomcat目錄結構

Web應用程序

Web應用程序是指瀏覽器訪問的程序,一般也稱爲Web應用。Web應用一般是由多個靜態web資源和動態web資源組成:

  • html、js、css

  • Jsp、Java程序、Jar包

  • 配置文件等

虛擬目錄映射

將上述這些web資源統一使用一個目錄組織起來,這麼目錄就稱爲Web應用所在目錄,Web應用開發完後,若是想提供外界訪問,須要把web應用所在目錄交給web服務器來管理,這個過程稱之爲虛擬目錄映射

虛擬目錄映射有三種方式:

  1. 在server.xml文件的host元素中設置,

<Context path="/xinsiku" docBase="D:\\xinsiku" />,注意在配置在host元素體中。

path用來指定虛擬目錄名稱,docBase用來指定Web應用所在目錄

若是將path配置成 ""空的字符串,那麼該應用就是默認web應用。一個Context表明一個web應用,Context元素還能夠用來配置一些別的資源(數據庫鏈接池等)。

  1. 在conf文件夾中的Catalina文件夾中的localhost文件夾下,創建xml來配置(查看文檔)

在這個文件夾中創建一個xml,該xml的名字就是虛擬目錄名稱,在該xml中只要配置docBase就能夠了,這樣配置的好處是不須要重啓服務器就能夠映射。

  • 這種配置方式還可使用多級訪問路徑的配置方法來實現多級訪問(foo#bar.xml)

  • 默認的應用使用 ROOT.xml 來配置

  1. 自動映射:Tomcat服務器會自動管理webapps目錄下的全部web應用,無需配置,能夠直接訪問

Web應用的組織結構

在JavaEE規範中,不一樣類型的web資源是有嚴格存放規則的,不能亂放,不然會沒法訪問或啓動失敗。
web目錄結構
在這些資源中,web.xml是很是重要的一個文件,咱們使用它來管理整個web應用的相關配置,用它能夠配置網站的首頁、映射servlet、配置應用的監聽器、過濾器等等。

配置虛擬主機

在一個tomcat中能夠放置多個網站,配置虛擬主機,就是配置多個網站。配置虛擬主機,使用host元素來配置:

1 <Host name="www.newthinkingcool.com" appBase="D:\ thinking" >
2     <Context path="/mail" docBase="D:\thinking\mail"/>
3 </Host>

能夠配置多個虛擬主機
配置默認的虛擬主機,在host的父元素 元素的屬性中配置: defaultHost="localhost"

Tomcat體系結構圖:
Tomcat體系結構圖

其它問題

  • 畫圖演示web資源的訪問過程

  • 將web應用發成war包:jar -cvf warname.war web應用所在目錄

  • tomcat的reloadable配置(不推薦)

Tomcat的加密配置

  • 密碼學

  • 對稱加密

  • 不對稱加密

  • base64與MD5

對稱加密與不對稱加密

對稱加密

對稱加密也成爲單密鑰加密,用的是同一個密鑰,在傳輸中,信息被攔截,容易被破解。

不對稱加密
不對稱加密,擁有兩把密鑰。

  • 使用了不對稱加密,數據依然會被攔截,可是幾乎是沒法破解的,只能用對應的私鑰才能解密

  • 第三方能夠攔截公鑰的獲取,將本身的公鑰發送給接收方,這樣接收方拿到非法公鑰,編寫密文,而後第三方再次攔截密文,用本身的私鑰解密來竊取信息,爲了解決這個問題,就出現了CA組織,數字證書。

  • 瀏覽器會去驗證這個公鑰(數字證書)是否是權威組織頒發的,若是不是,則會提示危險警告

  • 即使有了CA,可是第三方任然能截取數字證書信息,而後假裝成發送者給接收方發送信息,爲了解決這個問題,就要使用雙向密鑰驗證,也叫雙向證書。

雙向證書

雙向證書

Tomcat的加密鏈接

Tomcat的加密鏈接須要使用一個口令:keytool -genkey -alias tomcat -keyalg RSA

  • 使用keytool工具生成密鑰庫

  • 將密鑰庫放入conf文件夾

  • 修改server.xml,啓動安全鏈接

    • 找到8443端口的鏈接器,去掉註釋

    • 若是是tomcat7,修改 protocol="org.apache.coyote.http11.Http11Protocol" ,由於tomcat7默認使用的是APR,APR是SSL的實現,還有一種實現是JSSE,這裏改爲JSSE,由於APR須要一些別的配置

    • 給鏈接器添加兩個屬性:keystoreFile,指定密鑰庫的存放地址, keystorePass,指定密鑰庫的密碼。

Tomcat服務器的管理平臺

  • 用於遠程管理tomcat下的web應用

  • tomcat-users.xml

相關文章
相關標籤/搜索