web開發入門
原文地址:https://blog.csdn.net/weixin_33733810/article/details/86326765
引入
軟件結構分類:
CS結構:客戶端和服務器端
特點:
1)必須安裝特點的客戶端程序
2)服務器端升級,客戶端同步升級
BS結構:瀏覽器和服務器端
特點:
1)不需要安裝特點的客戶端(只需要瀏覽器)
2)服務器端升級,客戶端不需要升級的。
WEB,在英語中 web即表示網頁 的意思,它用於表示Internet主機上供外界訪問的資源。
Internet上供外界訪問的Web資源分爲:
靜態web資源(如html 頁面):指web頁面中供人們瀏覽的數據始終是不變。
動態web資源:指web頁面中供人們瀏覽的數據是由程序產生的,不同時間點訪問web頁面看到的內容各不相同。
靜態web資源開發技術:HTML
常用動態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服務器管理,這個過程稱之爲虛似目錄的映射
靜態WEB
*htm、*html,這些是網頁的後綴,如果現在在一個服務器上直接讀取這些內容,那麼意味着是把這些網頁的內容通過網絡服務器展現給用戶。
在靜態WEB程序中,客戶端使用WEB瀏覽器(IE、FireFox等)經過網絡(Network)連接到服務器上,使用HTTP協議發起一個請求(Request),告訴服務器我現在需要得到哪個頁面,所有的請求交給WEB服務器,之後WEB服務器根據用戶的需要,從文件系統(存放了所有靜態頁面的磁盤)取出內容。之後通過WEB服務器返回給客戶端,客戶端接收到內容之後經過瀏覽器渲染解析,得到顯示的效果。
靜態WEB中存在以下幾個缺點:
1、Web頁面中的內容無法動態更新,所有的用戶每時每刻看見的內容和最終效果都是一樣的。
爲了可以讓靜態的WEB的顯示更加好看,可以加入了JavaScript以完成一些頁面上的顯示特效,但是這些特效都是在客戶端上藉助於瀏覽器展現給用戶的,所以在服務器上本身並沒有任何的變化。
實現靜態WEB客戶端動態效果的手段:
- JavaScript
- VBScript
在實際的開發中JavaScript使用得最多。
2、靜態WEB無法連接數據庫,無法實現和用戶的交互。
使用數據庫保存數據是現在大多數系統的選擇,因爲數據庫中可以方便地管理數據,增刪改查操作可以使用標準的SQL語句完成。
動態WEB
所謂的動態不是指頁面會動,主要的特性的是:“WEB的頁面展示效果因時因人而變”,而且動態WEB具有交互性,WEB的頁面的內容可以動態更新。
動態WEB中,程序依然使用客戶端和服務端,客戶端依然使用瀏覽器(IE、FireFox等),通過網絡(Network)連接到服務器上,使用HTTP協議發起請求(Request),現在的所有請求都先經過一個WEB Server Plugin(服務器插件)來處理,此插件用於區分是請求的是靜態資源(*.htm或者是*.html)還是動態資源。
如果WEB Server Plugin發現客戶端請求的是靜態資源(*.htm或者是*.html),則將請求直接轉交給WEB服務器,之後WEB服務器從文件系統中取出內容,發送回客戶端瀏覽器進行解析執行。
如果WEB Server Plugin發現客戶端請求的是動態資源(*.jsp、*.asp/*.aspx、*.php),則先將請求轉交給WEB Container(WEB容器),在WEB Container中連接數據庫,從數據庫中取出數據等一系列操作後動態拼湊頁面的展示內容,拼湊頁面的展示內容後,把所有的展示內容交給WEB服務器,之後通過WEB服務器將內容發送回客戶端瀏覽器進行解析執行。
動態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的學習,加大市場的競爭力度。
服務器
從物理上看就是一臺PC機器,只不過配置比較高。還有一些相關的服務軟件。提供相應的服務,就叫XX服務器。
web服務器:在PC機器安裝web服務軟件,提供web服務
數據庫服務器:在PC機器安裝了數據庫軟件,提供數據管理服務
郵件服務器:在PC機器上安裝了可以收發郵件服務軟件
常見的web服務軟件:
Tomcat: 開源免費的,適合中小應用,和java語言兼容性最好。TomcatTomcat是一個實現了JAVA EE標準的最小的WEB服務器,不完全支持javaEE規範的。但支持全部JSP以及Servlet規範
WebLogic:是BEA公司。收費的。支持全部JavaEE規範的。BEA WebLogic是用於開發、集成、部署和管理大型分佈式Web應用、網絡應用和數據庫應用的Java應用服務器。
Jetty Apache 組織下的產品 免費
web服務軟件作用: 把本地資源文件共享給外部訪問
搭建JavaWeb應用開發環境——Tomcat服務器
1、學習web開發,爲什麼必須要先裝一個WEB服務器?
在本地計算機上隨便創建一個web頁面,用戶是無法訪問到的,但是如果啓動tomcat服務器,把web頁面放在tomcat服務器中,用戶就可以訪問了。這說明什麼問題?
1、不管什麼web資源,想被遠程計算機訪問,都必須有一個與之對應的網絡通信程序,當用戶來訪問時,這個網絡通信程序讀取web資源數據,並把數據發送給來訪者。
2、WEB服務器就是這樣一個程序,它用於完成底層網絡通迅。使用這些服務器,We應用的開發者只需要關注web資源怎麼編寫,而不需要關心資源如何發送到客戶端手中,從而極大的減輕了開發者的開發工作量。
2、下載和安裝Tomcat服務器
官網文檔:http://tomcat.apache.org/tomcat-9.0-doc/introduction.html
下載Tomcat安裝程序包:http://tomcat.apache.org/
注意 :
1)WEB-INF外面的文件是可以直接通過瀏覽器訪問的。
2)但是WEB-INF裏面的文件是不可以通過瀏覽器直接訪問的。如果想讓WEB-INF裏面的內容提供給外部訪問,那麼需要在web.xml文件中配置。
步驟:
(1)下載到壓縮包:apache-tomcat-9.0.27-windows-x64.zip 解壓到本地磁盤。
(2)檢測是否配置了JAVA_HOME環境變量:計算機→右鍵“屬性”→高級系統設置→高級→環境變量
(3)雙擊 bin 目錄下的 startup.bat 文件啓動Tomcat服務器
(4)測試是否啓動成功:打開瀏覽器,輸入 http://localhost:8080/
3、Tomcat啓動常見問題
導致Tomcat服務器無法正常啓動的原因一般來說就是如下的兩個:
1、JAVA_HOME環境變量設置問題
要想雙擊bin目錄下的startup.bat文件啓動Tomcat服務器,首先要做的就是在windows中設置JAVA_HOME環境變量,因爲Tomcat服務器的啓動需要用到這個JAVA_HOME環境變量,如果windows中不存在JAVA_HOME環境變量,則Tomcat服務器是無法啓動的。
2、端口占用問題
因爲Tomcat服務器啓動時是需要默認是使用8080端口的,如果這個8080端口被別的應用程序佔用了,那麼Tomcat服務器就無法正常啓動,看到的現象就是"Tomcat服務器啓動界面會打印出異常錯誤信息,然後就自動關閉了"
由於這個窗口從啓動到關閉的時間非常短,我們很難通過這個窗口看到Tomcat啓動時的報錯異常信息,因此我們一般只能通過Tomcat服務器的記錄的log(日誌)信息去查看Tomcat服務器的運行情況。
在Tomcat服務器的根目錄下有一個logs文件夾,logs文件夾存放Tomcat 的日誌文件,打開logs文件夾,可以看到裏面的log文件,其中有一個以"catalina.yyyy-MM-dd.log"形式命名的log文件,例如"catalina.2019-11-17.log"日誌文件就是記錄Tomcat服務器2019-11-17這一天的運行情況。
日誌信息裏面清楚的記錄了Tomcat服務器的運行情況,如果因爲8080端口被佔用而無法正常啓動,就會記錄如上圖所示的異常信息,通過查看異常信息,我們就可知道Tomcat服務器爲什麼不能夠正常啓動了!
總結:當Tomcat服務器無法正常啓動時,首先檢查是否配置了JAVA_HOME環境變量,然後再檢查Tomcat服務器啓動時的端口是否被別的應用程序佔用了。