java三大框架是:

創(chuàng)新互聯(lián)主營臨江網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP開發(fā)公司,臨江h(huán)5小程序定制開發(fā)搭建,臨江網(wǎng)站營銷推廣歡迎臨江等地區(qū)企業(yè)咨詢
1、Struts
為了解決這些問題,出現(xiàn)了Struts框架,它是一個完美的MVC實現(xiàn),它有一個中央控制類(一個Servlet),針對不同的業(yè)務(wù),我們需要一個Action類負責(zé)頁面跳轉(zhuǎn)和后臺邏輯運算,一個或幾個JSP頁面負責(zé)數(shù)據(jù)的輸入和輸出顯示,還有一個Form類負責(zé)傳遞Action和JSP中間的數(shù)據(jù)。JSP中可以使用Struts框架提供的一組標簽,就像使用HTML標簽一樣簡單,但是可以完成非常復(fù)雜的邏輯。從此JSP頁面中不需要出現(xiàn)一行包圍的Java代碼了。
可是所有的運算邏輯都放在Struts的Action里將使得Action類復(fù)用度低和邏輯混亂,所以通常人們會把整個Web應(yīng)用程序分為三層,Struts負責(zé)顯示層,它調(diào)用業(yè)務(wù)層完成運算邏輯,業(yè)務(wù)層再調(diào)用持久層完成數(shù)據(jù)庫的讀寫。
使用JDBC連接來讀寫數(shù)據(jù)庫,我們最常見的就是打開數(shù)據(jù)庫連接、使用復(fù)雜的SQL語句進行讀寫、關(guān)閉連接,獲得的數(shù)據(jù)又需要轉(zhuǎn)換或封裝后往外傳,這是一個非常煩瑣的過程。
2、Hibernate
這時出現(xiàn)了Hibernate框架,它需要你創(chuàng)建一系列的持久化類,每個類的屬性都可以簡單的看做和一張數(shù)據(jù)庫表的屬性一一對應(yīng),當然也可以實現(xiàn)關(guān)系數(shù)據(jù)庫的各種表件關(guān)聯(lián)的對應(yīng)。當我們需要相關(guān)操作是,不用再關(guān)注數(shù)據(jù)庫表。我們不用再去一行行的查詢數(shù)據(jù)庫,只需要持久化類就可以完成增刪改查的功能。使我們的軟件開發(fā)真正面向?qū)ο螅皇敲嫦蚧靵y的代碼。我的感受是,使用Hibernate比JDBC方式減少了80%的編程量。
現(xiàn)在我們有三個層了,可是每層之間的調(diào)用是怎樣的呢?比如顯示層的Struts需要調(diào)用一個業(yè)務(wù)類,就需要new一個業(yè)務(wù)類出來,然后使用;業(yè)務(wù)層需要調(diào)用持久層的類,也需要new一個持久層類出來用。通過這種new的方式互相調(diào)用就是軟件開發(fā)中最糟糕設(shè)計的體現(xiàn)。簡單的說,就是調(diào)用者依賴被調(diào)用者,它們之間形成了強耦合,如果我想在其他地方復(fù)用某個類,則這個類依賴的其他類也需要包含。程序就變得很混亂,每個類互相依賴互相調(diào)用,復(fù)用度極低。如果一個類做了修改,則依賴它的很多類都會受到牽連。 為此,出現(xiàn)Spring框架。
3、Spring
Spring的作用就是完全解耦類之間的依賴關(guān)系,一個類如果要依賴什么,那就是一個接口。至于如何實現(xiàn)這個接口,這都不重要了。只要拿到一個實現(xiàn)了這個接口的類,就可以輕松的通過xml配置文件把實現(xiàn)類注射到調(diào)用接口的那個類里。所有類之間的這種依賴關(guān)系就完全通過配置文件的方式替代了。所以Spring框架最核心的就是所謂的依賴注射和控制反轉(zhuǎn)。
現(xiàn)在的結(jié)構(gòu)是,Struts負責(zé)顯示層,Hibernate負責(zé)持久層,Spring負責(zé)中間的業(yè)務(wù)層,這個結(jié)構(gòu)是目前國內(nèi)最流行的Java Web應(yīng)用程序架構(gòu)了。另外,由于Spring使用的依賴注射以及AOP(面向方面編程),所以它的這種內(nèi)部模式非常優(yōu)秀,以至于Spring自己也實現(xiàn)了一個使用依賴注射的MVC框架,叫做Spring MVC,同時為了很好的處理事物,Spring集成了Hibernate,使事物管理從Hibernate的持久層提升到了業(yè)務(wù)層,使用更加方便和強大。
Struts框架是2000年就開始起步了,技術(shù)相當成熟,目前全球Java開發(fā)中Struts框架是顯示層技術(shù)中當之無愧的王者。它擁有大量的用戶群和很好的開發(fā)團隊。這也是國內(nèi)大部分Java軟件公司對新進員工的基本要求。
接口文檔,代碼層次(比如公共方法寫在哪個class里),哪些為一大類在一個包下,數(shù)據(jù)字典,就是介紹你這個項目的架構(gòu)讓后來的人怎么能容易參與開發(fā),交接什么看這個就可以方便些,輔助作用的一個文檔一般都是項目經(jīng)理寫
package ...; //1.創(chuàng)建包名
import java.*** //2 .引入包
public class Xxx { //3.創(chuàng)建類
int a=0;//4.變量聲明
public static void main(String[] args){
//5.方法體
}
}
Java語言是面向?qū)ο蟮某绦蛟O(shè)計語言,Java程序的基本組成單元是類,類體中又可包括屬性與方法兩部分。而每一個應(yīng)用程序都必須包含一個main()方法,含有main()方法的類稱之為主類。
一: Java程序的主類及其格式
作為一個可以獨立運行的Java程序,在它的眾多類中必須要有一個類作為程序的起始類,為了方便,本書把這個類稱為主類。當需要執(zhí)行一個程序時,人們在java命令后面輸入的便是這個主類的文件名(也是主類名),因此主類文件是Java運行環(huán)境建立起來之后第一個被裝入虛擬機的用戶文件。為了使虛擬機可以找到程序運行的起始入口,主類必須為public類,并含有一個在格式上符合約定的入口方法main(),其格式如下:
public static void main(String[] args){
…
}
其中各參數(shù)含義如下。
main:入口方法名稱。
args:命令行參數(shù),這是一個String對象數(shù)組。
static:修飾字,說明main()是一個靜態(tài)方法(類方法)。
public:修飾字,說明main()具有公有訪問屬性。
于是,主類框架的源代碼如下:
public class 主類名{
…
public static void main(String[] args){
…
}
}
Java程序的主類常常使熟悉C/C++的讀者感到迷惑:main()方法不就相當于C/C++程序中的主函數(shù)嗎,為什么非得把它放到一個類里,難道它有什么不同嗎?
沒錯,Java類中main()方法就相當于C/C++程序中的主函數(shù),是一個入口函數(shù)。之所以把它封裝到一個類里,而不像C/C++那樣單獨作為一個函數(shù)來處理,就本書作者的理解,大概Java的設(shè)計者們有如下幾個方面的考慮。
1)Java既然把所有事物都看成了對象,那么就沒有理由不把程序也看成對象,因為程序也是一種事物。既然是對象,那么它就應(yīng)該屬于某個類并以程序名來命名。既然程序是一種類,那么main()就應(yīng)該是這個類的一個方法,只不過它有些特殊,它是一個入口方法,并且對它有些特殊規(guī)定,例如其名稱必須為main(),必須是公有靜態(tài)方法,有命令行參數(shù)等。
2)如果把程序封裝成了類,那么包括本程序在內(nèi)的任何程序就都可以根據(jù)需要,隨時創(chuàng)建這個類的對象,并通過該對象使用這個類中的資源,這樣就便于資源共享,從而提高程序的靈活性。
3)Java程序是一種以類為基本單位的模塊化程序,程序被編譯后,每一個類會對應(yīng)生成一個二進制字節(jié)碼類文件。如果把程序也封裝成類,那么它的文件就與其他類文件統(tǒng)一起來,而不會產(chǎn)生其他類型的文件,因而便于管理。
4)之所以把入口方法封裝到類中,其根本目的就是要盡可能平等地看待所有的類。因為Java的最終目的是要以類為基本模塊來實現(xiàn)可裝配軟件,如果把main()方法封裝到了一個類中,那么就意味著main()與類的其他方法沒什么本質(zhì)區(qū)別,只不過是分工不同而已。下面很快就會看到,Java的所有類都可以含有一個入口方法而成為主類。也就是說,在Java程序中根本就沒有主類、次類之分,這里之所以把帶有main()方法的類稱為主類,是為了表達方便。
二: JAVA源程序在命令行下的運行
class?Bank{
public?void?init(){
System.out.println("Yes,I?can");
}
public?static?void?main(String?args[]){
BankAccount?ba1?=?new?BankAccount(100.00);
System.out.print("Before?transactions,?");
ba1.display();
ba1.deposit(74.35);
ba1.withdraw(20.00);
System.out.print("After?transactions,?");
ba1.display();
Bank?b?=?new?Bank();
b.init();
}
}
class?BankAccount{
private?double?balance;
public?BankAccount(double?openingBalance){
balance?=?openingBalance;
}
public?void?deposit(double?amount){
balance?+=?amount;
}
public?void?withdraw(double?amount){
balance?-=?amount;
}
public?void?display(){
System.out.println("balance?=?"?+?balance);
}
}
三:完整的java源程序應(yīng)該包括下列部分
package語句;
import語句;
public classDefinition; // 公共的類定義部分,至多只有一個公共類的定義
// java語言規(guī)定該java源程序的文件名必須與該公共類名完全一致
classDefinition; // 類定義部分,可以有0個或多個
interfaceDefinition; // 接口定義部分,可以有0個或多個
package:java編譯器為每個類生成一個字節(jié)碼文件,且文件名與類名相同,這就會帶來一個問題:同名的類會發(fā)生沖突。package便可管理類命名空間。
一般地,具有相同功能的類放在一個package中。
一個java源程序至多只能有一個公共類的定義。
若java源程序有一個公共類的定義,則該源文件名字必須與該公共類的名字完全相同。
若源程序中不包含公共類的定義,則該文件名可以任意取名。
若一個源程序中有多個類定義,則在編譯時將為每個類生成一個。class文件。
三。java編程規(guī)范
包名:全小寫的名詞,中間可由點分割,eg:java.awt.event
類名:首字母大寫,多個單詞合成,每個單詞首字母也要大寫,eg: class HelloWorldApp
接口名: 同類名,eg: interface Collection
方法名: 由多個單詞合成,第一個單詞通常為動詞,首字母小寫,中間的每個單詞的首字母都要大寫,eg: balanceAccount, isButtonPressed
變量名: 全小寫,一般為名詞,eg: length
常量名: 基本數(shù)據(jù)類型的常量名為全大寫,如果由多個單詞構(gòu)成,可以用下劃線隔開,eg: int YEAR, int WEEK_OF_MONTH
對象類型的常量,則是小寫混合,由大寫字母把單詞隔開
1.從代碼結(jié)構(gòu)入手,搞清楚Java源碼所在目錄以及jsp代碼所在目錄。\x0d\x0a2.從Web.xml入手,搞清楚首頁,上下文及配置情況。\x0d\x0a3.從lib目錄里初步查看系統(tǒng)使用的框架和工具包。\x0d\x0a4.從頁面大體瀏覽,看頁面的scriptlet使用的主要語言。\x0d\x0a5.從代碼包結(jié)構(gòu)初步知曉代碼的層次。\x0d\x0a6.從配置文件入手,弄清楚頁面到Action/Servlet的配置關(guān)系。\x0d\x0a7.搞清楚代碼提交的方式,前臺請求如何傳遞到后臺,又是如何返回到前臺頁面的,這里以Login頁面為最佳切入點。\x0d\x0a8.從處理Login的Action/Servlet中觀察,看在session中記錄了多少重要的數(shù)據(jù),后面程序又是怎樣用到這些數(shù)據(jù)的。\x0d\x0a9.如果存在樹形菜單,要搞清楚樹形菜單的形成及傳遞請求的方式。\x0d\x0a10.歸納幾種典型頁面,搞清楚其處理和響應(yīng)形式。\x0d\x0a11.歸納通用的頁面組件如分頁,上傳下載,異步請求等原系統(tǒng)是如何處理的。\x0d\x0a12.搞清楚后臺數(shù)據(jù)來源及配置,主要是數(shù)據(jù)庫及通過WebService方式。\x0d\x0a13.歸納后臺處理的主要業(yè)務(wù)。\x0d\x0a14.可能的話,把后臺數(shù)據(jù)表的ER圖畫出來。\x0d\x0a15.典型業(yè)務(wù)的流程圖可以繪制出來。
文章標題:java代碼包結(jié)構(gòu),jar包結(jié)構(gòu)
標題來源:http://chinadenli.net/article25/dsshgji.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、網(wǎng)站收錄、服務(wù)器托管、小程序開發(fā)、商城網(wǎng)站、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)