2018/11/23
一、動態網頁和靜態網頁
1、靜態網頁
靜態web無法連線資料庫
靜態頁面就是頁面上所有東西都做好了放到後臺的,不管是誰在什麼時候看到的頁面內容都是一樣的。
靜態的html頁面檔案,可以用本地的瀏覽器直接開啟。
2、動態網頁
可以連線資料庫
動態頁面的內容一般都是依靠伺服器端的程式來生成 的,不同人、不同時候訪問頁面,顯示的內容都可能不同。
3、靜態頁面 VS 動態頁面
前者就是存粹的html頁面,web伺服器接受請求時,總是直接將其返回給瀏覽器,因此並不涉及到後端開發。
而後者其實是含有服務邏輯,並且能夠最終生成html頁面的模板檔案,不管它的字尾是jsp還是php,都是模板。
特殊情況:靜態html頁面利用javascript的Ajax(XMLHTTPRequest)技術,也可以從服務端獲取資料。
二、使用者在瀏覽器上輸入請求到使用者看到頁面的過程
1、過程
Brower接受請求
DNS進行域名解析翻譯成IP地址
Web Servlet對請求進行處理 做出應答。這時是RunTime,可以對資料庫裡的資料進行增刪改查
最後形成html頁面 返回給使用者
2、瀏覽過程
使用者通過瀏覽器發出請求之後,首先要通過DNS將域名解析成IP地址。
實際上請求的是這個IP和埠(預設80)對應的Web伺服器。
在服務端,分兩種情況: 第一種,請求的是*.html/*.jpg/*.js/*.css之類的靜態資源,那麼Web伺服器會直接返回給瀏覽器。
第二種,請求的是動態資源,那麼Web伺服器會呼叫相應的編譯器及直譯器將動態模板渲染成一個html,再返回給瀏覽器。
有幾個概念不要混淆: a)Service:服務; b)Server:伺服器; c)Servlet:java的一種服務端程式。
三、MVC框架
MVC的核心目標是解耦,相對傳統的JSP或者ASP來說,主要是將不同層面的程式碼單獨抽取出來,形成上面的三層架構。 最終目標是一致的,都是利用伺服器端程式設計,對動態模板頁面進行渲染,最終生成html傳送給使用者。
1、Controller(控制器)
控制器(Controller)不是不幹活,而是不幹具體的活,主要是進行排程,包括接收Get/Post引數,然後呼叫某個Service來返回若干個Model,最後再將這些Model傳送給指定的View,最終渲染成html給使用者顯示。
【不幹具體活,用來接收使用者的請求傳遞資訊;裡面可以有若干個Action】
Action(動作):都是用 piblic void 來定義的,是使用者定義的最小單元。
2、Model(模型)
Model(模型)其實就是對資料物件的封裝
【通過Controller傳達過來的內容呼叫相應的Service進行處理,再用Model傳送給View】
Service(服務):實際上真正幹活的,處理使用者的請求。
Model(模型):作為響應結果
3、View(檢視)
View(檢視)其實就是動態頁面的模板檔案,它利用控制器(Controller)傳過來的資料來填充html,生成最終頁面
【將Model的響應結果呈現給使用者】
四、通過例題學習
例:在temp裡面建一個helloworld.html
GroupController程式碼:
在Controller裡面新建一個class類 名為HelloController
執行結果:
#():輸出指令。將括號內的資料插入到 HTML
#render(file, param=value, ...):引用指令。將程式碼片段引用進來,可攜帶引數。
---------------------
作者:女漢子版小可愛
來源:CSDN
原文:https://blog.csdn.net/weixin_43784593/article/details/84404699
版權宣告:本文為博主原創文章,轉載請附上博文連結!