從今天開始,咱們學習JavaWeb開發,那麼什麼是JavaWeb開發,就目前來看,JavaWeb涵蓋的內容和所涉及的領域已經很是廣闊了,簡單來講,Web技術基本都是用來開發網站的,可是網站與網站的區別是很是大的。
JavaWeb技術應用:css
電子商務平臺html
各類社區web
銀行、電信領域以及各種金融行業的應用系統數據庫
企業內部大型應用系統(ERP、CRM、OA等)apache
大數據(以Hadoop爲中心的技術羣)編程
搜索引擎(Nutch、Lucene、Solr等)瀏覽器
雲計算、雲服務等tomcat
Web開發已是將來的大勢所趨(WebQQ,ChromeOS,強悍的HTML5),不論如今是否進入到移動時代,可是將來必然是網絡時代,全部的任何形式的客戶端,都須要網絡服務端來提供服務。因此學好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資源(HTML),想讓用戶經過Internet來訪問,就須要咱們編寫一些基於Internet傳輸規則的程序(這樣的程序就是 Web服務器),好比,經過使用Java網絡編程的相關技術(網絡套接字)就能夠編寫一個支持網絡訪問的程序,可是功能比較有限。Tomcat就是一個寫 好的支持網絡訪問的,功能強大的程序,它能對外提供Web資源的訪問,因此它就是一個Web服務器,而它使用Java編寫的,因此Tomcat就是一個 JavaWeb服務器。
Tomcat是一個JavaWeb服務器,也稱之爲Web容器。
一個示例,啓動tomcat,將一個Web資源放入Tomcat服務器,經過網絡客戶端,就能夠直接訪問該資源了。
WebLogic,它是Oracle公司的產品(收費),是使用很是普遍的Web服務器,支持JavaEE規範。
WebSphere,它是IBM公司的產品(收費,可是隻要不商用,能夠無償使用),支持JavaEE規範。
Tomcat,Apache公司產品(開源免費),支持所有的Servlet和JSP規範。
首先下載Tomcat,選擇正確的版本,推薦使用綠色安裝版,也就是zip包版本
綠色版無需安裝,解壓後就直接可使用(切記不要將其放入到帶有中文或空格的目錄中!!!)
進入tomcat解壓包的 bin 目錄,雙擊 startup.bat 若是能正常啓動而且正常訪問出現tomcat首頁,就說明服務器安裝成功了
若是啓動Tomcat出現報錯,或者直接一閃而過,就說明Tomcat啓動不了,環境有問題,常見問題有:
JAVA_HOME環境變量
端口占用(netstat -ano
),http協議工做默認端口:80
Catalina_home 環境變量,該變量告訴啓動程序Tomcat在哪裏,若是配置了該變量,那麼啓動的tomcat就以配置的爲準,若是沒有配置,啓動程序會尋找本身所在的tomcat程序
Tomcat的端口是能夠修改的,經過conf文件夾中的server.xml文件第70行(不一樣版本位置不 太同樣,可是差很少)就能夠修改。若是機器上還裝有別的web服務器,頗有可能會佔用端口。要麼修改別的web服務器的端口,要麼直接將別的服務器關閉, 若是進程關閉不了,那確定是該進程是由某個服務在後臺管理,那麼就要先關閉該進程對應的服務,而後再關閉進程!
Tomcat能夠安裝成系統的服務,隨着開機啓動(真正上線之後的操做)
Web應用程序是指瀏覽器訪問的程序,一般也稱爲Web應用。Web應用一般是由多個靜態web資源和動態web資源組成:
html、js、css
Jsp、Java程序、Jar包
配置文件等
將上述這些web資源統一使用一個目錄組織起來,這麼目錄就稱爲Web應用所在目錄,Web應用開發完後,若是想提供外界訪問,須要把web應用所在目錄交給web服務器來管理,這個過程稱之爲虛擬目錄映射。
虛擬目錄映射有三種方式:
在server.xml文件的host元素中設置,
<Context path="/xinsiku" docBase="D:\\xinsiku" />
,注意在配置在host元素體中。
path用來指定虛擬目錄名稱,docBase用來指定Web應用所在目錄
若是將path配置成
""
空的字符串,那麼該應用就是默認web應用。一個Context表明一個web應用,Context元素還能夠用來配置一些別的資源(數據庫鏈接池等)。
在conf文件夾中的Catalina文件夾中的localhost文件夾下,創建xml來配置(查看文檔)
在這個文件夾中創建一個xml,該xml的名字就是虛擬目錄名稱,在該xml中只要配置docBase就能夠了,這樣配置的好處是不須要重啓服務器就能夠映射。
這種配置方式還可使用多級訪問路徑的配置方法來實現多級訪問(foo#bar.xml)
默認的應用使用 ROOT.xml 來配置
自動映射:Tomcat服務器會自動管理webapps目錄下的全部web應用,無需配置,能夠直接訪問
在JavaEE規範中,不一樣類型的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"
。
畫圖演示web資源的訪問過程
將web應用發成war包:jar -cvf warname.war web應用所在目錄
tomcat的reloadable配置(不推薦)
密碼學
對稱加密
不對稱加密
base64與MD5
對稱加密也成爲單密鑰加密,用的是同一個密鑰,在傳輸中,信息被攔截,容易被破解。
使用了不對稱加密,數據依然會被攔截,可是幾乎是沒法破解的,只能用對應的私鑰才能解密
第三方能夠攔截公鑰的獲取,將本身的公鑰發送給接收方,這樣接收方拿到非法公鑰,編寫密文,而後第三方再次攔截密文,用本身的私鑰解密來竊取信息,爲了解決這個問題,就出現了CA組織,數字證書。
瀏覽器會去驗證這個公鑰(數字證書)是否是權威組織頒發的,若是不是,則會提示危險警告
即使有了CA,可是第三方任然能截取數字證書信息,而後假裝成發送者給接收方發送信息,爲了解決這個問題,就要使用雙向密鑰驗證,也叫雙向證書。
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下的web應用
tomcat-users.xml