聲明:本欄目所使用的素材都是凱哥學堂VIP學員所寫,學員有權匿名,對文章有最終解釋權;凱哥學堂旨在促進VIP學員互相學習的基礎上公開筆記。
JavaWeb介紹
JavaWeb也就是J2EE,JavaWeb主要是使用各種Java企業級技術來解決相關web互聯網領域的技術總和。
而且這些技術有一個標准也就是J2EE規范,J2EE規范是這樣定義J2EE組件的:客戶端應用程序和applet是運行在客戶端的組件;Java Servlet和Java Server Pages (JSP) 是運行在服務器端的Web組件;Enterprise Java Bean (EJB )組件是運行在服務器端的業務組件。J2EE組件和“標准的” Java類的不同點在於:它被裝配在一個J2EE應用中,具有固定的格式並遵守J2EE規范,由J2EE服務器對其進行管理。
所以web包括:web服務器和web客戶端兩部分。Java在服務器端的應用非常的豐富,比如Servlet,JSP和第三方框架等等。
常見的技術有以下幾種:
程序架構通常分為C/S和B/S架構:
C/S架構:
現在最常見的兩種程序架構方式就是C/S和B/S架構,C/S也就是Client/Server架構,即客戶端/服務器架構。是大家熟知的軟件系統體系結構,通過將任務合理分配到Client端和Server端,降低了系統的通訊開銷,需要安裝客戶端才可進行管理操作。客戶端和服務器端的程序不同,用戶的操作主要在客戶端,服務器端主要是提供數據管理、數據共享、數據及系統維護和並發控制等,客戶端程序主要完成用戶的具體的業務。
所以C/S架構的程序對能夠減輕服務器壓力,而且客戶端是安裝在用戶本地的電腦上,調用本地的一些硬件設備就比較方便,適合用於大型游戲、音頻軟件、各種工具類軟件的程序架構方式。
但是C/S架構也有缺點,升級更新還有維護比較麻煩,系統升級的話,全部的客戶端都需要升級,而且沒有客戶端的話就無法使用任何的功能,設備需要提前安裝、更新客戶端。 因為這些特性,數據管理軟件、網上購物、信息交互部分都不適合使用C/S架構。
C/S程序架構示意圖:
B/S架構:
另外一種B/S架構,即Browser/Server (瀏覽器/服務器) 結構,是隨着Internet技術的興起,對C/S結構的一種變化或者改進的結構。在這種結構下,用戶界面完全通過瀏覽器實現。在這種結構下,用戶工作界面是通過瀏覽器來實現,極少部分事務邏輯在前端(Browser)實現,但是主要事務邏輯在服務器端(Server)實現,形成所謂三層3-tier結構。B/S結構是WEB興起后的一種網絡結構模式,WEB瀏覽器是客戶端最主要的應用軟件。這種模式統一了客戶端,將系統功能實現的核心部分集中到服務器上,簡化了系統的開發、維護和使用。
客戶機上只要安裝一個瀏覽器(Browser),如Chrome,Firefox或Internet Explorer,服務器安裝Oracle、Sybase、Informix或SQL Server等數據庫。瀏覽器通過Web Server同數據庫進行數據交互。
以為頁面上的內容全部都是從服務器上下載下來的,以后客戶端沒有什么更新這一說,這樣就大大簡化了客戶端電腦載荷,減輕了系統維護與升級的成本和工作量,降低了用戶的總體成本,在瀏覽器上只需要刷新一下就能看到最新的內容,不用更新客戶端。
但是B/S架構也有相應的缺點,游戲方面只能做網頁小游戲,如果是大型游戲的話瀏覽器受不了,而且網絡和服務器也支撐不了,因為全部的特效渲染、數據計算都得在服務器上完成后通過網絡發送到瀏覽器上,這是不可能完成的,所以B/S架構不適合做大型游戲。B/S架構不能像C/S架構那樣方便的訪問、調用用戶本地的硬件設備,訪問起來很麻煩。B/S架構把系統功能實現的核心部分集中到服務器上,所以服務器的壓力也比較大。
B/S程序架構示意圖:
兩種程序架構的思維導圖:
在B/S架構的程序中,通過瀏覽器對服務器進行的請求分為動態請求和靜態請求:
靜態請求:
所謂靜態請求,就是訪問網頁時僅從服務器上下載靜態文件,例如網頁的html、js、css、圖片文件等,都屬於靜態文件。示意圖:
動態請求:
動態請求則是你的請求會經過服務器上的程序處理,和與數據庫交互,然后再反饋到網頁上,例如最經典的動態請求就是登錄賬戶,示意圖:
可以實現動態頁面的常見技術:
關於為什么B/S架構的服務器壓力比較大:
這是因為所有的網頁文件都是存放在服務器的,所以客戶通過瀏覽器訪問網頁時都是需要從服務器上下載的。並且所有的請求處理都在服務器上進行,動態請求還得需要通過服務器上的應用程序進行處理,並且還要與數據庫進行數據的交互,所以相對於C/S架構來說B/S架構的服務器壓力要大,通過搭建服務器分布式處理和集群架構能提升服務器的性能,從而可以解決服務器由於性能不足而出現的負載過高的問題。