angularjs百度cdn,vue cdn
大家好,今天小編來為大家解答angularjs百度cdn這個問題,vue cdn很多人還不知道,現(xiàn)在讓我們一起來看看吧!自學(xué)JavaScript的人當(dāng)年都是怎么學(xué)過來的...
大家好,今天小編來為大家解答angularjs百度cdn這個問題,vue cdn很多人還不知道,現(xiàn)在讓我們一起來看看吧!
自學(xué)JavaScript的人當(dāng)年都是怎么學(xué)過來的
去年這個時候開始自學(xué),開始看htmlcss寫點效果出來時很得意,然后學(xué)js時就蒙了,我靠我連幾行代碼都寫不出來,想不通這一個個字母是怎么實現(xiàn)我的邏輯的…然后沒辦法買了高程硬著頭皮一點點敲出來簡單的幾行代碼…再到后來看源碼跟著別人的思路走敲一下,慢慢地就知道怎么用代碼實現(xiàn)自己的想法啦!
為什么現(xiàn)在大多數(shù)網(wǎng)站是html結(jié)尾,很少見以jsp結(jié)尾
這個問題其實很好,其實,如果你弄明白了為啥,能幫助你更好的理解web。
談為什么之前,我們先簡單說一http工作的原理。當(dāng)你在瀏覽器中輸入網(wǎng)址的時候,實際上相當(dāng)于輸入了一條命令,格式如下。
協(xié)議://主機(jī)名[:端口]+參數(shù)
這個命令的意思是。用標(biāo)注的協(xié)議所指定的方法,去鏈接主機(jī)的相應(yīng)端口,參數(shù)是參數(shù)。
比如,當(dāng)你輸入http://www.google.com/的時候,實際是告訴瀏覽器用http的get方法,去訪問www.google.com主機(jī)的80端口,參數(shù)是"/",也就是get/
這個時候,在googl的服務(wù)器上,必須有一個程序來隨時監(jiān)聽客戶端發(fā)來的消息,然后給出相應(yīng)的返回值。比如,當(dāng)接受到get/時,應(yīng)該返回什么。
所以,在以前還沒有動態(tài)網(wǎng)站的時候,web服務(wù)程序(比如IIS)會把參數(shù)和指定目錄(網(wǎng)站根目錄)下的文件一一對應(yīng)起來。比如get/會直接返回根目錄下的index.php
同理,當(dāng)你訪問/hello.html的時候,實際上是把字符串"/hello.html"傳送到了服務(wù)器web程序,web程序會根據(jù)提前設(shè)定的網(wǎng)站根目錄去尋找hello.html文件,并把這個文件返回給客戶端。
這樣通過文件夾組織結(jié)構(gòu),就形成了靜態(tài)網(wǎng)站。但是后來我們需要用程序語言來處理復(fù)雜的邏輯怎么辦。最初的解決辦法就是在html文件中插入特殊的標(biāo)簽,并且保存成相應(yīng)的擴(kuò)展名。
比如我在html中插入java語句,并保存成hello.jsp,放在網(wǎng)站根目錄下。
這個時候,當(dāng)你get/hello.jsp的時候,tomcat程序會自動調(diào)用java來處理<%%>中間的語句,并且把整個.jsp轉(zhuǎn)換成html,再返回到客戶端。
這就是.jsp.php.asp這類網(wǎng)站的工作原理。
但是,你一定要明白一個事實,web服務(wù)程序返回相應(yīng)的.jsp.html.php文件,一定要這樣做嗎。
當(dāng)然不是,我前面說了,返回文件實際上是人為定義去做的。作為一個程序,你可以return任何東西。
我可以任意設(shè)計程序,讓程序返回任何我想要的東西。
比如,我可以讓get"/hello.html"返回字符串"helloworld",而這個時候我的服務(wù)器上根本不存在hello.html這個文件。
基于這樣的原因,我們實際上可以用程序任意設(shè)計url,這個就叫做路由。而告訴程序某一個路由返回什么的過程,就叫路由綁定。
現(xiàn)代的web程序構(gòu)架,你是根本無法直接訪問html文件的,而是必須把路由綁定到某一個視圖上去。因為這樣可以把原來嵌入到html的java代碼分離出來,寫到特定的類中去,而不用混寫。這樣邏輯更清醒,維護(hù)更方便。這樣的就叫做mvc.
以著名的springMVC舉例,我們看一個小程序。
@RequestMapping("/hello"),就是路由綁定,他代表當(dāng)你訪問/hello時,會執(zhí)行hello方法,而hello方法的返回值是字符串"hello",所以客戶端會收到hello這個字符串。
不過,當(dāng)你正確配置springMVC的時候,程序會自動在/WEB-INF/jsp/中尋找hello.jsp,然后返回。(注意,這得JSP和前面例子中的jsp有很大不同,詳細(xì)請學(xué)習(xí)springMVC)。
這時你應(yīng)該明白,如何返回完全是我自定義的。我完全可以修改程序@RequestMapping("/hello.jsp"),這樣就像傳統(tǒng)一樣,通過/hello.jsp來返回hello.jsp,我也可以@RequestMapping("/a.jsp"),當(dāng)你方向/a.jsp時,返回hello.jsp,我甚至可以令/hello.html返回hello.jsp.
所以,你現(xiàn)在應(yīng)該明白為啥現(xiàn)在基本上看不到.jsp了吧。
第一現(xiàn)代符合MVC構(gòu)架的網(wǎng)站,網(wǎng)址中的/x/xxx.xxx已經(jīng)不代表真實目錄和真實文件了。所以邏輯上沒有必要出現(xiàn).jsp。
第二現(xiàn)代MVC構(gòu)架的網(wǎng)站,網(wǎng)址都是自己設(shè)計的,使用/hello.jsp和使用/hello是沒有區(qū)別的,那為什么不用更短的。hello.jsp沒有必要出現(xiàn)。
第三/hello.jsp僅僅是傳遞的一個字符串參數(shù),實際上我可以用任何程序來處理。比如我可以很容易用python寫出結(jié)尾是.jsp的網(wǎng)站。/hello.jsp可以完全是一個python網(wǎng)站。所以網(wǎng)址中的擴(kuò)展名是沒有必要存在的。你看到網(wǎng)站不是.jsp,但是他的后臺可能仍然是java。
現(xiàn)代大多數(shù)網(wǎng)站,不管用什么語言,大多遵循了MVC的結(jié)構(gòu)。所以,你基本上越來越看不到以n.jsp是啊
關(guān)于angularjs百度cdn和vue cdn的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
本文鏈接:http://xinin56.com/kaifa/1922.html