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