一、基本概念
1.1、WEB開發的相關知識
WEB,在英語中web即表示網頁的意思,它用于表示Internet主機上供外界通路的資源。
Internet上供外界通路的Web資源分為:
- 靜态web資源(如html 頁面):指web頁面中供人們浏覽的資料始終是不變。
- 動态web資源:指web頁面中供人們浏覽的資料是由程式産生的,不同時間點通路web頁面看到的内容各不相同。
靜态web資源開發技術:Html
常用動态web資源開發技術:JSP/Servlet、ASP、PHP等
在Java中,動态web資源開發技術統稱為Javaweb。
1.2、WEB應用程式
WEB應用程式指供浏覽器通路的程式,通常也簡稱為web應用。例如有a.html 、b.html…..多個web資源,這多個web資源用于對外提供服務,此時應把這多個web資源放在一個目錄中,以組成一個web應用(或web應用程式)
一個web應用由多個靜态web資源和動态web資源組成,如:html、css、js檔案,Jsp檔案、java程式、支援jar包、配置檔案等等。
Web應用開發好後,若想供外界通路,需要把web應用所在目錄交給web伺服器管理,這個過程稱之為虛似目錄的映射
1.3、WEB發展史
WEB發展的兩個階段:靜态、動态
1.4、靜态WEB
*htm、*html,這些是網頁的字尾,如果現在在一個伺服器上直接讀取這些内容,那麼意味着是把這些網頁的内容通過網絡伺服器展現給使用者。整個靜态WEB操作的過程圖如下:
在靜态WEB程式中,用戶端使用WEB浏覽器(IE、FireFox等)經過網絡(Network)連接配接到伺服器上,使用HTTP協定發起一個請求(Request),告訴伺服器我現在需要得到哪個頁面,所有的請求交給WEB伺服器,之後WEB伺服器根據使用者的需要,從檔案系統(存放了所有靜态頁面的磁盤)取出内容。之後通過WEB伺服器傳回給用戶端,用戶端接收到内容之後經過浏覽器渲染解析,得到顯示的效果。
靜态WEB中存在以下幾個缺點:
1、Web頁面中的内容無法動态更新,所有的使用者每時每刻看見的内容和最終效果都是一樣的。
為了可以讓靜态的WEB的顯示更加好看,可以加入了JavaScript以完成一些頁面上的顯示特效,但是這些特效都是在用戶端上借助于浏覽器展現給使用者的,是以在伺服器上本身并沒有任何的變化。
實作靜态WEB用戶端動态效果的手段:
- JavaScript
- VBScript
在實際的開發中javascript使用得最多。
2、靜态WEB無法連接配接資料庫,無法實作和使用者的互動。
使用資料庫儲存資料是現在大多數系統的選擇,因為資料庫中可以友善地管理資料,增删改查操作可以使用标準的SQL語句完成。
1.5、動态WEB
所謂的動态不是指頁面會動,主要的特性的是:“WEB的頁面展示效果因時因人而變”,而且動态WEB具有互動性,WEB的頁面的内容可以動态更新。整個動态WEB操作的過程圖如下:
動态WEB中,程式依然使用用戶端和服務端,用戶端依然使用浏覽器(IE、FireFox等),通過網絡(Network)連接配接到伺服器上,使用HTTP協定發起請求(Request),現在的所有請求都先經過一個WEB Server Plugin(伺服器插件)來處理,此插件用于區分是請求的是靜态資源(*.htm或者是*.htm)還是動态資源。
如果WEB Server Plugin發現用戶端請求的是靜态資源(*.htm或者是*.htm),則将請求直接轉交給WEB伺服器,之後WEB伺服器從檔案系統中取出内容,發送回用戶端浏覽器進行解析執行。
如果WEB Server Plugin發現用戶端請求的是動态資源(*.jsp、*.asp/*.aspx、*.php),則先将請求轉交給WEB Container(WEB容器),在WEB Container中連接配接資料庫,從資料庫中取出資料等一系列操作後動态拼湊頁面的展示内容,拼湊頁面的展示内容後,把所有的展示内容交給WEB伺服器,之後通過WEB伺服器将内容發送回用戶端浏覽器進行解析執行。
1.6、動态WEB應用的實作手段
動态WEB現在的實作手段非常多,較為常見的有以下幾種:
- Microsoft ASP、ASP.NET
- PHP
- JAVA Servlet/JSP
1、Microsoft ASP、ASP.NET
微軟公司動态WEB開發是比較早的,而且最早在國内最流行的是ASP。ASP就是在HTML語言之中增加了VB腳本,但是标準的開發應用應該是使用ASP+COM,但是實際情況來看,在開發ASP的時候基本上都在一個頁面中寫上成百上千的代碼,頁面代碼極其混亂。
ASP本身有開發平台的限制:Windows+IIS+SQL Server/Access,ASP隻能運作在Windows作業系統上,ASP現在基本上已經淘汰,現在基本上都是使用ASP.NET進行開發,ASP.net在性能有了很大的改善,而且開發迅速,但是依然受限于平台。ASP.Net中主要是使用C#語言。
2.PHP
PHP開發速度很快,功能強大,跨平台(平台指的就是運作的作業系統),而且代碼也簡單。
3.Servlet/JSP
這是SUN公司(SUN現在已經被Oracle公司收購)主推的B/S架構的實作語言,是基于JAVA語言發展起來的,因為JAVA語言足夠簡單,而且很幹淨。
Servlet/JSP技術的性能也是非常高的,不受平台的限制,各個平台基本上都可以使用。而且在運作中是使用多線程的處理方式,是以性能非常高。
SUN公司最早推出的WEB技術推出的是Servlet程式,Servlet程式本身使用的時候有一些問題,所有的程式是采用JAVA代碼+HTML的方式編寫的,即,要使用JAVA輸出語句,一行一行地輸出所有的HTML代碼,之後,SUN公司受到了ASP的啟發,發展出了JSP(Java Server Page),JSP某些代碼的編寫效果與ASP是非常相似的。這樣可以很友善地使一些ASP程式員轉向JSP的學習,加大市場的競争力度。
二、WEB伺服器
2.1、WEB伺服器簡介
1、Web伺服器是指駐留于網際網路上某種類型計算機的程式,是可以向送出請求的浏覽器提供文檔的程式。當Web浏覽器(用戶端)連到伺服器上并請求檔案時,伺服器将處理該請求并将檔案回報到該浏覽器上,附帶的資訊會告訴浏覽器如何檢視該檔案(即檔案類型)。
2、伺服器是一種被動程式:隻有當Internet上運作在其他計算機中的浏覽器送出請求時,伺服器才會響應。
2.2、常見的Web伺服器介紹
1、WebLogic
WebLogic是美國bea公司出品的一個application server。BEA WebLogic是用于開發、內建、部署和管理大型分布式Web應用、網絡應用和資料庫應用的Java應用伺服器。将Java的動态功能和Java Enterprise标準的安全性引入大型網絡應用的開發、內建、部署和管理之中。是目前應用最廣泛的Web伺服器,支援J2EE規範,而且不斷的完善以适應新的開發要求,啟動界面如圖
2、WebSphere
WebSphere Application Server 是一種功能完善、開放的Web應用程式伺服器,是IBM公司電子商務計劃的核心部分,它是基于 Java 的應用環境,用于建立、部署和管理 Internet 和 Intranet Web 應用程式。這一整套産品進行了擴充,以适應 Web應用程式伺服器的需要,範圍從簡單到進階直到企業級。啟動界面如圖:
3、Tomcat
TomcatTomcat是一個實作了JAVA EE标準的最小的WEB伺服器,是Apache 軟體基金會的Jakarta 項目中的一個核心項目,由Apache、Sun 和其他一些公司及個人共同開發而成。因為Tomcat 技術先進、性能穩定,而且開源免費,因而深受Java 愛好者的喜愛并得到了部分軟體開發商的認可,成為目前比較流行的Web 應用伺服器。學習JavaWeb開發一般都使用Tomcat伺服器,該伺服器支援全部JSP以及Servlet規範,啟動界面如圖:
4、IIS
Microsoft的Web伺服器産品為Internet Information Services (IIS),IIS 是允許在公共Intranet或Internet上釋出資訊的Web伺服器。ⅡS是目前最流行的Web伺服器産品之一,很多著名的網站都是建立在ⅡS的平 台上。IIS提供了一個圖形界面的管理工具,稱為Internet資訊服務管理器,可用于監視配置和控制Internet服務。
IIS是一種Web服務元件,其中包括Web伺服器、FTP伺服器、NNTP伺服器和SMTP伺服器,分别用于網頁浏覽、檔案傳輸、新聞服務和郵件發送等方面,它使得在網絡(包括網際網路和區域網路)上釋出資訊成了一件很容易的事。它提供ISAPI(Intranet Server API)作為擴充Web伺服器功能的程式設計接口;同時,它還提供一個Internet資料庫連接配接器,可以實作對資料庫的查詢和更新。
學習web開發,需要先安裝一台web伺服器,然後再在web伺服器中開發相應的web資源,供使用者使用浏覽器通路。
三、搭建JavaWeb應用開發環境——Tomcat伺服器
3.1、疑問:學習web開發,為什麼必須要先裝一個WEB伺服器?
在本地計算機上随便建立一個web頁面,使用者是無法通路到的,但是如果啟動tomcat伺服器,把web頁面放在tomcat伺服器中,使用者就可以通路了。這說明什麼問題?
1、不管什麼web資源,想被遠端計算機通路,都必須有一個與之對應的網絡通信程式,當使用者來通路時,這個網絡通信程式讀取web資源資料,并把資料發送給來訪者。
2、WEB伺服器就是這樣一個程式,它用于完成底層網絡通迅。使用這些伺服器,We應用的開發者隻需要關注web資源怎麼編寫,而不需要關心資源如何發送到用戶端手中,進而極大的減輕了開發者的開發工作量。
3.2、下載下傳和安裝Tomcat伺服器
Tomcat官方站點:http://jakarta.apache.org
下載下傳Tomcat安裝程式包:http://tomcat.apache.org/
點選【Download】跳轉到如下圖所示的下載下傳頁面
- tar.gz檔案是Linux作業系統下的安裝版本
- exe檔案是Windows系統下的安裝版本
- zip檔案是Windows系統下的壓縮版本
下載下傳完成後,得到的是一個壓縮包,将壓縮包解壓就可以完成Tomcat伺服器的安裝
将壓縮包解壓後,得到的就是如下圖所示的檔案夾,這樣就完成了Tomcat伺服器的安裝。
3.3、啟動和測試Tomcat伺服器
啟動Tomcat伺服器
輕按兩下 bin 目錄下的 startup.bat 檔案啟動Tomcat伺服器
測試Tomcat伺服器
打開浏覽器,輸入http://localhost:8080/,能顯示如下界面代表安裝成功。
3.4、Tomcat啟動常見問題
導緻Tomcat伺服器無法正常啟動的原因一般來說就是如下的兩個:
1、JAVA_HOME環境變量設定問題
要想輕按兩下bin目錄下的startup.bat檔案啟動Tomcat伺服器,首先要做的就是在windows中設定JAVA_HOME環境變量,因為Tomcat伺服器的啟動需要用到這個JAVA_HOME環境變量,如果windows中不存在JAVA_HOME環境變量,則Tomcat伺服器是無法啟動的。
在Window中配置JAVA_HOME變量
操作步驟(win7系統):計算機→右鍵“屬性”→進階系統設定→進階→環境變量,如下圖所示:
點選系統變量下面的“【建立】”,彈出一個建立系統變量對話框,首先在變量名寫上JAVA_HOME,顧名思義,JAVA_HOME的含義就是JDK的安裝路徑,,然後在變量值寫JDK的安裝路徑,如這裡設定的變量值是"D:Program Files (x86)Javajdk1.7.0",設定好變量值之後,點選【确定】按鈕,JAVA_HOME環境變量就設定完成,如下圖所示:系統變量中多了一個"JAVA_HOME"變量。
正常來說,學習Java開發的第一步就是配置Path環境變量,比較好的配置方式是先配置JAVA_HOME環境變量,然後在Path變量中使用"%JAVA_HOME%"引用JAVA_HOME變量的值。
是以這個JAVA_HOME環境變量在Window中一般都是已經配置好了的,如果忘記配置JAVA_HOME環境變量,那麼可以使用上述的方式配置
2、端口占用問題
因為Tomcat伺服器啟動時是需要預設是使用8080端口的,如果這個8080端口被别的應用程式占用了,那麼Tomcat伺服器就無法正常啟動,看到的現象就是"Tomcat伺服器啟動界面會列印出異常錯誤資訊,然後就自動關閉了",如下圖所示:
由于這個視窗從啟動到關閉的時間非常短,我們很難通過這個視窗看到Tomcat啟動時的報錯異常資訊,是以我們一般隻能通過Tomcat伺服器的記錄的log(日志)資訊去檢視Tomcat伺服器的運作情況。
在Tomcat伺服器的根目錄下有一個logs檔案夾,
logs檔案夾存放Tomcat 的日志檔案,打開logs檔案夾,可以看到裡面的log檔案,其中有一個以"catalina.yyyy-MM-dd.log"形式命名的log檔案,例如"catalina.2014-05-17.log"日志檔案就是記錄Tomcat伺服器2014-05-17這一天的運作情況。
打開catalina.2014-05-17.log檔案,看看裡面的日志記錄資訊,
日志資訊裡面清楚的記錄了Tomcat伺服器的運作情況,如果因為8080端口被占用而無法正常啟動,就會記錄如上圖所示的異常資訊,通過檢視異常資訊,我們就可知道Tomcat伺服器為什麼不能夠正常啟動了!
總結:當Tomcat伺服器無法正常啟動時,首先檢查是否配置了JAVA_HOME環境變量,然後再檢查Tomcat伺服器啟動時的端口是否被别的應用程式占用了。