聲明:本欄目所使用的素材都是凱哥學堂VIP學員所寫,學員有權匿名,對文章有最終解釋權;凱哥學堂旨在促進VIP學員互相學習的基礎上公開筆記。css
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和第三方框架等等。
常見的技術有如下幾種:html
如今最多見的兩種程序架構方式就是C/S和B/S架構,C/S也就是Client/Server架構,即客戶端/服務器架構。是你們熟知的軟件系統體系結構,經過將任務合理分配到Client端和Server端,下降了系統的通信開銷,須要安裝客戶端纔可進行管理操做。客戶端和服務器端的程序不一樣,用戶的操做主要在客戶端,服務器端主要是提供數據管理、數據共享、數據及系統維護和併發控制等,客戶端程序主要完成用戶的具體的業務。
因此C/S架構的程序對可以減輕服務器壓力,並且客戶端是安裝在用戶本地的電腦上,調用本地的一些硬件設備就比較方便,適合用於大型遊戲、音頻軟件、各類工具類軟件的程序架構方式。
可是C/S架構也有缺點,升級更新還有維護比較麻煩,系統升級的話,所有的客戶端都須要升級,並且沒有客戶端的話就沒法使用任何的功能,設備須要提早安裝、更新客戶端。 由於這些特性,數據管理軟件、網上購物、信息交互部分都不適合使用C/S架構。
C/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程序架構示意圖:web
兩種程序架構的思惟導圖:數據庫
在B/S架構的程序中,經過瀏覽器對服務器進行的請求分爲動態請求和靜態請求:瀏覽器
靜態請求:服務器
所謂靜態請求,就是訪問網頁時僅從服務器上下載靜態文件,例如網頁的html、js、css、圖片文件等,都屬於靜態文件。示意圖:網絡
動態請求:架構
動態請求則是你的請求會通過服務器上的程序處理,和與數據庫交互,而後再反饋到網頁上,例如最經典的動態請求就是登陸帳戶,示意圖:併發
能夠實現動態頁面的常見技術:
關於爲何B/S架構的服務器壓力比較大:
這是由於全部的網頁文件都是存放在服務器的,因此客戶經過瀏覽器訪問網頁時都是須要從服務器上下載的。而且全部的請求處理都在服務器上進行,動態請求還得須要經過服務器上的應用程序進行處理,而且還要與數據庫進行數據的交互,因此相對於C/S架構來講B/S架構的服務器壓力要大,經過搭建服務器分佈式處理和集羣架構能提高服務器的性能,從而能夠解決服務器因爲性能不足而出現的負載太高的問題。