JSP動態頁麵開發優勢和劣勢
標簽:
網站製作
2019.04.13
網站前端:html5 js jquery ajax css ps flash json xml
網站後端(服務器):jsp php asp.net
網站構成:運行平台 web服務器和應用服務器 服務器端腳本 客戶端腳本 數據庫
靜態網頁:靜jing態tai網wang頁ye是shi不bu能neng隨sui便bian改gai動dong的de,靜jing態tai是shi一yi次ci性xing寫xie好hao放fang在zai服fu務wu器qi上shang進jin行xing瀏liu覽lan的de,如ru果guo想xiang改gai動dong,必bi須xu在zai頁ye麵mian上shang修xiu改gai,然ran後hou再zai上shang傳chuan服fu務wu器qi覆fu蓋gai原yuan來lai的de頁ye麵mian,這zhe樣yang才cai能neng更geng新xin信xin息xi,比bi較jiao麻ma煩fan,使shi用yong者zhe不bu能neng隨sui時shi更geng改gai。
動態網頁:dongtaiwangyeshikeyisuishigaibianneirongde,youqianhoutaizhifen,guanliyuankeyizaihoutaisuishigengxinwangzhandeneirong,qiantaiyemiandeneirongyehuisuizhigengxin,bijiaojiandanyixue。
動態網頁的特點: 交互性(網頁會根據用戶的要求和選擇而動態改變和響應)。 自動更新(無需手動操作,便會自動生成新的頁麵),隨機性(不同的人和時間訪問同一網址會產生不同的頁麵效果)

Ajax是一種用於創建快速動態網頁的技術。(可進行局部更新)
Linux係統:Linux是一套免費使用和自由傳播的類Unix操作係統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作係統。繼承了Unix以網絡為核心的設計思想,是一個性能穩定的多用戶網絡操作係統。
C/S(Client/Server或客戶/服務器模式):word excel
特點:升級麻煩、 維護不易、 安全性好、 速度快
B/S(Brower/Server或瀏覽器/服務器模式):新浪 搜狐
特點:升級容易、 維護方便、 對客戶機性能要求不高
兩者區別:cs架構的應用程序需要在用戶的計算機上進行安裝,而bs架構的應用程序不需要在用戶的計算機上進行安裝,隻需要有一個瀏覽器就可以運行。
JSP的優缺點
1. JSP技術極大的增加了產品的複雜性.為了獲得 係統的跨平台功能和產品伸縮能力,java係統開發了多種產品,如,JRE,JDK,J2EE,EJB,JSWDK,JavaBeans ,隻有有效地將它們組合在一起,才能產生強大的功能.(部署有難度)
2. java的高效率運行需要占用大量的內存和硬盤空間. 一方麵,java的高速運行是通過 .class文件常駐內存來實現的.另一方麵,還需要硬盤空間來存儲一係列的.java 文件和.class文件以及對應的版本文件.(硬件要求高)
3. JSP程序調試困難.
JSP頁麵執行時, 首先被轉換為 .java文件(Servlet), 然後將.java文件編譯為字節碼文件. 這樣,出錯信息實際上指向的是轉換後的那個.java文件(Servlet), 而不是JSP本身. (調試有難度)
優點:
1.JSP代碼跨平台, 即一次編寫,處處運行
眾所周知,由於微軟的壟斷性,它的產品可移植性做得十分差,ASP也不例外,
2.JSP組件跨平台
JSP組件(企業JavaBeans,JavaBeans或定製的JSP標簽)都是跨平台可重用的.企業JavaBeans組件可以訪問傳統的數據庫,並能以分布式係統模式工作於Solaris,Linux,UNIX和Windows平台.
3.支持多種網頁格式
目前, JSP技術支持的網頁格式還沒有一個明確的標準.一般來說,JSP技術既可以支持HTML/DHTML的傳統瀏覽器文件格式,又可以支持應用於無線通信設備如移動電話,PDA等設備進行網頁預覽的WML文件格式,還可以支持其他一些B2B電子商務網站應用的XML格式.
4.JSP標簽可擴充性
盡管ASP和JSP都使用標簽與腳本技術來製作動態Web網頁,JSP技術允許開發者擴展JSP標簽,定製JSP標簽庫,所以網頁製作者充分利用與XML兼容的標簽技術強大的功能,大大減少對腳本語言的依賴.由於定製標簽技術,使網頁製作者降低了製作網頁的複雜度.
5.健壯性與安全性
由於JSP頁麵使用的腳本語言是java語言, 因此,它就具有java技術的所有好處, 包括健壯的存儲管理和安全性.
JSP前後分離的優勢:
1.可以實現真正的前後端解耦,前端服務器使用nginx。
前端/WEB服務器放的是css,js,圖片等等一係列靜態資源(甚至你還可以css,js,圖片等資源放到特定的文件服務器,例如阿裏雲的oss,並使用cdn加速),前端服務器負責控製頁麵引用&跳轉&路由,前端頁麵異步調用後端的接口,後端/應用服務器使用tomcat(把tomcat想象成一個數據提供者),加快整體響應速度。
(這裏需要使用一些前端工程化的框架比如nodejs,react,router,react,redux,webpack)
2.發現bug,可以快速定位是誰的問題,不會出現互相踢皮球的現象。
頁麵邏輯,跳轉錯誤,瀏覽器兼容性問題,腳本錯誤,頁麵樣式等問題,全部由前端工程師來負責。
接口數據出錯,數據沒有提交成功,應答超時等問題,全部由後端工程師來解決。
雙方互不幹擾,前端與後端是相親相愛的一家人。
3.在大並發情況下,可以同時水平擴展前後端服務器,比如淘寶的一個首頁就需要2000+台前端服務器做集群來抗住日均多少億+的日均pv。
4.減少後端服務器的並發/負載壓力
除了接口以外的其他所有http請求全部轉移到前端nginx上,接口的請求調用tomcat,參考nginx反向代理tomcat。
且除了第一次頁麵請求外,瀏覽器會大量調用本地緩存。
5.即使後端服務暫時超時或者宕機了,前端頁麵也會正常訪問,隻不過數據刷不出來而已。
6.也許你也需要有微信相關的輕應用,那樣你的接口完全可以共用,如果也有app相關的服務,
那麼隻要通過一些代碼重構,也可以大量複用接口,提升效率。(多端應用)
7.頁麵顯示的東西再多也不怕,因為是異步加載。
8.nginx支持頁麵熱部署,不用重啟服務器,前端升級更無縫。
9.增加代碼的維護性&易讀性(前後端耦在一起的代碼讀起來相當費勁)。
10.提升開發效率,因為可以前後端並行開發,而不是像以前的強依賴。
11.在nginx中部署證書,外網使用https訪問,並且隻開放443和80端口,其他端口一律關閉(防止黑客端口掃描),內網使用http,性能和安全都有保障。
12.前端大量的組件代碼得以複用,組件化,提升開發效率,抽出來!












