1. 程式人生 > >動態網頁的基礎知識:

動態網頁的基礎知識:

01.動態網頁的優勢
動態網頁是在伺服器端執行的程式!隨不同使用者,不同條件 返回不同的結果!
001.互動性:網頁會根據使用者的要求和選擇而動態的改變和現實網頁內容!
002.自動更新:無需改變頁面的程式碼,便會自動更新頁面內容!
003.隨機性:當不同的時間,不同身份的使用者訪問同一頁面會產生不同的的頁面效果!
02.動態網頁是靜態網頁的替代品嗎?
兩者各有優點,選擇哪種頁面取決於網站功能的需求和內容的多少。如果網站的功能簡單,內容少,採用靜態網頁的方式更合適!
反之,一般要使用動態網頁!
03.B/S架構(Browser/Server 瀏覽器/伺服器)
001.在B/S架構下,應用程式 完全 放在應用伺服器上,並通過應用伺服器與資料庫伺服器進行通訊,系統介面通過瀏覽器展現。
002.B/S和C/S各自優勢
B/S的優勢:
維護和升級方式簡單。C/S架構必須安裝和配置客戶端軟體。如果系統需要更新,必須對每一個客戶端都進行更新!
B/S架構中,軟體應用的業務邏輯完全在伺服器端實現,所有的客戶端只是瀏覽器,不需要維護!(升級瀏覽器需在客戶端進行)
維護人員只需要關注伺服器端軟體的軟體更新!
C/S的優勢:
B/S的介面沒有C/S的友好,很難做出像office這樣介面豐富的軟體。
在速度和安全性上需要花費巨大的設計成本!
由於B/S架構的互動是 請求/響應 模式的,一旦資料資訊發生變化,必須通過重新整理頁面才能看到更新的資料資訊!
C/S架構一般面向固定的使用者群,一般高度機密的資訊系統採用C/S架構!
B/S架構適用於公開資訊釋出,對資訊的保密性要求較低的情況!

003.B/S架構的工作流程
01.瀏覽器接收使用者的輸入
02.瀏覽器向伺服器傳送請求,等待伺服器響應(此請求先到應用程式伺服器,再到資料庫伺服器!)
03.資料處理:伺服器通常使用伺服器指令碼語言(Java等)進行資料庫訪問
04.伺服器向瀏覽器傳送響應!(如動態生成的html頁面,並有瀏覽器進行渲染後展現給使用者!)

04.URL(Uniform Resource Locator) 統一資源定位符!

01.URL用於完整的描述Internet上網頁和其他資源的地址的一種標識方法!(簡單說URL就是網址!)
02.在Internet上所有資源都有一個獨一無二的URL!
03.URL的組成! http://localhost/news/index.jsp
協議:http ==> HyperText Transfer Protocol 超文字傳輸協議!
https ==> 安全的! safe
該協議支援簡單的 請求/響應對話!對於Web伺服器是最常用的協議!

伺服器域名 IP:localhost

埠號:
埠是用於伺服器內外部通訊的通道!當外部訪問伺服器時就需要通過指定的通道來訪問!
為了避免複雜的ip地址,通常用域名來代替!例如百度ip為 202.108.22.5 域名為baidu.com

路徑:
包含兩層含義!
例如news/index.jsp
news是指Web應用程式 對外發布時 對應的上下文路徑!即Web應用的根目錄!index.jsp代表具體的資源!

05.常用的Web伺服器(Web容器)
001.Tomcat
002.JBoss
003.Jetty

06.Web應用的目錄結構
/ :根目錄,該目錄下的所有檔案 對客戶端都可以訪問!(jsp html css js ..)
/WEB-INF:存放應用程式所使用的各種資源,該目錄及其子目錄對客戶端 不可以訪問!(其中包括web.xml 部署描述符)
/WEB-INF/classes :存放應用程式 所有的class檔案!
/WEB-INF/lib : 存放Web應用使用的 jar檔案!

注意:01.Tomcat執行過程中,Tomcat類載入器會先載入 classes目錄下的class檔案!然後再載入 lib目錄下的 jar檔案!
如果在這兩個目錄下存在同名的類,那麼classes目錄下的類具有優先權!
02.每個JavaWeb應用都有一個核心檔案 即web.xml !(儲存在WEB-INF目錄下!)
web.xml 控制整個應用程式的行為方式和方法!
03.修改web.xml後,需要重啟Web伺服器!
04.web.xml 檔案中的<welcome-file-list>標籤用於設定web應用的起始訪問頁面列表!
<welcome-file>用於指定某一具體頁面!
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
...
</welcome-file-list>

07.JSP頁面 Java Server Page(Java伺服器端的頁面)

01.JSP技術是在 html頁面中嵌入 Java指令碼語言,然後由應用程式伺服器中的 JSP容器來編譯和執行 之後將產生的結果返回給客戶端!
02.JSP的組成:

靜態內容
JSP指令
JSP表示式
JSP小指令碼
JSP宣告
註釋等元素構成!

001.靜態內容:如 html文字 與Java和JSP的語法無關!
002.JSP指令元素: <%@ %>
例如 01.page指令,在一個JSP頁面中可以多個page指令!page指令只對 當前頁面有效!
page指令的屬性:
import="java.util.*"
language="java"
contentType="text/html;charset=utf-8"
contentType屬性告訴web容器在客戶端瀏覽器上以哪種格式/編碼 顯示“響應”的內容!
02.include指令 等

003.JSP指令碼元素:
小指令碼 <% java程式碼 %>
表示式 <% java變數/java表示式 %> 不能在表示式結尾加分號 “;” !
宣告 <%! %>用來定義方法/變數 (都是全域性的!)

004.JSP註釋:<%-- 註釋 --%> 在客戶端瀏覽器通過檢視原始碼 是看不到的! (安全的!)
html註釋:<!-- 註釋 --> 檢視原始碼可以看到!(不安全的!)
在JSP指令碼中使用註釋: <% //單行註釋 %> 多行<% /*多行註釋*/ %> 檢視原始碼看不到!(安全的!)

08.JSP 執行過程! *****

當請求傳送至伺服器,web容器通過三個階段實現處理!

01. 翻譯階段!
使用者通過瀏覽器訪問jsp時,web容器(tomcat)中的 jsp引擎 負責把jsp 轉化為 java檔案
001.jsp宣告 ==> java檔案中的成員方法!
002.jsp指令碼 ==> java檔案中 _jspService()方法中的一段程式碼!
003.jsp表示式 ==> java檔案中 _jspService()方法中的一段程式碼! out.print(表示式);
004.普通html程式碼 ==> _jspService()中一段out程式碼! out.print("html標籤");

02. 編譯階段!
伺服器將java檔案編譯成 class檔案

03. 執行階段!
伺服器執行 class檔案!
001. 首先對生成的java類進行例項化!
002.呼叫例項化後的 物件._jspService() 輸出 html 給瀏覽器!

注意:無論請求的URL 是 html 還是jsp 伺服器響應回來的都是 html (jsp ==> html的過程發生在伺服器內部!)

04. 瀏覽器 渲染html資料 顯示給使用者!

注意:一旦web容器把jsp檔案翻譯和編譯完成。web容器就會將 編譯好的 class位元組碼檔案儲存在 記憶體中!
當用戶再次請求相同的jsp時, 就可以 重用 這個編譯好的class位元組碼檔案!而不會把jsp重新翻譯編譯!
這樣做大大提升了 web應用程式的效能!(請求後伺服器直接執行class檔案!)
但如果對jsp進行了修改,web容器就會重新 翻譯編譯!
綜上所述,jsp在第一次請求時會比較慢!

相關推薦

動態網頁基礎知識

01.動態網頁的優勢 動態網頁是在伺服器端執行的程式!隨不同使用者,不同條件 返回不同的結果! 001.互動性:網頁會根據使用者的要求和選擇而動態的改變和現實網頁內容! 002.自動更新:無需改變頁面的程式碼,便會自動更新頁面內容! 003.隨機性:當不同的時間,不同身份的使

數據庫基礎知識數據庫中的約束和三大範式

設計 一個 生效 訂單 詳細介紹 求長 山東 英文名稱 相關 一.數據庫中的範式:   範式, 英文名稱是 Normal Form,它是英國人 E.F.Codd(關系數據庫的老祖宗)在上個世紀70年代提出關系數據庫模型後總結出來的,範式是關系數據庫理論的基礎,也是我們在設計

Java基礎知識Java知識簡介

構造方法 sign () 結束 字母 信息 set 需要 double 一、java基礎語法:   一個Java程序可以認為是一系列對象的集合,而這些對象通過調用彼此的方法來協同工作。下面簡要介紹下類、對象、方法和實例變量的概念。 對象:對象是類的一個實例,有狀態和行為。例

基礎知識數據類型優先級

pos eight cast rar 溢出 .com microsoft title html 原文:基礎知識:數據類型優先級太忙好久沒更新博客了,今天隨便寫個吧,當做個筆記。 SQL Server在處理數值型的數據中,默認為INT型,以下的問題,可能你會遇到。 -

PHP基礎知識語法、變量與數據類型

PHP1.PHP語法 PHP 腳本以 <?php 開始,以 ?> 結束,每個代碼行都必須以分號結束。 PHP 文件通常包含 HTML 標簽和一些 PHP 腳本代碼,默認文件擴展名是".php"。 將PHP文件保存在項目文件夾下,在瀏覽器的地址欄中輸入“localhost/項目

PHP基礎知識面向對象的編程

PHP1.類的定義 class關鍵字+類名+{},大括號內定義變量和方法。 類的變量使用 var 來聲明, 也可以初始化值。 類創建後可以使用 new 運算符來實例化該類的對象。 註:變量 $this 代表自身的對象。 2.成員函數 構造函數:用來在創建對象時初始化對象, 即為對象成員變量賦初始值,在創

》》HTTP 方法GET 對比 POST《《JavaSpringMVC基礎知識Http協議()

ipa .com 常用 code 有關 strong 註意 part html_ http://www.w3school.com.cn/tags/html_ref_httpmethods.asp 兩種最常用的 HTTP 方法是:GET 和 POST。 —————————

python基礎知識數據結構的學習

字符串 [1] script uid nim value operation 字符 index python的數據結構有:列表、元組、字典 列表:作用:處理 有序 項目的數據結構list=["a",‘b‘,‘v‘,‘d‘]# 打印長度print(len(list))# 循環

Python基礎知識列表list

基礎知識 沒有 sort 一個 技術分享 img 列表方法 ted 知識點 知識點:   1、列表是可變數據類型--可以改變元素的值   2、sort沒有返回值,sorted有返回值   3、更新數據項       索引賦值:不能超過索引範圍       分片賦值:可以同

Python-基礎知識變量

分享 mic 訪問 color bsp 字符串 面向 設計 soft 一、python 簡介 1.簡介   Python (發音:/?pa?θ?n/ ), 是一種面向對象的解釋型計算機程序設計語言,由荷蘭人Guido van Rossum於1989年發明,第一個公開發行版發

Python基礎知識字典dict

排列 訪問 keyerror pda 拼接 bsp 目的 鍵值 next() 註意:   # 字典是可變類型   # 字典中的數據是無序的   # 一個字典條目的語法是 鍵:值   # 任何不可變數據類型都可以作為條目的鍵 知識點一:創建 鍵:必須獨一無二(如果鍵重復存入,

js基礎知識閉包,事件處理,原型

bsp ret asc 原函數 ati tac ons 標識符 構造 閉包:其實就是js代碼在執行的時候會創建變量對象的一個作用域鏈,標識符解析的時候會沿著作用域鏈一級一級的網上搜索,最後到達全局變量停止。所以某個函數可以訪問外層的局部變量和全局變量,但是訪問不了裏層的變量

linux基礎知識常用命令

col head 內置 文件命令 數據 類型 符號鏈接 內容 鏈接 概要 linux版本   linux有兩種版本:發行版本和核心版本。核心版本主要是linux內核,官方版是由linus維護。  linux核心版本表示:major.minor.patchlevel。例如 2

【Django Series - 02】Django 基礎知識語法、教程

Django Series(Django2.1.2 + Anaconda3) (一)安裝並配置 Django 環境 ||| 基於 Django 進行 Web 開發 (二)Django 基礎知識:語法、教程 (三)使用者管理模組:建立使用者、登入、退出 (四)資料的增刪改:使用者提交資

1.socket基礎知識埠;sockaddr_in;位元組序轉換函式(本地/網路位元組序);地址轉換函式

1.埠 在進行通訊的時候,要首先通過IP地址獲取主機 再通過Port用來區分和主機上的哪個應用程式通訊 2.IPv4套介面地址結構:網際套接字地質結構 sockaddr_in:man 7 ip 1.標頭檔案:netinet/in.h 2.sockaddr_in結構 struct

SEO基礎知識如何做好搜尋引擎優化!

在做SEO優化的過程中,很多SEO人員熱衷快速排名的相關技術,但很少有站長,將大量的時間花費在SEO基礎知識上。 俗語:萬丈高樓平地起,只有打好堅實的基礎,深刻理解搜尋引擎演算法,才能夠走的更長遠。 什麼是SEO基礎知識? 我們知道網站是由不同元素構成的,對於搜尋引擎而言,它通常需要通過

Python基礎知識模組

JSON模組 1、安裝模組的兩種方法: 第一種:pip install 模組名 第二種:原始碼安裝:先到官網下載模組的原始碼(選擇download the tarball)----》先解壓(解壓資料夾中有一個setup.py檔案)----》cd 目錄----》pip setup.py install

嵌入式系統基礎知識瞭解嵌入式系統

嵌入式系統用於大量電子裝置,它們的設計涉及到硬體和軟體技術。隨著計算機技術的進步,其技術也越來越多地嵌入到越來越多的電子產品中。 嵌入式系統提供的功能是使電子裝置具有比僅使用硬體技術時更大的能力。因此,嵌入式系統可用於各種電子裝置和小工具中。從電子計時器等專案中的少量處理,到遊戲控制檯甚至主要工廠和

iOS音視訊—FFmepg基礎知識命令列工具使用&封裝格式&視訊編碼音訊編碼資料瞭解&視訊畫素音訊取樣資料格式

iOS音視訊相關目錄 FFmepg基礎知識 封裝格式 1、封裝格式:mp4、mov、flv、wmv等等… 2、作用:視訊流+音訊流按照格式進行儲存在一個檔案中 3、MPEG2-TS格式:傳輸流,又稱TS、TP、MPEG-TS或M2T,用於音效、影象與資料的通訊協議。屬於

iOS音視訊—FFmepg基礎知識視訊播放流程&視訊播放器&播放器資訊檢視工具

FFmepg基礎知識 視訊播放流程 通常我們看到的視訊格式:mp4,mov,flv,wmv等等,稱之為封裝格式,通過解封裝之後,同時拿到音訊壓縮資料和視訊壓縮資料。分別對其進行音訊視訊解碼得到音訊取樣和視訊畫素資料,然後把音訊資料渲染到視訊上面進行同步播放。 視訊播放器