JAVA EE 基本了解

1、??為什么需要JavaEE

我們編寫的JSP代碼中,由于大量的顯示代碼和業務邏輯混淆在一起,彼此嵌套,不利于程序的維護和擴展。當業務需求發生變化的時候,對于程序員和美工都是一個很重的負擔。

為了程序的易維護性和可擴展性,這就需要我們使用JavaEE技術來進行項目開發

2、??什么是JavaEE

JavaEE是一個開發分布式企業級應用的規范和標準。

Java語言的平臺有3個版本:適用于小型設備和智能卡的JavaME(Java Platform Micro Edition,Java微型版)、適用于桌面系統的JavaSE(Java Platform Micro Edition,Java標準版)、適用于企業應用的JavaEE(Java Platform Enterprise Edition,Java企業版)。

3、??JavaEE包括的技術

JavaEE應用程序是由組件構成的。J2EE組件是具有獨立功能的單元,他們通過相關的類和文件組裝成JavaEE應用程序,并與其他組件交互。

JavaEE包括的技術有:Web Service、Struts、Hibernate、Spring、JSP、Servlet、JSF、EJB、JavaBean、JDBC、JNDI、XML、JavaSE。

4、??什么框架

框架即Framework,我們可以把框架理解為某種應用的半成品,就是一組組件,供用戶選用,完成用戶自己的系統。簡單地說就是使用別人準備好的組件,來實施自己的項目。

5、??JavaEE與框架的關系

框架技術是在JavaEE的基礎上形成的,而應用程序是在框架的基礎上創建的。

?

?

?

6、??JavaEE的體系結構

應用程序的三層結構如下:

表示層:由用戶界面和用戶生成界面的代碼組成。

中間層:包含系統的業務和功能代碼。

數據層:負責完成存取數據庫的數據和對數據進行封裝。

三層體系結構的優點:

一個組件的更改不會影響其他兩個組件。例如:如果用戶需要更換數據庫,那么只有數據層組件需要修改代碼。同樣,如果更改了用戶界面設計,那么只有表示層組件需要修改。

由于表示層和數據層相互獨立,因而可以方便地擴充表示層,使系統具有良好的可擴展性。

代碼重復減少,因為在3個組件之間盡可能地共享代碼。

良好的分工與協作。這將使不同的小組能夠獨立地開發應用程序的不同部分,并充分發揮各自的長處和優勢。

7、??JavaEE技術內容

JavaEE技術體系結構可分為:表示層技術、中間層技術、數據層技術。JavaEE還涉及到系統集成的一些技術。

7.1、表示層技術

???????HTML

???????JavaScript

???????Ajax

Ajax是幾種技術的整合。Ajax的主要功能是異步地向服務器端發送請求,處理數據或者根據返回的數據重新顯示頁面。

7.2、中間層技術

???????JSP

???????顯示動態內容的服務器網頁。

???????Servlet

???????接收客戶端請求,并做出響應的Java程序。

???????Servlet是中間層技術的重要組成部分,它控制著其他的組件。

???????JSTL

???????輔助JSP顯示動態內容的標準標簽庫。

???????JavaBean

???????JavaEE的模型組件。

???????中間層的框架技術

???????Struts框架:Struts主要是擴展了Servlet。

7.3、數據層技術

???????JDBC技術

???????JDBC(Java Database Connectivity):Java數據庫連接。

???????使用JDBC操作數據庫中的表和數據。

???????數據層框架技術

???????數據層框架,Hibernate提供了以對象的形式操作關系型數據庫數據的功能。

7.4、系統集成技術

在一些大型項目中,整個應用程序被分成若干個模塊,由不同的開發團隊同步進行開發,有可能他們使用的技術也是各不相同的,在每個功能模塊開發結束后,所要做的事情就是把這些零散的模塊,整合成一個整體,這才是我們也是客戶所要的東西,這時我們就要用到有關系統集成的技術(Web Service)。

JAX-WS技術

JAX-WS(Java API for XML Web Service)是JavaEE平臺的重要組成部分。

JAX-WS簡化了使用Java技術開發Web服務的工作。

JNDI

JNDI(Java Naming and Directory Interface,Java命名和目錄接口)是一組在Java應用中訪問命名和目錄服務的API,命名服務把對象和名稱聯系在一起,并且可以通過名稱找到相應的對象。

8、??HTTP(HyperText Transfer Protocol,超文本傳輸協議)協議

HTTP是一個無狀態協議,它基于客戶端/服務器模型。HTTP客戶端(如瀏覽器)需要與服務器建立一個連接,并將一則請求消息通過連接發送到HTTP服務器,以請求相應的資源。然后服務器返回帶有請求資源的響應消息。當響應結束后,就斷開連接,彼此并不保存連接信息。所以HTTP是無狀態協議。

HTTP使用端口發送和接收消息。端口是協議發送和接收數據的信道或機制。80端口是為HTTP開發的,主要用于在WWW(World Wide Web,萬維網)服務上傳輸信息。瀏覽網頁服務默認的端口號是80。

9、??使用MyEclipse提供的數據監控工具TCP/IP Monitor來進行數據監控。

TCP/IP Monitor(TCP/IP?監控器)的配置步驟:

Window(窗口)--->Preferences(首選項)--->Run Debug(運行/調式)--->TCP/IP Monitor(TCP/IP?監視器)

注意:如果沒有找到,則按以下路徑查找:

Window(窗口)--->Preferences(首選項)--->MyEclipse ---> Internet Tools(因特網工具)---> TCP/IP Monitor(TCP/IP?監視器)

然后選中Show the TCP/IP Monitor view there is activity(顯示TCP/IP監視器視圖,用來查看什么時候有請求和響應)。

單擊“Add”按鈕,彈出New Monitor窗口。

Local monitoring Port:填寫8088。本機監控端口,也就是Monitor實際監聽的端口。

Host name:填寫localhost或127.0.0.1。欲監控的主機名稱,監聽對象的設置。

Port:填寫8080。欲監控的端口號,你想要監聽的端口號,你的請求發送到Local monitoring Port后會轉到這個端口。

Type:選擇HTTP。要監控的類型。

Timeout:0?。

單擊確定按鈕,然后單擊Start(啟動)按鈕啟動監視器。

然后啟動tomcat,在地址欄中輸入:http://localhost:8088/項目名(或上下文路徑)。在MyEclipse中會出現“TCP/IP Monitor”窗口,可以看到監聽的數據了。

可以單擊窗口右上角的ValidateWS-I Message Log File圖標(圖標上有個勾)添加記錄文件。

下面對某一請求示例進行分析:

客戶端發送的消息為文本流,由以下內容組成:

請求行:包括方法、統一資源標識符(URL)和HTTP協議版本。

頭信息:典型的請求消息類似于以下內容。

??????????????GET /monitor/test.jsp?username=xinxin&userpassword=1234 HTTP/1.1

??????????????Host: localhost:8080

??????????????User-Agent: Mozilla/5.0(Windows;U;Window NT 5.1;zh-CN;)

??????????????Accept: text/xml,application/xml, text/html; text/plain;

第一行使用GET方法提交請求數據,并指定正在使用的是HTTP協議1.1版本。后續行包括頭信息,User-Agent頭指示客戶端使用的瀏覽器類型是Mozilla,Accept頭信息提供有關客戶端可以接受的MIME類型列表。在頭信息之后,客戶端發送一個空白行,指示請求消息結束。請求消息由服務器進一步處理,并且生成相應的響應消息。

???????下面是響應示例:

???????HTTP/1.1 200 OK

???????Server: JavaWebServer

???????Last-modified: Tuesday, 21-Aug-07 11:12:10 GMT

???????Content-length: 100

???????Content-type: text/html

第一行為狀態行。狀態行中的狀態碼200指示已成功處理請求,因此描述為“OK”,404是找不到被請求的網頁時遇到的狀態碼。其他行是頭信息,Server頭指定服務器上使用的軟件,Last-modified頭指示被請求文件的最后修改日期,Content-length頭指定文件的大小(以字節表示),Content-type頭指定文檔的MIME類型。例如,text/plain指示未格式化的文本文檔。text/html指示格式化的Web文檔。

10、?get和post發送方式

post:post方式會將表單的內容通過http發送,在地址欄中看不到表單的提交信息,比較安全,而且使用post方式發送信息沒有字符長度的限制。

get方式:表單內容經過編碼之后,通過URL發送,可以在地址欄中看到表單信息,不安全。使用get方式發送信息時有255個字符的限制。get請求的頁面可以設置為書簽或使用郵件發送,而post不可以。

失敗是什么?沒有什么,只是更走近成功一步;成功是什么?就是走過了所有通向失敗的路,只剩下一條路,那就是成功的路。

轉載于:https://www.cnblogs.com/break-lian/p/9375996.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/249869.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/249869.shtml
英文地址,請注明出處:http://en.pswp.cn/news/249869.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vue-cli中config目錄下的index.js文件詳解

// see http://vuejs-templates.github.io/webpack for documentation. // path是node.js的路徑模塊,用來處理路徑統一的問題 var path require(path)module.exports { // 下面是build也就是生產編譯環境下的一些配置build: { // 導入prod.env.js配置文件&#xf…

Business Intelligence——SSIS項目從創建到部署的簡單總結(二)

在上一篇博客中,我們成功的把包導進了SQL Server中,那么接下來我們就為其創建作業,使數據庫能夠自動執行我們的任務。首先,我們需要啟動“SQL Server 代理”。如圖1:圖1在“SQL Server 代理”的子節點中,選…

我的vscode配置 利用Settings Sync一鍵安裝

{"prettier.eslintIntegration": true, // 點擊保存時,根據 eslint 規則自定修復,同時集成 prettier 到 eslint 中"prettier.semi": false, //去掉代碼結尾的分號"prettier.singleQuote": true, //使用帶引號替代雙引號&q…

IdentityServer4【QuickStart】之使用asp.net core Identity

使用asp.net core Identity IdentityServer靈活的設計中有一部分是可以將你的用戶和他們的數據保存到數據庫中的。如果你以一個新的用戶數據庫開始,那么,asp.net core Identity是一個選擇。這個示例演示了如何在IdentityServer中使用asp.net core Ientit…

vue demo1

1.開發工具 試過sublime,現在轉戰vscode,覺得很順手,總之啥工具習慣就好。 vscode用著不錯的插件,推薦安裝。 2.項目目錄介紹 vue-cli生成的項目目錄有點多,初看有點懵,梳理一下會好很多。 ├── ind…

mysql日志介紹

1. 錯誤日志 錯誤日志記錄的事件: a. 服務器啟動關閉過程中的信息 b. 服務器運行過程中的錯誤信息 c. 事件調試器運行一個事件時間生的信息 d. 在從服務器上啟動從服務器進程時產生的信息 2. 查詢日志 查詢日志記錄查詢語句與啟動時間,建議不是在調試環境…

Mac OS X終端的常用操作命令(UNIX指令)

用了十多年windows,終于換了個高配Mac,俗話說 無論前端還是后端最終還是走向了linux,無論是換了多少臺PC最終都會走向Mac。不學習命令行用什么Mac? 干就完了~ pwd 顯示現在的文件路徑 (print working directory) ls 顯示…

索引( index )

索引在龐大的數據庫上最能體現出作用,所謂索引就是根據需求將指定的列提取出來做索引表,可以顯著提高在查找數據方面的速度。 在索引的前提下還可以指定索引值是否唯一,索引值是單列或是多列索引。 根據索引類型,索引分為&#xf…

dependencies 和 devDependencies 區別

當我們項目需要下載一個模塊的時候,我們安裝npm包(在項目目錄下面npm install module_name)的時候,很多時候我們會在后面加上–save-dev 或 –save。這兩個參數代表什么呢? 初識 相信很多人都會回答: np…

CentOS下防御或減輕DDoS攻擊方法(轉)

查看攻擊IP 首先使用以下代碼,找出攻擊者IP netstat -ntu | awk {print $5} | cut -d: -f1 | sort | uniq -c | sort -n 將會得出類似如下的結果: 1 114.226.9.132 1 174.129.237.157 1 58.60.118.142 1 Address 1 servers) 2 118.26.131.78 3 123.125.1…

iTerm2 快捷鍵

Ctrl a:將光標移動到命令行首 Ctrl e:將光標移動到命令行尾 Ctrl w:刪除光標前的一個單詞 Ctrl u:刪除所有內容 Ctrl y:粘貼上次刪除的內容 Ctrl r:搜索歷史命令刪除光標之前的單詞:ctrl …

vscode - 添加背景圖片

首先,CtrlShiftP安裝backround , 而后重啟vscode會有默認的背景圖片 修改背景圖,可自定義三張 具體請看gif圖 最開始時,發現png根本不是全透明,用ps處理了一下(下列所有操作均字母組合) 1.1 Ctr…

架構設計雜談004——架構師

什么是架構設師 架構師是:負責系統架構設計的人、團隊或組織 架構師主要干什么 ●架構師是技術領導,領導并負責架構設計,負責做決策 ●架構師可以是團隊或組織,這個時候通常會有首席架構師 ●架構師必須掌握足夠的技術知識 ●架構…

學習JS基本數據類型與對象的valueOf方法

https://blog.csdn.net/licheng11403080324/article/details/60128090 https://yq.aliyun.com/articles/399499 轉載于:https://www.cnblogs.com/smzd/p/9548530.html

security和oauth2.0的整合

security和oauth2.0的整合 之前已經介紹過security的相關的介紹,現在所需要做的就是security和oauth2.0的整合,在原有的基礎上我們加上一些相關的代碼;代碼實現如下: pom.xml: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http:…

關于Vue.use()詳解

問題 相信很多人在用Vue使用別人的組件時&#xff0c;會用到 Vue.use() 。例如&#xff1a;Vue.use(VueRouter)、Vue.use(MintUI)。但是用 axios時&#xff0c;就不需要用 Vue.use(axios)&#xff0c;就能直接使用。那這是為什么吶&#xff1f; 答案 因為 axios 沒有 install。…

百度TTS的來由

#### https://home-assistant.io/components/tts.baidu/#### https://github.com/charleyzhu/HomeAssistant_Components#### 當前使用自定義組件 https://bbs.hassbian.com/thread-1152-1-1.html#### 2018-3-15添加百度云語音識別 - platform: baidu language: zh app_i…

eslint 禁用命令

/* eslint-disable */ ESLint 在校驗的時候就會跳過后面的代碼還可以在注釋后加入詳細規則&#xff0c;這樣就能避開指定的校驗規則了/* eslint-disable no-new */常用&#xff1a; rules: {"comma-dangle": ["error", "never"], //是否允許對象…

分布式工具的一次小升級?

前言 之前在做 秒殺架構實踐 時有提到對 distributed-redis-tool 的一次小升級&#xff0c;但是沒有細說。 其實主要原因是&#xff1a; 秒殺時我做壓測&#xff1a;由于集成了這個限流組件&#xff0c;并發又比較大&#xff0c;所以導致連接、斷開 Redis 非常頻繁。 最終導致獲…

淺談vue $mount()

Vue 的$mount()為手動掛載&#xff0c;在項目中可用于延時掛載&#xff08;例如在掛載之前要進行一些其他操作、判斷等&#xff09;&#xff0c;之后要手動掛載上。new Vue時&#xff0c;el和$mount并沒有本質上的不同。 具體見代碼&#xff1a; 順便附上vue渲染機制流程圖&a…