JavaEE——JavaWeb介紹

聲明:本欄目所使用的素材都是凱哥學(xué)堂VIP學(xué)員所寫,學(xué)員有權(quán)匿名,對文章有最終解釋權(quán);凱哥學(xué)堂旨在促進(jìn)VIP學(xué)員互相學(xué)習(xí)的基礎(chǔ)上公開筆記。

JavaWeb介紹

JavaWeb也就是J2EE,JavaWeb主要是使用各種Java企業(yè)級技術(shù)來解決相關(guān)web互聯(lián)網(wǎng)領(lǐng)域的技術(shù)總和。

而且這些技術(shù)有一個標(biāo)準(zhǔn)也就是J2EE規(guī)范,J2EE規(guī)范是這樣定義J2EE組件的:客戶端應(yīng)用程序和applet是運(yùn)行在客戶端的組件;Java Servlet和Java Server Pages (JSP) 是運(yùn)行在服務(wù)器端的Web組件;Enterprise Java Bean (EJB )組件是運(yùn)行在服務(wù)器端的業(yè)務(wù)組件。J2EE組件和“標(biāo)準(zhǔn)的” Java類的不同點(diǎn)在于:它被裝配在一個J2EE應(yīng)用中,具有固定的格式并遵守J2EE規(guī)范,由J2EE服務(wù)器對其進(jìn)行管理。

所以web包括:web服務(wù)器和web客戶端兩部分。Java在服務(wù)器端的應(yīng)用非常的豐富,比如Servlet,JSP和第三方框架等等。

常見的技術(shù)有以下幾種:



程序架構(gòu)通常分為C/S和B/S架構(gòu):

C/S架構(gòu):

現(xiàn)在最常見的兩種程序架構(gòu)方式就是C/S和B/S架構(gòu),C/S也就是Client/Server架構(gòu),即客戶端/服務(wù)器架構(gòu)。是大家熟知的軟件系統(tǒng)體系結(jié)構(gòu),通過將任務(wù)合理分配到Client端和Server端,降低了系統(tǒng)的通訊開銷,需要安裝客戶端才可進(jìn)行管理操作??蛻舳撕头?wù)器端的程序不同,用戶的操作主要在客戶端,服務(wù)器端主要是提供數(shù)據(jù)管理、數(shù)據(jù)共享、數(shù)據(jù)及系統(tǒng)維護(hù)和并發(fā)控制等,客戶端程序主要完成用戶的具體的業(yè)務(wù)。

所以C/S架構(gòu)的程序?qū)δ軌驕p輕服務(wù)器壓力,而且客戶端是安裝在用戶本地的電腦上,調(diào)用本地的一些硬件設(shè)備就比較方便,適合用于大型游戲、音頻軟件、各種工具類軟件的程序架構(gòu)方式。

但是C/S架構(gòu)也有缺點(diǎn),升級更新還有維護(hù)比較麻煩,系統(tǒng)升級的話,全部的客戶端都需要升級,而且沒有客戶端的話就無法使用任何的功能,設(shè)備需要提前安裝、更新客戶端。 因為這些特性,數(shù)據(jù)管理軟件、網(wǎng)上購物、信息交互部分都不適合使用C/S架構(gòu)。

C/S程序架構(gòu)示意圖:



B/S架構(gòu):

另外一種B/S架構(gòu),即Browser/Server (瀏覽器/服務(wù)器) 結(jié)構(gòu),是隨著Internet技術(shù)的興起,對C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶界面完全通過瀏覽器實現(xiàn)。在這種結(jié)構(gòu)下,用戶工作界面是通過瀏覽器來實現(xiàn),極少部分事務(wù)邏輯在前端(Browser)實現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端(Server)實現(xiàn),形成所謂三層3-tier結(jié)構(gòu)。B/S結(jié)構(gòu)是WEB興起后的一種網(wǎng)絡(luò)結(jié)構(gòu)模式,WEB瀏覽器是客戶端最主要的應(yīng)用軟件。這種模式統(tǒng)一了客戶端,將系統(tǒng)功能實現(xiàn)的核心部分集中到服務(wù)器上,簡化了系統(tǒng)的開發(fā)、維護(hù)和使用。

客戶機(jī)上只要安裝一個瀏覽器(Browser),如Chrome,F(xiàn)irefox或Internet Explorer,服務(wù)器安裝Oracle、Sybase、Informix或SQL Server等數(shù)據(jù)庫。瀏覽器通過Web Server同數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互。

以為頁面上的內(nèi)容全部都是從服務(wù)器上下載下來的,以后客戶端沒有什么更新這一說,這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級的成本和工作量,降低了用戶的總體成本,在瀏覽器上只需要刷新一下就能看到最新的內(nèi)容,不用更新客戶端。

但是B/S架構(gòu)也有相應(yīng)的缺點(diǎn),游戲方面只能做網(wǎng)頁小游戲,如果是大型游戲的話瀏覽器受不了,而且網(wǎng)絡(luò)和服務(wù)器也支撐不了,因為全部的特效渲染、數(shù)據(jù)計算都得在服務(wù)器上完成后通過網(wǎng)絡(luò)發(fā)送到瀏覽器上,這是不可能完成的,所以B/S架構(gòu)不適合做大型游戲。B/S架構(gòu)不能像C/S架構(gòu)那樣方便的訪問、調(diào)用用戶本地的硬件設(shè)備,訪問起來很麻煩。B/S架構(gòu)把系統(tǒng)功能實現(xiàn)的核心部分集中到服務(wù)器上,所以服務(wù)器的壓力也比較大。

B/S程序架構(gòu)示意圖:



兩種程序架構(gòu)的思維導(dǎo)圖:



在B/S架構(gòu)的程序中,通過瀏覽器對服務(wù)器進(jìn)行的請求分為動態(tài)請求和靜態(tài)請求:

靜態(tài)請求:

所謂靜態(tài)請求,就是訪問網(wǎng)頁時僅從服務(wù)器上下載靜態(tài)文件,例如網(wǎng)頁的html、js、css、圖片文件等,都屬于靜態(tài)文件。示意圖:



動態(tài)請求:

動態(tài)請求則是你的請求會經(jīng)過服務(wù)器上的程序處理,和與數(shù)據(jù)庫交互,然后再反饋到網(wǎng)頁上,例如最經(jīng)典的動態(tài)請求就是登錄賬戶,示意圖:



可以實現(xiàn)動態(tài)頁面的常見技術(shù):



關(guān)于為什么B/S架構(gòu)的服務(wù)器壓力比較大:

這是因為所有的網(wǎng)頁文件都是存放在服務(wù)器的,所以客戶通過瀏覽器訪問網(wǎng)頁時都是需要從服務(wù)器上下載的。并且所有的請求處理都在服務(wù)器上進(jìn)行,動態(tài)請求還得需要通過服務(wù)器上的應(yīng)用程序進(jìn)行處理,并且還要與數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的交互,所以相對于C/S架構(gòu)來說B/S架構(gòu)的服務(wù)器壓力要大,通過搭建服務(wù)器分布式處理和集群架構(gòu)能提升服務(wù)器的性能,從而可以解決服務(wù)器由于性能不足而出現(xiàn)的負(fù)載過高的問題。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,778評論 18 399
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,839評論 0 11
  • Web測試基礎(chǔ) I. 如何開展Web測試 Web測試的對象 Web的頁面元素 Web的業(yè)務(wù)邏輯 Web的數(shù)據(jù)行為 ...
    厲鉚兄閱讀 4,408評論 4 62
  • 一、 父親 你于我 就是龍與蛇 我就想成為你 二、 母親 雖然我已經(jīng)很喜歡你了 但如果你眼角的皺紋再少點(diǎn) 我想我會愛上你
    森林初青閱讀 331評論 0 0