回覆列表
  • 1 # zssfggggg

    jsp減少是因為使用java作網站的減少,但是從目前情況來看超高併發量的網站php抗不住,只能java,安全性要求高的也只能java,php適合快速開發中小型網站,併發不高,不需要高度安全,比如銀行那種的,就行。php開發快,java用框架效能不行,但純java開發的系統性能要比php好得多,畢竟已經編譯成二進位制了,php是解釋語言

    另外,java裡面也很少直接寫JSP了, 現在流行Restful + RichClient.

    現實中用PHP和Java的都有的,遊戲伺服器的語言選擇並不是能不能做導致的,主要是人和技術積累決定的,試從歷史角度分析一下。

    最早90年代還沒網路遊戲的時候,做單機遊戲都是用的c++。

    到了2000年代的MMORPG時代,做網遊伺服器的還是之前做單機的那幫人,自然順便就用c++了。當然c++開發效率成問題,還有穩定性的原因有人就引進了lua。

  • 2 # 建站技術分享

    1.html為靜態語言,適合搜尋引擎抓去,有利於最佳化排名

    2.jsp成本高,主要體現在Windows,sql 的授權成本

    3.jsp微軟不是主要推廣的,不適合大眾,程式設計師開發時入門很容易,後期學習成本很高

    4.jsp標準是微軟的標準,而html是世界的標準

  • 3 # 從頭開始自學java

    高併發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技術。

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

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

  • 4 # 大學生程式設計指南

    謝謝邀請,大多數網站還是靜態網站為主,JSP主要是動態網站,從應用範圍上來說還是靜態網站多,而且現在php或者Python在動態頁面上的展示上也有自己獨特的優勢,特別是針對中小網站,jsp主要前期積累多,而且在資料分佈上佔有獨特優勢,所以也不能說JAVA web不行了。

  • 5 # 唐七畫

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

    最開始,網站比較簡單,只是用 html 顯示靜態內容,就是開發人員把內容在 html 檔案中寫好,使用者就看到什麼內容,不會發生變化,所以都是看到的字尾是 html。

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

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

  • 6 # newboy6890

    以前:字尾用.jsp本來就只出現了比較短暫的一段時間。那是java開發web系統的初期。後來當struts ,spring mvc 等java web 開發框架流行後,通常url地址都是servlet的地址,字尾名是可以自己設定的,一般預設設定為.do等,也可以配成.html,. htm或者其他。當然如果不是網際網路應用的話配成啥沒有多大區別。

    後來:一部分網際網路系統使用javaee來開發,為了方便搜尋引擎爬蟲識別就把servlet url的字尾名設成. html,這也就是所謂的偽靜態,是seo最佳化的一個重要最佳化點。

    順便提下真靜態:為了提升訪問速度,減少不必要的運算,對於一些不是頻道變更的頁面,避免每次都訪問動態的servlet, jsp或者php等程式,在瀏覽器請求前提前在伺服器上生成靜態的html檔案。提高了訪問速度,降低了伺服器運算壓力。

    再後來:隨著網際網路的快速發展,單一的集中式獨立系統越來越大,不便於開發,維護。前後端隔離的架構應運而生,就更少有人用jsp了 一般會選擇node js , php等去做web端,而用java開發商業邏輯服務即後端,前後端想前端提供資料,計算。

    現在:移動網際網路爆發式增長,分散式化,微服務化架構出現,前後端都可能被分成多個不同的服務部署在不同的伺服器上。jsp已經是比較久遠的概念,好多新入行的 同學也許都沒聽過這個概念吧。

    話又說回來,最適合的就是最好的技術,合適的架構就是最好的架構。技術其實是一點一滴的積累,做出好的產品才是硬道理!

  • 7 # shawn25

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

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

    協議://主機名[:埠] +引數

    這個命令的意思是。用標註的協議所指定的方法,去連結主機的相應埠,引數是引數。

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

    這個時候,在googl的伺服器上,必須有一個程式來隨時監聽客戶端發來的訊息,然後給出相應的返回值。比如,當接受到get /時,應該返回什麼。

    所以,在以前還沒有動態網站的時候,web服務程式(比如IIS)會把引數和指定目錄(網站根目錄)下的檔案一一對應起來。比如 get / 會直接返回根目錄下的index.php

    同理,當你訪問/hello.html的時候,實際上是把字串"/hello.html"傳送到了伺服器web程式,web程式會根據提前設定的網站根目錄去尋找hello.html檔案,並把這個檔案返回給客戶端。

    這樣透過資料夾組織結構,就形成了靜態網站。但是後來我們需要用程式語言來處理複雜的邏輯怎麼辦。最初的解決辦法就是在html檔案中插入特殊的標籤,並且儲存成相應的副檔名。

    比如我在html中插入java語句,並儲存成hello.jsp,放在網站根目錄下。

    這個時候,當你 get /hello.jsp的時候,tomcat程式會自動呼叫java來處理< % %>中間的語句,並且把整個.jsp轉換成html,再返回到客戶端。

    這就是.jsp .php .asp這類網站的工作原理。

    但是,你一定要明白一個事實,web服務程式返回相應的 .jsp .html .php檔案,一定要這樣做嗎。

    當然不是,我前面說了,返回檔案實際上是人為定義去做的。作為一個程式,你可以return任何東西。

    我可以任意設計程式,讓程式返回任何我想要的東西。

    比如,我可以讓 get "/hello.html" 返回 字串"hello world",而這個時候我的伺服器上根本不存在hello.html這個檔案。

    基於這樣的原因,我們實際上可以用程式任意設計url,這個就叫做路由。而告訴程式某一個路由返回什麼的過程,就叫路由繫結。

    現代的web程式構架,你是根本無法直接訪問html檔案的,而是必須把路由繫結到某一個檢視上去。因為這樣可以把原來嵌入到html的java程式碼分離出來,寫到特定的類中去,而不用混寫。這樣邏輯更清醒,維護更方便。這樣的就叫做mvc.

    以著名的springMVC舉例,我們看一個小程式。

    @RequestMapping("/hello"),就是路由繫結,他代表 當你訪問/hello 時,會執行hello方法,而hello方法的返回值是 字串"hello",所以客戶端會收到hello這個字串。

    不過,當你正確配置springMVC的時候,程式會自動在/WEB-INF/jsp/ 中尋找hello.jsp,然後返回。(注意,這得JSP和前面例子中的jsp有很大不同,詳細請學習springMVC)。

    這時你應該明白,如何返回完全是我自定義的。我完全可以修改程式@RequestMapping("/hello.jsp"),這樣就像傳統一樣,透過/hello.jsp 來返回hello.jsp,我也可以@RequestMapping("/a.jsp"),當你方向/a.jsp時,返回hello.jsp,我甚至可以令/hello.html 返回hello.jsp .

    所以,你現在應該明白為啥現在基本上看不到.jsp了吧。

    第一 現代符合MVC構架的網站 ,網址中的/x/xxx.xxx 已經不代表真實目錄和真實檔案了。所以邏輯上沒有必要出現.jsp 。

    第二 現代MVC構架的網站,網址都是自己設計的,使用/hello.jsp 和使用 /hello是沒有區別的,那為什麼不用更短的。hello.jsp沒有必要出現。

    第三 /hello.jsp僅僅是傳遞的一個字串引數,實際上我可以用任何程式來處理。比如我可以很容易用python寫出 結尾是.jsp的網站。/hello.jsp可以完全是一個python網站。所以網址中的副檔名是沒有必要存在的。你看到網站不是.jsp,但是他的後臺可能仍然是java。

    現代大多數網站,不管用什麼語言,大多遵循了MVC的結構。所以,你基本上越來越看不到以n.jsp是啊

  • 8 # 黃岡物理老師

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

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

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

  • 9 # YOUHO時尚指南

    首先,網址的後序並不能準確反應網站所用的語言。

    .html只是一個後序,無論什麼網頁都是“超文字標記語言”,也就是HTML。而JSP後序是java伺服器頁面,JSP 技術是以 Java 語言作為指令碼語言的,JSP 網頁為整個伺服器端的 Java 庫單元提供了一個介面來服務於HTTP的應用程式。

    其實你的問題應該是想問,為什麼很少見JAVA語言編寫的網站。

    在網站開發方面,PHP的地位不可撼動,中小型網站用PHP做開發非常的迅速,有大量的框架可供選擇。

  • 10 # ACME63610374577

    這其實是兩種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之類的...肯定有人不服...慌啥...明年後年你再看看...

  • 11 # 國產老人家

    任何WEB到了瀏覽器的都是HTML,JSP的本質是一個SERVERLET,處理後輸出的還是HTML,你從字尾是看不出什麼的,JSP可以用很多靜態化技術讓前端顯示為HTML的字尾。

  • 12 # 無絮柳葉

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

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

  • 13 # 琴瑟年華

    首先即使是jsp頁面,也不會直接訪問,而是訪問控制層的地址。再次返向代理可以隨便改。最後,一般網站用反向代理肯定動靜分離了,就是用html。動靜分離的好處在於可以把靜態資源單獨放到伺服器,利於靜態資源單獨叢集,cdn。後端也方便叢集與負載均衡。

  • 14 # 會點程式碼的大叔

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

    如果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,更容易被搜尋引擎收錄。

  • 15 # 萬能擼Sir

    現在的網站已經無法簡單的透過結尾來判斷網站是純靜態還是動態,首先現在的框架都是偽靜態的,其次,單頁應用的流行也讓url很難來判斷型別,從技術角度來說,一旦離開開發崗位,很多技術變革不一定能做到及時瞭解,因為整天學的都跟不上,所以不要看那些誤導人的回答了

  • 16 # 夢中豬在笑

    因為jsp想要發揮威力,就得和java高耦合,但是高耦合效能又差,特別是現在這個推行前後端分離的時代,就沒人用jsp。

  • 17 # 貓萌公社

    什麼年代了,連我這個十多年老java都轉型到vue那套寫前端了,說真的幾年不看頁面技術,前端發展的還真不錯,很多東西都讓人愛不釋手,就是有點學不動了

  • 18 # 毅笑而過1981

    你可以理解成靜態網頁html是主食,動態網頁包括jsp,asp,aspx,php是菜,你要吃飽的話,通常都會吃主食配菜,當然你也可以只吃主食不吃菜,還可以不吃主食只吃菜,只要你樂意就行。

    之所以網上看到html比較多,是因為相對於動態網頁而言,靜態網頁更安全,內容儲存更長久,更容易被搜尋引擎收錄。

  • 19 # RaymondIT

    以前,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字尾的。

  • 20 # 北漂小陽

    你是剛學完javaweb才有這樣的疑問麼?也不一定,163郵箱就是JSP結尾。以html結尾,也不一定訪問的就是html,也有可能是jsp.。比如你用springmvc字尾名起個.html也是可以的

  • 中秋節和大豐收的關聯?
  • 給小孩報班上課真的有用嗎?