先後端合做分爲兩種方式:1.服務器渲染 2.先後端分離html
1.服務器渲染(SSR)前端
客戶端請求,服務端的servlet或controller接收請求,後端控制路由與渲染頁面,調用service,dao代碼完成業務邏輯,返回jsp,jsp展示頁面。小程序
tips: 後端
servlet是在服務器上運行的小程序。這個詞是在 Java applet的環境中創造的,Java applet 是一種看成單獨文件跟網頁一塊兒發送的小程序,它一般用於在客戶端運行,結果獲得爲用戶進行運算或者根據用戶互做用定位圖形等服務。(來自百度百科)瀏覽器
controller 就是MVC裏的控制器。服務器
dao 是後端的數據訪問層。app
2.先後端分離前後端分離
瀏覽器發送請求,直接到達html頁面,頁面負責調用服務器端口產生數據,填充html,在頁面上進行解析操做DOM異步
二者的區別:jsp
傳輸量:
服務器渲染傳輸數據較多,並且不少重複數據。
先後端分離傳輸數據量少
傳輸數據:
服務器渲染返回的是HTML
先後端分離返回的是JSON格式的數據
控制:
服務器渲染由後端來決定大多數
先後端分離 跳轉的頁面,由前端來決定
SEO:
服務器渲染支持SEO
先後端分離不支持SEO,由於首屏渲染出的html裏是空數據
用戶體驗:
服務器渲染 返回的是包含數據和HTML的頁面,首屏加載快
先後端分離 有渲染數據的過程,首屏渲染加載時間較長,單頁面應用(SPA),用戶體驗更好
對於開發者:
服務器渲染 後臺壓力較大,出現bug會存在踢皮球的現象,服務器端壓力較大。
先後端分離 前端和後臺各司其職,出現bug快速定位誰的緣由,較少服務器端壓力,頁面出現大量數據前端能夠異步加載。提升開發效率。前端代碼,能夠複用,組件化。提高開發效率。