1. 程式人生 > 其它 >JavaWeb入門之基本概念

JavaWeb入門之基本概念

宣告

本文為其他作者原創文章彙總,僅供個人學習留檔,特此宣告

參考文章連結

JavaWeb學習總結(一)——JavaWeb開發入門 - 孤傲蒼狼 - 部落格園 (cnblogs.com)

(1條訊息) B站---【狂神說Java】JavaWeb入門到實戰---筆記_夜裡的雨的部落格-CSDN部落格_狂神說java筆記

1、基本概念

1.1 前言

web開發:

  • web,網頁的意思,www.baidu.com
  • 靜態web資源(如html 頁面)
    • html,css
    • 提供給所有人看的資料始終不會發生變化
  • 動態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應用程式)

  • 我們能訪問到的任何一個頁面或者資源,都存在於這個世界的某一個角落的計算機上。
  • URL
  • 這些統一的web資源會被放在同一個資料夾下,web應用程式 --> Tomcat:伺服器
  • 一個web應用由多個靜態web資源和動態web資源組成,比如:
    • html、css、js檔案
    • jsp檔案,servlet
    • Java程式
    • 支援jar包
    • 配置檔案(Properties)
    • 等等......

$\textcolor{red}{Web應用開發好後,若想供外界訪問,需要把web應用所在目錄交給web伺服器管理,這個過程稱為虛似目錄的對映}$


1.3 靜態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.4 動態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伺服器將內容傳送回客戶端瀏覽器進行解析執行。


動態WEB優缺點如下

缺點:

  • 加入伺服器的動態web資源出現了錯誤,我們需要重新編寫我們的後臺程式,重新發布,比較麻煩

優點:

  • Web頁面可以動態更新,所有使用者看到都不是同一個頁面
  • 它可以與資料庫互動(資料持久化:註冊,商品資訊,使用者資訊………)

1.5 動態WEB實現手段

目前,動態WEB的實現手段非常多,較為常見的有以下幾種:

  • ASP:Microsoft ASP、ASP.NET

  • PHP

  • JAVA Servlet/JSP

    B/S;瀏覽和伺服器C/S:客戶端和伺服器

    • sun公司主推的B/S架構
    • 基於Java語言的(所有的大公司,或者一些開源的元件,都是用Java寫的)
    • 可以承載三高問題帶來的影響;
    • 語法像ASP,ASP --> JSP,加強市場強度;

1.Microsoft ASP和ASP.NET

  微軟公司動態WEB開發是比較早的,而且最早在國內最流行的是ASP。ASP就是在HTML語言之中增加了VB指令碼,標準的開發應用應該是使用ASP+COM,但是實際情況來看,在開發ASP的時候基本上都在一個頁面中寫上成百上千的程式碼,頁面程式碼極其混亂,維護成本很高

  ASP本身有開發平臺的限制:Windows+IIS+SQL Server/Access,ASP只能執行在Windows作業系統上,現在基本上已經淘汰;目前基本上都是使用ASP.NET進行開發,ASP.NET在效能有了很大的改善,而且開發迅速,但是依然受限於平臺。ASP.NET中主要是使用C#語言。

2.PHP

  PHP開發速度很快,功能強大,跨平臺(平臺指的就是執行的作業系統),而且程式碼也簡單。但是它也是有侷限性的,那就是無法承載大訪問量情況

3.Servlet/JSP

  SUN公司主推的B/S架構的實現語言,是基於JAVA語言發展起來的,因為JAVA語言足夠簡單,而且很乾淨。

  Servlet/JSP技術的效能也是非常高的,不受平臺的限制,各個平臺基本上都可以使用。而且在執行中是使用多執行緒的處理方式,所以效能非常高。

  SUN公司最早推出的WEB技術是Servlet程式,Servlet程式本身使用的時候有一些問題,所有的程式是採用JAVA程式碼+HTML的方式編寫的,即要使用JAVA輸出語句,一行一行地輸出所有的HTML程式碼,之後,SUN公司受到了ASP的啟發,發展出了JSP(Java Server Page),JSP某些程式碼的編寫效果與ASP是非常相似的。這樣可以很方便地使一些ASP程式設計師轉向JSP的學習,加大市場的競爭力度。