javaweb基本知識

ssdssa發表於2020-11-18

一、基本概念
1.1、WEB開發的相關知識
  它用於表示Internet主機上供外界訪問的資源。
  Internet上供外界訪問的Web資源分為:

靜態web資源(如html 頁面):指web頁面中供人們瀏覽的資料始終是不變。
動態web資源:指web頁面中供人們瀏覽的資料是由程式產生的,不同時間點訪問web頁面看到的內容各不相同。
  靜態web資源開發技術:Html
  常用動態web資源開發技術:JSP/Servlet、ASP、PHP等
  在Java中,動態web資源開發技術統稱為Javaweb。

在靜態WEB程式的執行流程:
  客戶端使用WEB瀏覽器(IE、FireFox等)經過網路(Network)連線到伺服器上,使用HTTP協議發起一個請求(Request),告訴伺服器我現在需要得到哪個頁面,所有的請求交給WEB伺服器,之後WEB伺服器根據使用者的需要,從檔案系統(存放了所有靜態頁面的磁碟)取出內容。之後通過WEB伺服器返回給客戶端,客戶端接收到內容之後經過瀏覽器渲染解析,得到顯示的效果。

靜態WEB中存在以下幾個缺點:

1、Web頁面中的內容無法動態更新,所有的使用者每時每刻看見的內容和最終效果都是一樣的。
  為了可以讓靜態的WEB的顯示更加好看,可以加入了JavaScript以完成一些頁面上的顯示特效,但 這些特效都是在客戶端上藉助於瀏覽器展現給使用者的,所以在伺服器上本身並沒有任何的變化

2、靜態WEB無法連線資料庫,無法實現和使用者的互動。

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

1.6、動態WEB應用的實現手段
  動態WEB現在的實現手段非常多,較為常見的有以下幾種:

Microsoft ASP、ASP.NET
PHP
JAVA Servlet/JSP

二、WEB伺服器
2.1、WEB伺服器簡介
  1、Web伺服器是指駐留於因特網上某種型別計算機的程式,是可以向發出請求的瀏覽器提供文件的程式。當Web瀏覽器(客戶端)連到伺服器上並請求檔案時,伺服器將處理該請求並將檔案反饋到該瀏覽器上,附帶的資訊會告訴瀏覽器如何檢視該檔案(即檔案型別)。
容器管理元件的生命週期
  2、伺服器是一種被動程式:只有當Internet上執行在其他計算機中的瀏覽器發出請求時,伺服器才會響應。

三、搭建JavaWeb應用開發環境——Tomcat伺服器
3.1、疑問:學習web開發,為什麼必須要先裝一個WEB伺服器?
  1、不管什麼web資源,想被遠端計算機訪問,都必須有一個與之對應的網路通訊程式,當使用者來訪問時,這個網路通訊程式讀取web資源資料,並把資料傳送給來訪者。
  2、WEB伺服器就是這樣一個程式,它用於完成底層網路通迅。使用這些伺服器,We應用的開發者只需要關注web資源怎麼編寫,而不需要關心資源如何傳送到客戶端手中,從而極大的減輕了開發者的開發工作量。

bin目錄存放的是一些可執行檔案,例如啟動和關閉,conf存放配置檔案,lib存放伺服器需要的jar包,logs為日誌檔案,temp存放零時檔案,webapps為存放網站和專案的,work目錄為Tomcat的工作目錄

軟體架構模式(MVC)
Javabean簡介:
Javabean; 分為兩類:實體Bean,業務Bean

實體Bean:實體類,特指屬性是private修飾,然後提供getset方法。不提供業務方法。一個實體類一般對應資料庫裡的一張表。
業務Bean:除實體bean以外,都是業務Bean.
常見軟體架構模式:
jsp + javaban(Mdell模式):
特點:效率高,邏輯混亂,適合小專案

JSP + Servlet + javabeen(ModelI模式 ,MVC模式的前身)
jsp:資料的展示(檢視)
Servlet:邏輯控制(控制器)
Javabean:業務處理(模型)

MVC設計模式: Model (模型), View (檢視), Controller (控制器)
好處:便於分工,適合大專案,易於維護和擴充套件。
在這裡插入圖片描述

使用JSP + Servlet + javaben設計模式的開發要點:
jsp只做資料的展示。儘量不寫java小指令碼。
Servlet;對使用者輸入資料的封裝( request. getParamer () ),對業務處理結果的設定( request. setAttribute() ) ;控制頁面的流向(重定向,轉發)。
javaBean:做相關的業務處理。