為什麼現在大多數網站是html結尾,很少見以jsp結尾?

澹zany


關於這個問題,我談談自己的理解,如果有不對的地方,歡迎大家留言指正。


首先,你看到的結尾不一定是真的。

如果URL中是叫index.html就一定和jsp沒有關係麼?不一定的:

  • 首先,這個地址大家一定很常見到吧:'http://localhost:8080/index.jsp'。學名叫做URL,統一資源定位符。【資源】兩個字圈起來,知識點,後面要考。

  • 我們實際的代碼中,是有index.jsp這個文件的。但是,要注意(敲黑板),URL中的index.jsp是資源,代碼中的index.jsp是文件,不是一個概念,兩者不能劃等號。

  • 大家應該對JSP都很瞭解了,JSP文件需要放到Servlet容器才能運行,servlet容器接到URL為“index.jsp”的請求時,容器會按照默認的方式去尋找“index.jsp”這個文件。這裡的映射是可以自定義的,也就是說,我們修改了映射之後,可以做到讓“index.html”去調用“index.jsp”文件,另外一方面,也有可能URL中帶有JSP,實際上沒有用到JSP。

不過話說回來,JSP用的卻是少了。

  • 企業級的老項目,還是有用JSP的,畢竟頁面中嵌入Java代碼還是很方便的;不過隨著業務的複雜,如果將業務邏輯寫到JSP中是非常難維護的;

  • 後來慢慢流行MVC的架構,JSP成了其中的View;

  • 現在更多的企業開始使用分佈式的架構,進行前後臺的分離,前端頁面完全是靜態頁面,通過接口調用後臺服務獲得數據,因此也減少了JSP的使用;

  • 而且對於互聯網的網站,靜態頁面更有利於SEO,更容易被搜索引擎收錄。

我將持續分享Java開發、架構設計、程序員職業發展等方面的見解,希望能得到你的關注。


會點代碼的大叔


這個問題其實很好,其實,如果你弄明白了為啥,能幫助你更好的理解web。

談為什麼之前,我們先簡單說一http工作的原理。當你在瀏覽器中輸入網址的時候,實際上相當於輸入了一條命令,格式如下。

協議://主機名[:端口] +參數

這個命令的意思是。用標註的協議所指定的方法,去鏈接主機的相應端口,參數是參數。

比如,當你輸入http://www.google.com/ 的時候,實際是告訴瀏覽器用http的get 方法,去訪問www.google.com主機的80端口,參數是"/\

shawn25


以前,jsp,asp,aspx等很流行,那是因為當時前端網頁與後端代碼混合開發。HTML只負責靜態網頁,其他的腳本負責實現動態網頁。對於動態網頁,寫幾行HTML,再插幾句ASP、JSP代碼,然後再寫幾行HTML,再寫幾行jsp,裡面還打印幾行HTML內容……很難閱讀,也很難調試。寫一個網頁既要懂網頁設計:字體、顏色、佈局、動畫,又要懂代碼編程、數據庫、業務邏輯。那時開發網站的,基本都是“全棧工程師”。

現在,有了各種前段框架(JQuery,Ajax,Angular,Vue,Bootstrap,React,……),前後端代碼分開開發。前端使用HTML和js來完成各種複雜的動態效果,重新刷新和加載後端數據,而不需要向後端索要整個網頁內容。前端負責html、css、js,主要是美編、設計、圖片處理、js程序員進行開發。而後端只負責業務及數據處理,各種語言都能實現,以java、.net、php、python等語言為主。這些後端數據URL可以自己定義後綴名,只要後端增加一個路由解析就可以了。所以,呈現在瀏覽器上的URL基本都是HTML後綴的。但是,如果調試的話就會發現有很多內部數據交互的URL並不是HTML後綴的。


RaymondIT


希望能幫到你。


大學生編程指南


提出這個問題的,和很多回答者都極不專業。不是網站以html結尾,而是網址或者說URL地址。

動態網站方便更新,一般以asp、php、jsp、aspx等為後綴名,絕大多數網站當然是動態的,但動態網站不利於搜索引擎收錄,比較佔用服務器資源,所以使用的是偽靜態技術,就是更新網站後,自動生成html頁面,瀏覽者看到的就是靜態頁面。

上述文字是手機一個一個親自打出來的。


黃岡物理老師


這其實是兩種Web方案...

1.jsp asp php這類是通過後臺程序語言控制邏輯、拼裝數據和頁面結構html語句輸出到前臺...

2.html結尾的使用前端JavaScript通過AJAX功能從後臺請求單純數據.通常為json結構...之後由前臺完成前段頁面結構的渲染...通常叫ajax技術...

區別就是頁面結構是由前端控制還是後端控制...簡單來說就是:字是什麼一定都是後端傳來的.而字的字體大小信息是由前端決定是後端決定...前段就是Ajax.後端就是jsp...

JSP這類後端技術已經是過時的技術...完全沒有優點...為了防止一部分人噴...我要大喊一聲...PHP是世界上最好的語言...惹不起...惹不起...

具體原因:

1.通常會變的只是數據.頁面結構很少改變.這些不變的頁面結構是html文件...是會被瀏覽器緩衝的...也就是ajax技術前後通信量小.渲染數據快...

2.現代網頁服務的大負載都是通過Nginx之類的反向代理工具來解決的...ajax技術可以把前端頁面放在單獨的更快的靜態頁面服務器上或者直接放在nginx上...網絡結構極其合理...

3.*重要*...企業移動app幾乎全部選擇html5技術開發...通信用的也是ajax…也就是說移動端和桌面端可以用同一套後臺...

4.*重要*...程序員的審美和客戶的審美完全不同...但客戶拿錢你就得滿足客戶...所以.用美工做原型和客戶確認...確認後程序員用美工做的頁面直接調整掛鏈接才是快捷開發的正道...而ajax方式天生適合於這種模式...這也是前端MVC技術在桌面端流行不起來的原因...什麼angularJS reactJS vue之類的...肯定有人不服...慌啥...明年後年你再看看...


ACME63610374577


高併發php、python等語言扛不住?

不要聽別人瞎扯,這個跟語句有關係,但不是絕對必然的關係。

國外的quora就是python寫的,國內的豆瓣也是python寫的,facebook是php寫的,後來為了追求性能,把php預先編譯了(現在facebook是不是php寫的,不清楚)。

語言就只有語法等,還需要編譯器、工具、容器等,比如提供預編譯php功能的容器或編譯器,語言以及圍繞語言構建的整個生態體系才是至關重要的,比如python是腳本語言,速度很慢,但是可以考慮使用PyPy、cpython等!

請記住,java語言的一些特性導致了java沒有腳本語言靈活,寫起代碼來非常費勁,產出率很低,這就是為什麼很多互聯網企業在某部分甚至整個部分拋棄它的原因(有那麼多人對這句話進行嘲諷,我就再說兩句,國內互聯網公司還是極大部分採用java,不過已經不是隻有java了)。

html結尾並不代表什麼

這是這個問題的url,它不以任何後綴結尾,所以不要通過後綴名來判斷網站使用的技術。

現在有很多重寫重定位的技術,可以把後綴去掉或者替換。

HTML結尾利於SEO

百度是別人去適應它而不是它去適應別人!

HTML結尾的網頁百度以前會認為是靜態網頁,不會變動,收錄會比較好,而jsp很明顯是動態網頁,內容會隨著用戶不同而有所變動,對收錄不友好。

以前一個朋友老是對我說可以靜態化嗎?可以靜態化嗎?說的就是這個問題。

java在互聯網行業展現端使用是有縮降低的

很多人都是糾結這個問題,我都煩了。請看下圖:

你們認為萬能的java就是在這一層被替換掉的,有人覺得替換成php很不可思議?真的嗎?php的特點是什麼,快快快!

java技術太重了,不適合需要快速反應的互聯網行業展現端,單單是那一大堆的框架,比如spring,struts等等,就讓我心煩,那麼多的配置,那麼多的技術,那麼多的知識,在一個互聯網公司中是不大適合的,因為進去的人都需要一段不短的適應時間。

現在越來越多的互聯網公司在展現端採用了python、nodejs、php等技術,已達到快速應對市場的需要。

互聯網企業的網站一般都對大眾開放,能夠看到的網址大部分是這些公司的,所以它們在前端減少使用java,自然也會導致jsp後綴的網頁減少。

java在企業領域獨佔風騷

不過對於財大氣粗的傳統企業領域,java還是獨佔鰲頭,我很少看都有哪些企業應用拋棄java,為什麼?

java要得起價錢,這麼多年來利潤那麼多,不會有那個企業願意放棄java技術。

可惜大部分不對大眾開放。

上一次我看到的是移動的搞活動的網頁,不過打開那個網頁很不流暢。


從頭開始自學java


就依我所知的說一下。我學Spring Mvc所體驗到的。當用戶訪問某個網頁(位於你自己寫的網站中),前端控制器會攔截URL,並委託給頁面控制器處理(在控制器中可根據業務需求完成工作,並且return到你需要的JSP頁面中,邏輯視圖),處理完成後返回一個ModelAndView,前端控制器就會在渲染視圖(物理視圖),也就是說雖然URL是html的,但是渲染的是jsp的內容。這時候所看到的頁面以html結尾,但它是JSP的頁面。

我可能表達不太好,最後來一次:我們點擊鏈接,url可能會是結尾是html,url隨便你弄,關鍵是轉發器能捕獲到,再交給controller處理,返回邏輯視圖,最後渲染成瀏覽者看到的物理視圖。



敬請大夥指正,共同進步。


無絮柳葉


這是現代網站開發的發展趨勢導致的。


最開始,網站比較簡單,只是用 html 顯示靜態內容,就是開發人員把內容在 html 文件中寫好,用戶就看到什麼內容,不會發生變化,所以都是看到的後綴是 html。


後來,網站需要查詢數據庫,再把內容顯示給用戶,單純的 html 靜態內容就不能滿足用戶要求了,這時候,就出現了動態網頁,jsp, asp, php, 各種 p 就出來了,用他們寫出來的是各種 xxp 模版文件,他們在服務器上按照用戶的要求查詢數據庫,把數據填到模版中,就是用戶需要的網頁內容,再展示給用戶。所以,這個時候,你在瀏覽器上看到的網頁後綴都是 .xxp,對應著那些模版文件,其實,用戶看到的還是 html,xxp 是為了方便開發人員的。


再後來,隨著網頁的動態效果越來越絢麗,頁面越來越複雜,網頁的開發和後臺服務的開發人員也逐漸分離開來,稱為前端和後端,為了兩者間的開發效率和合作效率,前後端分離成為了趨勢,也隨著 js 的功能逐漸被髮掘和完善,原來有服務端查詢數據庫,填充模版文件,並生成網頁,變成了由 js 發起請求,服務端返回數據,再由 js 填充 html 文件,這樣的流程。這個時候,又沒有了那些模版文件,所以,網頁的後綴又變成了html 。


滌生齋


不請自來,我是麥田的悠嘻猴。

html是超文本標記語言,是網頁的靜態頁面。

jsp是java開發的服務器語言,是動態的,服務器端執行的。

他們都離不開div+css +js。

目前常用的有php,asp.net,asp,jsp這幾種。這些動態的一般在服務器端運行,而顯示出來的時候,會生成html靜態頁面,這樣的好處是:

1,不用每次訪問網站的時候讀取數據庫,訪問量大的時候會造成數據不穩定。

2,生成靜態頁面,利於搜索引擎收錄。

3,安全方面,靜態頁面不容易被攻擊,動態頁面有讀取數據庫的操作,有可能sql注入攻擊。

而且,jsp開發成本大,一般是銀行,政府,大型企業單位才用的,小企業一般都是用php。網站發佈以後都會生成靜態頁面或者做靜態化處理。


分享到:


相關文章: