----數據處理的升級
在上面的描述中,你們也看到了,遠古時期的程序員,其實也聽不容易的,後臺要手寫Html。
手寫html跟業務的相關性很小,並且,也容易出錯,同時,還要求你們須要掌握前端的技術。從業務分離,下降耦合,明確分工的角度來說,這樣的作法是條條違背的。
因此,程序員們,對代碼進行了拆分。
爲了明白他們是怎麼拆分的,咱們須要先簡單瞭解一個技術--引擎,簡單點來講,就是字符串替換。
假如你有這麼個需求,咱們須要從後臺數據庫讀取數據庫用戶姓名,再讀取一個自定義的txt文本文件,將字符串拼接起來,進行用戶的展現。
咱們的一種思路應該是,在txt文件中設置標識位,或者是標識符。讀取標識符,替用從數據庫讀取到的數據換標識符,好比這樣的:
讀取花括號,並替換成對應的變量
String readStr=ReadFromFile("XXX.txt");//"我是{name},我今年{age}歲了"
String outStr=readStr.replace("{name}",user.Name).replace("{age}",user.Age);
通過替換以後,輸出outStr就能夠了。經過改變文本內容,咱們能夠自定義輸出的內容,可是注意「{name}」、「{age}」這兩個是不能變的
以上,即是引擎的一個簡單應用模型,從文件中讀取內容,將文件中的佔位符替換成變量。
回到上面講的遠古程序員時期,手寫html的時候,不少的Html內容是與業務無關的,那麼咱們能不能把html提取成文件,而後用文本替換的這種形式,把變量拼接進去,依舊是返回一個字符串,可是程序員再也不在html的編寫與調試上面花費多餘的時間,並且也實現了先後端的分離。
對於程序員的這種拆分先後端代碼的廣泛需求,微軟這邊有webform , asp.net mvc, JAVA那邊有 JSP。
對ASP.NET MVC來說,在咱們寫return View()的時候, View是ViewResult類型的一個實例,
是能夠傳字符串,對象,不少東西的。
當傳入的是字符串的時候,會去找你傳入的字符串(視圖路徑),查找到視圖,對視圖進行引擎解析。
當什麼都不傳入的時候,那麼會按照默認「views/controllerDirectory/actionFile」去找對應的視圖.
好比:AController BMethod,回去找"views/A/BMethod.cshtml",這是ASP.NET MVC的規則。
而後按照razor引擎,對文件中的變量進行解析替換,獲得html字符串。
對於JAVA來說,在tomcat啓動項目的時候,會在tomcat的work文件夾下面針對jsp文件,生成一個「.java」文件,並編譯成類文件
如:"Tomcat 7.0\work\Catalina\localhost\
YourProjectName\org\apache\jsp\
index_jsp.java"
咱們打開這個"xxx_jsp.java"文件,會發現,裏面的代碼是
這樣的遠古時期輸出字符串的這種形式來編寫的代碼。
當在servlet中寫訪問「xxx.jsp」的時候,服務器會加載"xxx_jsp.java"文件中的類,執行他的輸出方法,獲得html字符串,發回給瀏覽器。