WEB,在英語中web即表示網頁的意思,它用於表示Internet主機上供外界訪問的資源。
Internet上供外界訪問的Web資源分爲:php
靜態web資源(如html 頁面):指web頁面中供人們瀏覽的數據始終是不變。css
動態web資源:指web頁面中供人們瀏覽的數據是由程序產生的,不一樣時間點訪問web頁面看到的內容各不相同。html
靜態web資源開發技術:htmljava
經常使用動態web資源開發技術:JSP/Servlet、ASP、PHP等程序員
在Java中,動態web資源開發技術統稱爲Javaweb。web
WEB應用程序指供瀏覽器訪問的程序,一般也簡稱爲web應用。例若有a.html
、b.html
…..多個web資源,這多個web資源用於對外提供服務,此時應把這多個web資源放在一個目錄中,以組成一個web應用(或web應用程序)
一個web應用由多個靜態web資源和動態web資源組成,如:html
、css
、js
文件,Jsp
文件、java
程序、支持jar包、配置文件等等。
Web應用開發好後,若想供外界訪問,須要把web應用所在目錄交給web服務器管理,這個過程稱之爲<font color="red">虛似目錄的映射數據庫
WEB發展的兩個階段:靜態、動態apache
htm、html,這些是網頁的後綴,若是如今在一個服務器上直接讀取這些內容,那麼意味着是把這些網頁的內容經過網絡服務器展示給用戶。整個靜態WEB操做的過程圖以下:編程
在靜態WEB程序中,客戶端使用WEB瀏覽器(IE、FireFox等)通過網絡(Network)鏈接到服務器上,使用HTTP協議發起一個請求(Request),告訴服務器我如今須要獲得哪一個頁面,全部的請求交給WEB服務器,以後WEB服務器根據用戶的須要,從文件系統(存放了全部靜態頁面的磁盤)取出內容。以後經過WEB服務器返回給客戶端,客戶端接收到內容以後通過瀏覽器渲染解析,獲得顯示的效果。windows
靜態WEB中存在如下幾個缺點:
一、Web頁面中的內容沒法動態更新,全部的用戶每時每刻看見的內容和最終效果都是同樣的。
爲了可讓靜態的WEB的顯示更加好看,能夠加入了JavaScript以完成一些頁面上的顯示特效,可是這些特效都是在客戶端上藉助於瀏覽器展示給用戶的,因此在服務器上自己並無任何的變化。
實現靜態WEB客戶端動態效果的手段:
JavaScript
VBScript
在實際的開發中JavaScript使用得最多。
二、靜態WEB沒法鏈接數據庫,沒法實現和用戶的交互。
使用數據庫保存數據是如今大多數系統的選擇,由於數據庫中能夠方便地管理數據,增刪改查操做可使用標準的SQL語句完成。
所謂的動態不是指頁面會動,主要的特性的是:「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服務器將內容發送回客戶端瀏覽器進行解析執行。
動態WEB如今的實現手段很是多,較爲常見的有如下幾種:
Microsoft ASP、ASP.NET
PHP
JAVA Servlet/JSP
一、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服務器是指駐留於因特網上某種類型計算機的程序,是能夠向發出請求的瀏覽器提供文檔的程序。當Web瀏覽器(客戶端)連到服務器上並請求文件時,服務器將處理該請求並將文件反饋到該瀏覽器上,附帶的信息會告訴瀏覽器如何查看該文件(即文件類型)。
二、服務器是一種被動程序:只有當Internet上運行在其餘計算機中的瀏覽器發出請求時,服務器纔會響應。
一、WebLogic
WebLogic是美國bea公司出品的一個application server。BEA WebLogic是用於開發、集成、部署和管理大型分佈式Web應用、網絡應用和數據庫應用的Java應用服務器。將Java的動態功能和Java Enterprise標準的安全性引入大型網絡應用的開發、集成、部署和管理之中。是目前應用最普遍的Web服務器,支持J2EE規範,並且不斷的完善以適應新的開發要求,啓動界面如圖
二、WebSphere
WebSphere Application Server 是一種功能完善、開放的Web應用程序服務器,是IBM公司電子商務計劃的核心部分,它是基於 Java 的應用環境,用於創建、部署和管理 Internet 和 Intranet Web 應用程序。這一整套產品進行了擴展,以適應 Web應用程序服務器的須要,範圍從簡單到高級直到企業級。啓動界面如圖:
三、Tomcat
TomcatTomcat是一個實現了JAVA EE標準的最小的WEB服務器,是Apache 軟件基金會的Jakarta 項目中的一個核心項目,由Apache、Sun 和其餘一些公司及我的共同開發而成。由於Tomcat 技術先進、性能穩定,並且開源免費,於是深受Java 愛好者的喜好並獲得了部分軟件開發商的承認,成爲目前比較流行的Web 應用服務器。學習JavaWeb開發通常都使用Tomcat服務器,該服務器支持所有JSP以及Servlet規範,啓動界面如圖:
四、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資源,供用戶使用瀏覽器訪問。
在本地計算機上隨便建立一個web頁面,用戶是沒法訪問到的,可是若是啓動tomcat服務器,把web頁面放在tomcat服務器中,用戶就能夠訪問了。這說明什麼問題?
一、無論什麼web資源,想被遠程計算機訪問,都必須有一個與之對應的網絡通訊程序,當用戶來訪問時,這個網絡通訊程序讀取web資源數據,並把數據發送給來訪者。
二、WEB服務器就是這樣一個程序,它用於完成底層網絡通迅。使用這些服務器,We應用的開發者只須要關注web資源怎麼編寫,而不須要關心資源如何發送到客戶端手中,從而極大的減輕了開發者的開發工做量。
下面是一個模仿的Web服務器代碼:
package demo1201; import java.io.FileInputStream; import java.io.IOException; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; public class Server { /**模擬web服務器的訪問過程 * @param args * @throws IOException */ public static void main(String[] args) throws IOException { ServerSocket server = new ServerSocket(9999); Socket sock = server.accept(); FileInputStream in = new FileInputStream("C:\\a\\1.html"); OutputStream out = sock.getOutputStream(); int len = 0; byte buffer[] = new byte[1024]; while((len = in.read(buffer)) > 0){ out.write(buffer, 0 , len); } in.close(); out.close(); sock.close(); server.close(); } }
Tomcat官方站點:http://jakarta.apache.org
下載Tomcat安裝程序包:http://tomcat.apache.org/
點擊【Download】跳轉到以下圖所示的下載頁面
tar.gz文件是Linux操做系統下的安裝版本
exe文件是Windows系統下的安裝版本
zip文件是Windows系統下的壓縮版本
下載完成後,獲得的是一個壓縮包,將壓縮包解壓就能夠完成Tomcat服務器的安裝
將壓縮包解壓後,獲得的就是以下圖所示的文件夾,這樣就完成了Tomcat服務器的安裝。
啓動Tomcat服務器
雙擊 bin 目錄下的 startup.bat 文件啓動Tomcat服務器
測試Tomcat服務器
打開瀏覽器,輸入http://localhost:8080/,能顯示以下界面表明安裝成功。
致使Tomcat服務器沒法正常啓動的緣由通常來講就是以下的兩個:
一、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)\Java\jdk1.7.0"
,設置好變量值以後,點擊【肯定】按鈕,JAVA_HOME環境變量就設置完成,以下圖所示:系統變量中多了一個"JAVA_HOME"
變量。
正常來講,學習Java開發的第一步就是配置Path
環境變量,比較好的配置方式是先配置JAVA_HOME
環境變量,而後在Path變量中使用"%JAVA_HOME%"
引用JAVA_HOME
變量的值。
因此這個JAVA_HOME環境變量在Window中通常都是已經配置好了的,若是忘記配置JAVA_HOME環境變量,那麼可使用上述的方式配置
二、端口占用問題
由於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服務器啓動時的端口是否被別的應用程序佔用了。