javaweb需要要了解的知識(shí)點(diǎn)-創(chuàng)新互聯(lián)

這篇文章主要介紹javaweb需要要了解的知識(shí)點(diǎn),文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

十年的赫山網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營銷型網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整赫山建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“赫山網(wǎng)站設(shè)計(jì)”,“赫山網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

一、WEB應(yīng)用程序

B/S ( browser/server ,瀏覽器/服務(wù)器)架構(gòu)

基于HTTP傳輸協(xié)議(超文本傳輸協(xié)議,回憶HTML的名字:超文本標(biāo)記語言)

WEB程序必須要運(yùn)行在web容器上,如Tomcat /Jboss/WebLogic等

二、HTTP協(xié)議

HTTP使用TCP作為它的支撐運(yùn)輸層協(xié)議,默認(rèn)的端口是80(缺省端口)。

超文本傳輸協(xié)議(Hypertext Transfer Protocol,簡稱HTTP)是應(yīng)用層協(xié)議。HTTP 是一種請求/響應(yīng)式的協(xié)議,即一個(gè)客戶端與服務(wù)器建立連接后,向服務(wù)器發(fā)送一個(gè)請求;服務(wù)器接到請求后,給予相應(yīng)的響應(yīng)信息?!?、

HTTP 請求報(bào)文由請求行、請求頭部、空行 和 請求包體 4 個(gè)部分組成下面對請求報(bào)文格式進(jìn)行簡單的分析:

請求行:請求行由方法字段、URL 字段 和HTTP 協(xié)議版本字段 3 個(gè)部分組成,他們之間使用空格隔開。常用的 HTTP 請求方法有 GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT;

GET:當(dāng)客戶端要從服務(wù)器中讀取某個(gè)資源時(shí),使用GET 方法。GET 方法要求服務(wù)器將URL 定位的資源放在響應(yīng)報(bào)文的數(shù)據(jù)部分,回送給客戶端,即向服務(wù)器請求某個(gè)資源。使用GET 方法時(shí),請求參數(shù)和對應(yīng)的值附加在 URL 后面,利用一個(gè)問號(hào)(“?”)代表URL 的結(jié)尾與請求參數(shù)的開始,傳遞參數(shù)長度受限制。例如,/index.jsp?id=100&op=bind。

POST:當(dāng)客戶端給服務(wù)器提供信息較多時(shí)可以使用POST 方法,POST 方法向服務(wù)器提交數(shù)據(jù),比如完成表單數(shù)據(jù)的提交,將數(shù)據(jù)提交給服務(wù)器處理。GET 一般用于獲取/查詢資源信息,POST 會(huì)附帶用戶數(shù)據(jù),一般用于更新資源信息。POST 方法將請求參數(shù)封裝在HTTP 請求數(shù)據(jù)中,以名稱/值的形式出現(xiàn),可以傳輸大量數(shù)據(jù);請求頭部:請求頭部由關(guān)鍵字/值對組成,每行一對,關(guān)鍵字和值用英文冒號(hào)“:”分隔。

請求頭部通知服務(wù)器有關(guān)于客戶端請求的信息,典型的請求頭有:

User-Agent:產(chǎn)生請求的瀏覽器類型;

Accept:客戶端可識(shí)別的響應(yīng)內(nèi)容類型列表;星號(hào) “ * ” 用于按范圍將類型分組,用 “ */* ” 指示可接受全部類型,用“ type/* ”指示可接受 type 類型的所有子類型;

Accept-Language:客戶端可接受的自然語言;

Accept-Encoding:客戶端可接受的編碼壓縮格式;

Accept-Charset:可接受的應(yīng)答的字符集;

Host:請求的主機(jī)名,允許多個(gè)域名同處一個(gè)IP 地址,即虛擬主機(jī);

connection:連接方式(close 或 keepalive);

Cookie:存儲(chǔ)于客戶端擴(kuò)展字段,向同一域名的服務(wù)端發(fā)送屬于該域的cookie;

空行:最后一個(gè)請求頭之后是一個(gè)空行,發(fā)送回車符和換行符,通知服務(wù)器以下不再有請求頭;

請求包體:請求包體不在 GET 方法中使用,而是在POST 方法中使用。POST 方法適用于需要客戶填寫表單的場合。與請求包體相關(guān)的最常使用的是包體類型 Content-Type 和包體長度 Content-Length。

下面對響應(yīng)報(bào)文格式進(jìn)行簡單的分析:

狀態(tài)行:狀態(tài)行由 HTTP 協(xié)議版本字段、狀態(tài)碼和狀態(tài)碼的描述文本 3 個(gè)部分組成,他們之間使用空格隔開; 狀態(tài)碼由三位數(shù)字組成,第一位數(shù)字表示響應(yīng)的類型,常用的狀態(tài)碼有五大類如下所示:

1xx:表示服務(wù)器已接收了客戶端請求,客戶端可繼續(xù)發(fā)送請求;

2xx:表示服務(wù)器已成功接收到請求并進(jìn)行處理;

3xx:表示服務(wù)器要求客戶端重定向;

4xx:表示客戶端的請求有非法內(nèi)容; 

5xx:表示服務(wù)器未能正常處理客戶端的請求而出現(xiàn)意外錯(cuò)誤;

狀態(tài)碼描述文本有如下取值:

200 OK:表示客戶端請求成功; 

400 Bad Request:表示客戶端請求有語法錯(cuò)誤,不能被服務(wù)器所理解; 

401 Unauthonzed:表示請求未經(jīng)授權(quán),該狀態(tài)代碼必須與 WWW-Authenticate 報(bào)頭域一起使用;

403 Forbidden:表示服務(wù)器收到請求,但是拒絕提供服務(wù),通常會(huì)在響應(yīng)正文中給出不提供服務(wù)的原因; 

404 Not Found:請求的資源不存在,例如,輸入了錯(cuò)誤的URL; 

500 Internal Server Error:表示服務(wù)器發(fā)生不可預(yù)期的錯(cuò)誤,導(dǎo)致無法完成客戶端的請求; 

503 Service Unavailable:表示服務(wù)器當(dāng)前不能夠處理客戶端的請求,在一段時(shí)間之后,服務(wù)器可能會(huì)恢復(fù)正常;

三、Servlet

Servlet是javaWEB的核心,簡單的說就是用Java編寫的服務(wù)器端程序。用戶進(jìn)行一個(gè)動(dòng)態(tài)請求(靜態(tài)請求就是直接請求HTML )時(shí),實(shí)際上是請求—個(gè)servlet

WEB容器將Servlet加載到內(nèi)存 通過init方法進(jìn)行初始化

Service()方法根據(jù)請求方法調(diào)用對應(yīng)的處理方法doPost()或doGet(),還有一些其他的請求方法doPut() doOptions()...但這些方法不常用,并且從安全的角度都是建議屏蔽的。

當(dāng)Server不再需要Servlet時(shí)(一般當(dāng)Server關(guān)閉時(shí)),Server調(diào)用 Servlet 的 destroy() 方法。

四、JSP

Java Server Pages是一種靜態(tài)編碼町機(jī)和動(dòng)態(tài)編碼Java混合的技術(shù), 也有說法就是將java代碼鑲嵌在HTML上,在JSP之前,Servlet作為主體,功能比較強(qiáng)大,設(shè)計(jì)也很先進(jìn),但瑜出 HTML頁面卻完全是Java的out.print(), 一行一句的輸出,對于頁面編寫和修改來說非常不方便,這才促使SUN公司推出JSP。JSP和ASP、PHP類似都是鑲嵌型語言。另外補(bǔ)充一下,WEB容器后動(dòng)的時(shí)候,會(huì)將_JSP編譯成Servlet,也有說法JSP是Servlet的升級(jí)版。

五、Tomcat

Java WEB容器有很多,這里以Tomcat為例來說。前面說到,WEB程序必須運(yùn)行在WEB容器上。Tomcat就是作為WEB容器來運(yùn)行切Java WEB程序的。Tomcat是JAVA語言寫的,需要JVM作為運(yùn)行環(huán)境。

Tomcat的目錄結(jié)構(gòu)

bin………………………………可執(zhí)行程序(腳本),啟動(dòng)停止調(diào)試Tomcat的一些bat.sh

conf…………………………….配置文件 webx.ml server.xml 等

lib……………………………....Tomcat運(yùn)行需要的jar包

logs…………………………….曰志文件

temp…………………………….臨時(shí)文件

webapps………………………WEB 程序(編譯后的項(xiàng)目文件)

work…………………………….將jsp文件生成java文件在此目錄進(jìn)行

補(bǔ)充說明一下,Tomcat將jsp編譯成Java文件并不是實(shí)時(shí)進(jìn)行的,所以有時(shí)候修改了頁面,并沒有及時(shí)生效,這時(shí)候我們只需要?jiǎng)h除一下work目錄下對應(yīng)的文件即可。

六、Java WEB項(xiàng)目結(jié)構(gòu)

一般來說,我們常說的Java項(xiàng)目基本上都是WEB項(xiàng)目(B/S架構(gòu)),不是說Java不能做C/S程序,實(shí)際上Java的Swing就是畫界面的,但是現(xiàn)在C#已經(jīng)成為畫界面最流行的語言,快速,簡單,所以越來越少的人用Java來做C/S程序開發(fā)了。我們主要來說Java WEB項(xiàng)目,下面是最基本的項(xiàng)目結(jié)構(gòu)。

src…………………………….JAVA源碼,java文件目錄

webContent/webRoot……………項(xiàng)目發(fā)布目錄

WEB-INF

lib………………………………….項(xiàng)目需要的jar包

web.xml…………………………WEB 程序的入口

以上是Java WEB項(xiàng)目的核心結(jié)構(gòu),實(shí)際開發(fā)中,搭建項(xiàng)目會(huì)比這些復(fù)雜,特別是引用框架以后,配置文件的增加,會(huì)添加一些新的目錄。

七、開發(fā)框架

前面提到客戶端發(fā)起動(dòng)態(tài)請求時(shí),請求到Servlet進(jìn)行處理,然后返回,整個(gè)請求處理的工作都是在Servlet中處理的,看起來比較簡單,每當(dāng)需要一個(gè)不同的請求就寫一個(gè)Servlet,但實(shí)際開發(fā)的時(shí)候如果功能模塊比較多,就需要寫很多個(gè)Servlet,并且如果我們想修改一個(gè)請求的返回,也必須通過修改Java代碼 (Servlet)的方式來實(shí)現(xiàn)。

這樣對功能的擴(kuò)展和維護(hù)來說,就比較麻煩了,所以也就推動(dòng)了很多集成幵發(fā)框架的流行,比如Webwork,Struts,SpringMVC,Jfinal等都是主流的Java WEB開發(fā)框架。

使用框架有一個(gè)很籠統(tǒng)的優(yōu)點(diǎn)概述,可以加快開發(fā)進(jìn)程,在類似項(xiàng)目中重用代碼將為開發(fā)者節(jié)省大量的時(shí)間和精力.框架為執(zhí)行繁瑣的代碼任務(wù)提供預(yù)建模塊。讓使用者只關(guān)心核心業(yè)務(wù)的開發(fā),框架幫你屏蔽原有技術(shù)跟業(yè)務(wù)開發(fā)無關(guān)的各類技術(shù)問題。但如果想要深入的了解一個(gè)框架,使用的更加熟練,還是需要了解底層的原理,找到其源頭也就是Servlet。

以SpringMVC為例簡單描述一下工作原理

SprfngMVC主要也是通過DispatcherServlet (Servlet調(diào)配器,在web_xml中配置)實(shí)現(xiàn)了Servlet這個(gè)接口,又叫前端控制器,來自前端的請求會(huì)先到達(dá)這里,它負(fù)責(zé)到后臺(tái)去匹配合適的handler。DispatcherServlet的主要工作流程如下:

1、 客戶端發(fā)出http請求給web服務(wù)器,web服務(wù)器對http請求進(jìn)行解析,如果匹配DispatcherServlet的請求映射路徑(在web.xml中指定),web容器將請求轉(zhuǎn)交給DispatcherServlet.

2、 DipatcherServlet接收到這個(gè)請求之后將根據(jù)請求的信息(包括URL、Http方法、請求報(bào)文頭和請求參數(shù)Cookie等)以及HandlerMapping的配置找到處理請求的處理器Controller (Handler)。

3、 DispatclierServlet 根據(jù) HandlerMapping 找到對應(yīng)的Handler,將處理權(quán)交給Handler ( Handler將具體的處理進(jìn)行封裝),再由具體的 HandlerAdapter對Handler進(jìn)行具體的調(diào)用。

5、Handler對數(shù)據(jù)處理完成以后將返回一個(gè)ModeAndView對象給DispatcherServlet.

6、  Handler返回的ModelAndView只是一個(gè)邏輯視圖并不是一個(gè)正式的視圖,Di spatcherSevlet通過ViewResolver將邀輯視圖轉(zhuǎn)化為真正的視圖view(這句話簡單的就是返回一個(gè)要返回的頁面的相對路徑,通過試圖解析器轉(zhuǎn)換成具體那個(gè)頁面)。

7、  Dispatcher通過model解析出ModeAndView中的參數(shù)進(jìn)行解析最終展現(xiàn)出完整的view并返回給客戶端。

八、用SpringMVC編寫功能模塊

由于框架配置工作量比較大,也需要對各方面的技術(shù)有所了解,暫時(shí)不做描述。我們簡單的說一下實(shí)際開發(fā)中,如何在現(xiàn)有的框架基礎(chǔ)上完成一個(gè)功能模塊,了解功能的基本流程,以登錄為例:

1、首先要有登錄入口( JSP頁面),在SpringMVC框架中我們不建議直接 訪問JSP頁面,所以我們登錄頁面的訪問也是通過后臺(tái)處理的;

2、編寫丨ogin.jsp頁面及登錄返回頁面index.jsp ;

3、編寫LoginController,里面包含兩個(gè)請求控制方法,一個(gè)preLogin(),一個(gè)doLogin() ,其中preLogin()負(fù)責(zé)處理請求登錄頁面的請求(返回到 login.jsp ), doLogin()處理登錄請求返回到index.jsp。

4. login.jsp中需要通過表單或者ajax進(jìn)行登錄請求。

請求/preLogin業(yè)務(wù)邏輯處理返回到login.jsp à 輸入用戶名、密碼…

請求/doLogin業(yè)務(wù)邏輯處理,返回登錄結(jié)果index.jsp。

九、其他基礎(chǔ)知識(shí)

數(shù)據(jù)庫操作,Jdbc/Hibernate/Mybatis

JSP標(biāo)簽,EL表達(dá)式,Struts標(biāo)簽,C標(biāo)簽等

基本的前端技術(shù)CSS/JS/jQuery/Ajax

以上是javaweb需要要了解的知識(shí)點(diǎn)的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當(dāng)前名稱:javaweb需要要了解的知識(shí)點(diǎn)-創(chuàng)新互聯(lián)
本文鏈接:http://muchs.cn/article24/dsggce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、移動(dòng)網(wǎng)站建設(shè)虛擬主機(jī)、做網(wǎng)站微信小程序、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化