這篇文章主要介紹javaweb需要要了解的知識點,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
十年的赫山網站建設經驗,針對設計、前端、開發、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。營銷型網站建設的優勢是能夠根據用戶設備顯示端的尺寸不同,自動調整赫山建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現優雅布局與設計,從而大程度地提升瀏覽體驗。創新互聯從事“赫山網站設計”,“赫山網站推廣”以來,每個客戶項目都認真落實執行。一、WEB應用程序
B/S ( browser/server ,瀏覽器/服務器)架構
基于HTTP傳輸協議(超文本傳輸協議,回憶HTML的名字:超文本標記語言)
WEB程序必須要運行在web容器上,如Tomcat /Jboss/WebLogic等
二、HTTP協議
HTTP使用TCP作為它的支撐運輸層協議,默認的端口是80(缺省端口)。
超文本傳輸協議(Hypertext Transfer Protocol,簡稱HTTP)是應用層協議。HTTP 是一種請求/響應式的協議,即一個客戶端與服務器建立連接后,向服務器發送一個請求;服務器接到請求后,給予相應的響應信息。 、
HTTP 請求報文由請求行、請求頭部、空行 和 請求包體 4 個部分組成下面對請求報文格式進行簡單的分析:
請求行:請求行由方法字段、URL 字段 和HTTP 協議版本字段 3 個部分組成,他們之間使用空格隔開。常用的 HTTP 請求方法有 GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT;
GET:當客戶端要從服務器中讀取某個資源時,使用GET 方法。GET 方法要求服務器將URL 定位的資源放在響應報文的數據部分,回送給客戶端,即向服務器請求某個資源。使用GET 方法時,請求參數和對應的值附加在 URL 后面,利用一個問號(“?”)代表URL 的結尾與請求參數的開始,傳遞參數長度受限制。例如,/index.jsp?id=100&op=bind。
POST:當客戶端給服務器提供信息較多時可以使用POST 方法,POST 方法向服務器提交數據,比如完成表單數據的提交,將數據提交給服務器處理。GET 一般用于獲取/查詢資源信息,POST 會附帶用戶數據,一般用于更新資源信息。POST 方法將請求參數封裝在HTTP 請求數據中,以名稱/值的形式出現,可以傳輸大量數據;請求頭部:請求頭部由關鍵字/值對組成,每行一對,關鍵字和值用英文冒號“:”分隔。
請求頭部通知服務器有關于客戶端請求的信息,典型的請求頭有:
User-Agent:產生請求的瀏覽器類型;
Accept:客戶端可識別的響應內容類型列表;星號 “ * ” 用于按范圍將類型分組,用 “ */* ” 指示可接受全部類型,用“ type/* ”指示可接受 type 類型的所有子類型;
Accept-Language:客戶端可接受的自然語言;
Accept-Encoding:客戶端可接受的編碼壓縮格式;
Accept-Charset:可接受的應答的字符集;
Host:請求的主機名,允許多個域名同處一個IP 地址,即虛擬主機;
connection:連接方式(close 或 keepalive);
Cookie:存儲于客戶端擴展字段,向同一域名的服務端發送屬于該域的cookie;
空行:最后一個請求頭之后是一個空行,發送回車符和換行符,通知服務器以下不再有請求頭;
請求包體:請求包體不在 GET 方法中使用,而是在POST 方法中使用。POST 方法適用于需要客戶填寫表單的場合。與請求包體相關的最常使用的是包體類型 Content-Type 和包體長度 Content-Length。
下面對響應報文格式進行簡單的分析:
狀態行:狀態行由 HTTP 協議版本字段、狀態碼和狀態碼的描述文本 3 個部分組成,他們之間使用空格隔開; 狀態碼由三位數字組成,第一位數字表示響應的類型,常用的狀態碼有五大類如下所示:
1xx:表示服務器已接收了客戶端請求,客戶端可繼續發送請求;
2xx:表示服務器已成功接收到請求并進行處理;
3xx:表示服務器要求客戶端重定向;
4xx:表示客戶端的請求有非法內容;
5xx:表示服務器未能正常處理客戶端的請求而出現意外錯誤;
狀態碼描述文本有如下取值:
200 OK:表示客戶端請求成功;
400 Bad Request:表示客戶端請求有語法錯誤,不能被服務器所理解;
401 Unauthonzed:表示請求未經授權,該狀態代碼必須與 WWW-Authenticate 報頭域一起使用;
403 Forbidden:表示服務器收到請求,但是拒絕提供服務,通常會在響應正文中給出不提供服務的原因;
404 Not Found:請求的資源不存在,例如,輸入了錯誤的URL;
500 Internal Server Error:表示服務器發生不可預期的錯誤,導致無法完成客戶端的請求;
503 Service Unavailable:表示服務器當前不能夠處理客戶端的請求,在一段時間之后,服務器可能會恢復正常;
三、Servlet
Servlet是javaWEB的核心,簡單的說就是用Java編寫的服務器端程序。用戶進行一個動態請求(靜態請求就是直接請求HTML )時,實際上是請求—個servlet
WEB容器將Servlet加載到內存 通過init方法進行初始化
Service()方法根據請求方法調用對應的處理方法doPost()或doGet(),還有一些其他的請求方法doPut() doOptions()...但這些方法不常用,并且從安全的角度都是建議屏蔽的。
當Server不再需要Servlet時(一般當Server關閉時),Server調用 Servlet 的 destroy() 方法。
四、JSP
Java Server Pages是一種靜態編碼町機和動態編碼Java混合的技術, 也有說法就是將java代碼鑲嵌在HTML上,在JSP之前,Servlet作為主體,功能比較強大,設計也很先進,但瑜出 HTML頁面卻完全是Java的out.print(), 一行一句的輸出,對于頁面編寫和修改來說非常不方便,這才促使SUN公司推出JSP。JSP和ASP、PHP類似都是鑲嵌型語言。另外補充一下,WEB容器后動的時候,會將_JSP編譯成Servlet,也有說法JSP是Servlet的升級版。
五、Tomcat
Java WEB容器有很多,這里以Tomcat為例來說。前面說到,WEB程序必須運行在WEB容器上。Tomcat就是作為WEB容器來運行切Java WEB程序的。Tomcat是JAVA語言寫的,需要JVM作為運行環境。
Tomcat的目錄結構
bin………………………………可執行程序(腳本),啟動停止調試Tomcat的一些bat.sh
conf…………………………….配置文件 webx.ml server.xml 等
lib……………………………....Tomcat運行需要的jar包
logs…………………………….曰志文件
temp…………………………….臨時文件
webapps………………………WEB 程序(編譯后的項目文件)
work…………………………….將jsp文件生成java文件在此目錄進行
補充說明一下,Tomcat將jsp編譯成Java文件并不是實時進行的,所以有時候修改了頁面,并沒有及時生效,這時候我們只需要刪除一下work目錄下對應的文件即可。
六、Java WEB項目結構
一般來說,我們常說的Java項目基本上都是WEB項目(B/S架構),不是說Java不能做C/S程序,實際上Java的Swing就是畫界面的,但是現在C#已經成為畫界面最流行的語言,快速,簡單,所以越來越少的人用Java來做C/S程序開發了。我們主要來說Java WEB項目,下面是最基本的項目結構。
src…………………………….JAVA源碼,java文件目錄
webContent/webRoot……………項目發布目錄
WEB-INF
lib………………………………….項目需要的jar包
web.xml…………………………WEB 程序的入口
以上是Java WEB項目的核心結構,實際開發中,搭建項目會比這些復雜,特別是引用框架以后,配置文件的增加,會添加一些新的目錄。
七、開發框架
前面提到客戶端發起動態請求時,請求到Servlet進行處理,然后返回,整個請求處理的工作都是在Servlet中處理的,看起來比較簡單,每當需要一個不同的請求就寫一個Servlet,但實際開發的時候如果功能模塊比較多,就需要寫很多個Servlet,并且如果我們想修改一個請求的返回,也必須通過修改Java代碼 (Servlet)的方式來實現。
這樣對功能的擴展和維護來說,就比較麻煩了,所以也就推動了很多集成幵發框架的流行,比如Webwork,Struts,SpringMVC,Jfinal等都是主流的Java WEB開發框架。
使用框架有一個很籠統的優點概述,可以加快開發進程,在類似項目中重用代碼將為開發者節省大量的時間和精力.框架為執行繁瑣的代碼任務提供預建模塊。讓使用者只關心核心業務的開發,框架幫你屏蔽原有技術跟業務開發無關的各類技術問題。但如果想要深入的了解一個框架,使用的更加熟練,還是需要了解底層的原理,找到其源頭也就是Servlet。
以SpringMVC為例簡單描述一下工作原理
SprfngMVC主要也是通過DispatcherServlet (Servlet調配器,在web_xml中配置)實現了Servlet這個接口,又叫前端控制器,來自前端的請求會先到達這里,它負責到后臺去匹配合適的handler。DispatcherServlet的主要工作流程如下:
1、 客戶端發出http請求給web服務器,web服務器對http請求進行解析,如果匹配DispatcherServlet的請求映射路徑(在web.xml中指定),web容器將請求轉交給DispatcherServlet.
2、 DipatcherServlet接收到這個請求之后將根據請求的信息(包括URL、Http方法、請求報文頭和請求參數Cookie等)以及HandlerMapping的配置找到處理請求的處理器Controller (Handler)。
3、 DispatclierServlet 根據 HandlerMapping 找到對應的Handler,將處理權交給Handler ( Handler將具體的處理進行封裝),再由具體的 HandlerAdapter對Handler進行具體的調用。
5、Handler對數據處理完成以后將返回一個ModeAndView對象給DispatcherServlet.
6、 Handler返回的ModelAndView只是一個邏輯視圖并不是一個正式的視圖,Di spatcherSevlet通過ViewResolver將邀輯視圖轉化為真正的視圖view(這句話簡單的就是返回一個要返回的頁面的相對路徑,通過試圖解析器轉換成具體那個頁面)。
7、 Dispatcher通過model解析出ModeAndView中的參數進行解析最終展現出完整的view并返回給客戶端。
八、用SpringMVC編寫功能模塊
由于框架配置工作量比較大,也需要對各方面的技術有所了解,暫時不做描述。我們簡單的說一下實際開發中,如何在現有的框架基礎上完成一個功能模塊,了解功能的基本流程,以登錄為例:
1、首先要有登錄入口( JSP頁面),在SpringMVC框架中我們不建議直接 訪問JSP頁面,所以我們登錄頁面的訪問也是通過后臺處理的;
2、編寫丨ogin.jsp頁面及登錄返回頁面index.jsp ;
3、編寫LoginController,里面包含兩個請求控制方法,一個preLogin(),一個doLogin() ,其中preLogin()負責處理請求登錄頁面的請求(返回到 login.jsp ), doLogin()處理登錄請求返回到index.jsp。
4. login.jsp中需要通過表單或者ajax進行登錄請求。
請求/preLogin業務邏輯處理返回到login.jsp à 輸入用戶名、密碼…
請求/doLogin業務邏輯處理,返回登錄結果index.jsp。
九、其他基礎知識
數據庫操作,Jdbc/Hibernate/Mybatis
JSP標簽,EL表達式,Struts標簽,C標簽等
基本的前端技術CSS/JS/jQuery/Ajax
以上是javaweb需要要了解的知識點的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創新互聯成都網站設計公司行業資訊頻道!
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
當前名稱:javaweb需要要了解的知識點-創新互聯
本文鏈接:http://m.newbst.com/article24/dsggce.html
成都網站建設公司_創新互聯,為您提供微信公眾號、移動網站建設、虛擬主機、做網站、微信小程序、全網營銷推廣
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯