一个扰、基本概念
1巷波、WEB開發(fā)的相關知識
WEB萎津,在英語中web即表示網頁的意思,它用于表示Internet主機上供外界訪問的資源抹镊。
Internet上供外界訪問的Web資源分為:
靜態(tài)web資源(如html 頁面):指web頁面中供人們?yōu)g覽的數據始終是不變锉屈。
動態(tài)web資源:指web頁面中供人們?yōu)g覽的數據是由程序產生的,不同時間點訪問web頁面看到的內容各不相同垮耳。
靜態(tài)web資源開發(fā)技術:Html
常用動態(tài)web資源開發(fā)技術:JSP/Servlet颈渊、ASP杈帐、PHP等
在Java中她君,動態(tài)web資源開發(fā)技術統(tǒng)稱為Javaweb。
Java Web相關最新視頻教程在線觀看:https://www.bilibili.com/video/BV1Z3411C7NZ/
2、WEB應用程序
WEB應用程序指供瀏覽器訪問的程序投储,通常也簡稱為web應用。例如有a.html 睹簇、b.html…..多個web資源驶悟,這多個web資源用于對外提供服務,此時應把這多個web資源放在一個目錄中妹田,以組成一個web應用(或web應用程序)
一個web應用由多個靜態(tài)web資源和動態(tài)web資源組成唬党,如:html、css鬼佣、js文件驶拱,Jsp文件、java程序晶衷、支持jar包蓝纲、配置文件等等。
Web應用開發(fā)好后晌纫,若想供外界訪問税迷,需要把web應用所在目錄交給web服務器管理,這個過程稱之為虛似目錄的映射
3锹漱、WEB發(fā)展史
WEB發(fā)展的兩個階段:靜態(tài)箭养、動態(tài)
4、靜態(tài)WEB
*htm哥牍、*html毕泌,這些是網頁的后綴,如果現在在一個服務器上直接讀取這些內容嗅辣,那么意味著是把這些網頁的內容通過網絡服務器展現給用戶撼泛。整個靜態(tài)WEB操作的過程圖如下
在靜態(tài)WEB程序中,客戶端使用WEB瀏覽器(IE澡谭、FireFox等)經過網絡(Network)連接到服務器上愿题,使用HTTP協議發(fā)起一個請求(Request),告訴服務器我現在需要得到哪個頁面蛙奖,所有的請求交給WEB服務器潘酗,之后WEB服務器根據用戶的需要,從文件系統(tǒng)(存放了所有靜態(tài)頁面的磁盤)取出內容雁仲。之后通過WEB服務器返回給客戶端崎脉,客戶端接收到內容之后經過瀏覽器渲染解析,得到顯示的效果伯顶。
靜態(tài)WEB中存在以下幾個缺點:
1囚灼、Web頁面中的內容無法動態(tài)更新骆膝,所有的用戶每時每刻看見的內容和最終效果都是一樣的。
為了可以讓靜態(tài)的WEB的顯示更加好看灶体,可以加入了JavaScript以完成一些頁面上的顯示特效阅签,但是這些特效都是在客戶端上借助于瀏覽器展現給用戶的,所以在服務器上本身并沒有任何的變化蝎抽。
實現靜態(tài)WEB客戶端動態(tài)效果的手段:
?JavaScript
?VBScript
在實際的開發(fā)中JavaScript使用得最多政钟。
2、靜態(tài)WEB無法連接數據庫樟结,無法實現和用戶的交互养交。
使用數據庫保存數據是現在大多數系統(tǒng)的選擇,因為數據庫中可以方便地管理數據瓢宦,增刪改查操作可以使用標準的SQL語句完成碎连。
5、動態(tài)WEB
所謂的動態(tài)不是指頁面會動驮履,主要的特性的是:“WEB的頁面展示效果因時因人而變”鱼辙,而且動態(tài)WEB具有交互性,WEB的頁面的內容可以動態(tài)更新玫镐。整個動態(tài)WEB操作的過程圖如下:
動態(tài)WEB中倒戏,程序依然使用客戶端和服務端,客戶端依然使用瀏覽器(IE恐似、FireFox等)杜跷,通過網絡(Network)連接到服務器上,使用HTTP協議發(fā)起請求(Request)矫夷,現在的所有請求都先經過一個WEB?Server?Plugin(服務器插件)來處理葱椭,此插件用于區(qū)分是請求的是靜態(tài)資源(*.htm或者是*.htm)還是動態(tài)資源。
如果WEB?Server?Plugin發(fā)現客戶端請求的是靜態(tài)資源(*.htm或者是*.htm)口四,則將請求直接轉交給WEB服務器,之后WEB服務器從文件系統(tǒng)中取出內容秦陋,發(fā)送回客戶端瀏覽器進行解析執(zhí)行蔓彩。
如果WEB?Server?Plugin發(fā)現客戶端請求的是動態(tài)資源(*.jsp、*.asp/*.aspx驳概、*.php)赤嚼,則先將請求轉交給WEB?Container(WEB容器),在WEB?Container中連接數據庫顺又,從數據庫中取出數據等一系列操作后動態(tài)拼湊頁面的展示內容更卒,拼湊頁面的展示內容后,把所有的展示內容交給WEB服務器稚照,之后通過WEB服務器將內容發(fā)送回客戶端瀏覽器進行解析執(zhí)行蹂空。
6俯萌、動態(tài)WEB應用的實現手段
動態(tài)WEB現在的實現手段非常多,較為常見的有以下幾種:
Microsoft?ASP上枕、ASP.NET
PHP
JAVA?Servlet/JSP
1咐熙、Microsoft?ASP、ASP.NET
微軟公司動態(tài)WEB開發(fā)是比較早的辨萍,而且最早在國內最流行的是ASP棋恼。ASP就是在HTML語言之中增加了VB腳本,但是標準的開發(fā)應用應該是使用ASP+COM锈玉,但是實際情況來看爪飘,在開發(fā)ASP的時候基本上都在一個頁面中寫上成百上千的代碼,頁面代碼極其混亂拉背。
ASP本身有開發(fā)平臺的限制:Windows+IIS+SQL?Server/Access师崎,ASP只能運行在Windows操作系統(tǒng)上,ASP現在基本上已經淘汰去团,現在基本上都是使用ASP.NET進行開發(fā)抡诞,ASP.NET在性能有了很大的改善,而且開發(fā)迅速土陪,但是依然受限于平臺昼汗。ASP.NET中主要是使用C#語言。
2.PHP
PHP開發(fā)速度很快鬼雀,功能強大顷窒,跨平臺(平臺指的就是運行的操作系統(tǒng)),而且代碼也簡單源哩。
3.Servlet/JSP
這是SUN公司(SUN現在已經被Oracle公司收購)主推的B/S架構的實現語言鞋吉,是基于JAVA語言發(fā)展起來的,因為JAVA語言足夠簡單励烦,而且很干凈谓着。
Servlet/JSP技術的性能也是非常高的,不受平臺的限制坛掠,各個平臺基本上都可以使用赊锚。而且在運行中是使用多線程的處理方式,所以性能非常高屉栓。
SUN公司最早推出的WEB技術推出的是Servlet程序舷蒲,Servlet程序本身使用的時候有一些問題,所有的程序是采用JAVA代碼+HTML的方式編寫的友多,即牲平,要使用JAVA輸出語句,一行一行地輸出所有的HTML代碼域滥,之后纵柿,SUN公司受到了ASP的啟發(fā)蜈抓,發(fā)展出了JSP(Java?Server?Page),JSP某些代碼的編寫效果與ASP是非常相似的藐窄。這樣可以很方便地使一些ASP程序員轉向JSP的學習资昧,加大市場的競爭力度。
二荆忍、WEB服務器
1格带、WEB服務器簡介
1、Web服務器是指駐留于因特網上某種類型計算機的程序刹枉,是可以向發(fā)出請求的瀏覽器提供文檔的程序叽唱。當Web瀏覽器(客戶端)連到服務器上并請求文件時,服務器將處理該請求并將文件反饋到該瀏覽器上微宝,附帶的信息會告訴瀏覽器如何查看該文件(即文件類型)棺亭。
2、服務器是一種被動程序:只有當Internet上運行在其他計算機中的瀏覽器發(fā)出請求時蟋软,服務器才會響應镶摘。
2、常見的Web服務器介紹
1岳守、WebLogic
WebLogic是美國bea公司出品的一個application?server凄敢。BEA?WebLogic是用于開發(fā)、集成湿痢、部署和管理大型分布式Web應用涝缝、網絡應用和數據庫應用的Java應用服務器。將Java的動態(tài)功能和Java?Enterprise標準的安全性引入大型網絡應用的開發(fā)譬重、集成拒逮、部署和管理之中。是目前應用最廣泛的Web服務器臀规,支持J2EE規(guī)范滩援,而且不斷的完善以適應新的開發(fā)要求,啟動界面如圖
2塔嬉、WebSphere
WebSphere Application Server 是一種功能完善玩徊、開放的Web應用程序服務器,是IBM公司電子商務計劃的核心部分邑遏,它是基于 Java 的應用環(huán)境,用于建立恰矩、部署和管理 Internet 和 Intranet Web 應用程序记盒。這一整套產品進行了擴展,以適應 Web應用程序服務器的需要外傅,范圍從簡單到高級直到企業(yè)級纪吮。啟動界面如圖:
3俩檬、Tomcat
TomcatTomcat是一個實現了JAVA?EE標準的最小的WEB服務器,是Apache?軟件基金會的Jakarta?項目中的一個核心項目碾盟,由Apache棚辽、Sun?和其他一些公司及個人共同開發(fā)而成。因為Tomcat?技術先進冰肴、性能穩(wěn)定屈藐,而且開源免費,因而深受Java?愛好者的喜愛并得到了部分軟件開發(fā)商的認可熙尉,成為目前比較流行的Web?應用服務器联逻。學習JavaWeb開發(fā)一般都使用Tomcat服務器,該服務器支持全部JSP以及Servlet規(guī)范检痰,啟動界面如圖:
4包归、IIS
Microsoft的Web服務器產品為Internet Information Services (IIS),IIS 是允許在公共Intranet或Internet上發(fā)布信息的Web服務器铅歼。ⅡS是目前最流行的Web服務器產品之一公壤,很多著名的網站都是建立在ⅡS的平 臺上。IIS提供了一個圖形界面的管理工具椎椰,稱為Internet信息服務管理器厦幅,可用于監(jiān)視配置和控制Internet服務。
IIS是一種Web服務組件俭识,其中包括Web服務器慨削、FTP服務器、NNTP服務器和SMTP服務器套媚,分別用于網頁瀏覽缚态、文件傳輸、新聞服務和郵件發(fā)送等方面堤瘤,它使得在網絡(包括互聯網和局域網)上發(fā)布信息成了一件很容易的事玫芦。它提供ISAPI(Intranet Server API)作為擴展Web服務器功能的編程接口;同時本辐,它還提供一個Internet數據庫連接器桥帆,可以實現對數據庫的查詢和更新。
? 學習web開發(fā)慎皱,需要先安裝一臺web服務器老虫,然后再在web服務器中開發(fā)相應的web資源,供用戶使用瀏覽器訪問茫多。
三祈匙、搭建JavaWeb應用開發(fā)環(huán)境——Tomcat服務器
1、疑問:學習web開發(fā),為什么必須要先裝一個WEB服務器夺欲?
在本地計算機上隨便創(chuàng)建一個web頁面跪帝,用戶是無法訪問到的,但是如果啟動tomcat服務器些阅,把web頁面放在tomcat服務器中伞剑,用戶就可以訪問了。這說明什么問題市埋?
1黎泣、不管什么web資源,想被遠程計算機訪問腰素,都必須有一個與之對應的網絡通信程序聘裁,當用戶來訪問時,這個網絡通信程序讀取web資源數據弓千,并把數據發(fā)送給來訪者衡便。
2、WEB服務器就是這樣一個程序洋访,它用于完成底層網絡通迅镣陕。使用這些服務器,We應用的開發(fā)者只需要關注web資源怎么編寫姻政,而不需要關心資源如何發(fā)送到客戶端手中呆抑,從而極大的減輕了開發(fā)者的開發(fā)工作量。
2汁展、下載和安裝Tomcat服務器
Tomcat官方站點:http://jakarta.apache.org
下載Tomcat安裝程序包:http://tomcat.apache.org/
點擊【Download】跳轉到如下圖所示的下載頁面鹊碍、
tar.gz文件是Linux操作系統(tǒng)下的安裝版本
exe文件是Windows系統(tǒng)下的安裝版本
zip文件是Windows系統(tǒng)下的壓縮版本
下載完成后,得到的是一個壓縮包食绿,將壓縮包解壓就可以完成Tomcat服務器的安裝
將壓縮包解壓后侈咕,這樣就完成了Tomcat服務器的安裝。
3器紧、啟動和測試Tomcat服務器
啟動Tomcat服務器
雙擊 bin 目錄下的 startup.bat 文件啟動Tomcat服務器
測試Tomcat服務器
打開瀏覽器耀销,輸入http://localhost:8080/,能顯示如下界面代表安裝成功铲汪。
4熊尉、Tomcat啟動常見問題
導致Tomcat服務器無法正常啟動的原因一般來說就是如下的兩個:
1、JAVA_HOME環(huán)境變量設置問題
要想雙擊bin目錄下的startup.bat文件啟動Tomcat服務器掌腰,首先要做的就是在windows中設置JAVA_HOME環(huán)境變量狰住,因為Tomcat服務器的啟動需要用到這個JAVA_HOME環(huán)境變量,如果windows中不存在JAVA_HOME環(huán)境變量齿梁,則Tomcat服務器是無法啟動的催植。
在Window中配置JAVA_HOME變量
操作步驟(win7系統(tǒng)):計算機→右鍵“屬性”→高級系統(tǒng)設置→高級→環(huán)境變量,如下圖所示:
點擊系統(tǒng)變量下面的“【新建】”,彈出一個新建系統(tǒng)變量對話框查邢,首先在變量名寫上JAVA_HOME,顧名思義酵幕,JAVA_HOME的含義就是JDK的安裝路徑扰藕,,然后在變量值寫JDK的安裝路徑芳撒,如這里設置的變量值是"D:\Program Files (x86)\Java\jdk1.7.0"邓深,設置好變量值之后,點擊【確定】按鈕笔刹,JAVA_HOME環(huán)境變量就設置完成芥备,如下圖所示:系統(tǒng)變量中多了一個"JAVA_HOME"變量。
正常來說舌菜,學習Java開發(fā)的第一步就是配置Path環(huán)境變量萌壳,比較好的配置方式是先配置JAVA_HOME環(huán)境變量,然后在Path變量中使用"%JAVA_HOME%"引用JAVA_HOME變量的值日月。
所以這個JAVA_HOME環(huán)境變量在Window中一般都是已經配置好了的袱瓮,如果忘記配置JAVA_HOME環(huán)境變量,那么可以使用上述的方式配置
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文件拨脉,看看里面的日志記錄信息哆姻,
如果因為8080端口被占用而無法正常啟動,就會記錄如上圖所示的異常信息玫膀,通過查看異常信息矛缨,我們就可知道Tomcat服務器為什么不能夠正常啟動了!
總結:當Tomcat服務器無法正常啟動時,首先檢查是否配置了JAVA_HOME環(huán)境變量箕昭,然后再檢查Tomcat服務器啟動時的端口是否被別的應用程序占用了灵妨。