目前, 國內(nèi)外信息化建設(shè)已經(jīng)進入基于Web應(yīng)用為核心的階段, Java作為應(yīng)用于網(wǎng)絡(luò)的最好語言,前景無限看好。然而,就算用Java建造一個不是很煩瑣的web應(yīng)用,也不是件輕松的事情。概括一下,實施Java的WEB項目需要掌握的技術(shù)如下:
lJava語言
l面向?qū)ο蠓治鲈O(shè)計思想
l設(shè)計模式和框架結(jié)構(gòu)
lXML語言
l網(wǎng)頁腳本語言
l數(shù)據(jù)庫
l應(yīng)用服務(wù)器
l集成開發(fā)環(huán)境
下面我們具體地看每個技術(shù).
1、Java語言
Java語言體系比較龐大,包括多個模塊。從WEB項目應(yīng)用角度講有JSP、Servlet、JDBC、JavaBean(Application)四部分技術(shù)。
(1)、Java Database Connectivity (JDBC)技術(shù)
在Java Web應(yīng)用開發(fā)中,數(shù)據(jù)庫管理系統(tǒng)(RDBMS)的使用是不可缺少的。JDBC(Java Database Connectivity) 是一種用于執(zhí)行 SQL 語句的 Java API。它由一組用 Java 編程語言編寫的類和接口組成。JDBC 為工具/數(shù)據(jù)庫開發(fā)人員提供了一個標(biāo)準(zhǔn)的API,使他們能夠用純Java API 來編寫數(shù)據(jù)庫應(yīng)用程序。
簡單地說,JDBC 可做三件事:
l與數(shù)據(jù)庫建立連接,
l發(fā)送 SQL 語句,
l處理結(jié)果。
(2)、Servlet技術(shù)
Servlet是運行在服務(wù)器端的程序,可以被認為是服務(wù)器端的applet。servlet被Web服務(wù)器(例如Tomcat)加載和執(zhí)行,就如同applet被瀏覽器加載和執(zhí)行一樣。servlet從客戶端(通過Web服務(wù)器)接收請求,執(zhí)行某種操作,然后返回結(jié)果。
Servlet的主要優(yōu)點包括
lServlet是持久的。servlet只需Web服務(wù)器加載一次,而且可以在不同請求之間保持服務(wù)(例如一次數(shù)據(jù)庫連接)。
lServlet是與平臺無關(guān)的。如前所述,servlet是用Java編寫的,它自然也繼承了Java的平臺無關(guān)性。
lServlet是可擴展的。由于servlet是用Java編寫的,它就具備了Java所能帶來的所有優(yōu)點。Java是健壯的、面向?qū)ο蟮木幊陶Z言,它很容易擴展以適應(yīng)你的需求。servlet自然也具備了這些特征。
lServlet是安全的。從外界調(diào)用一個servlet的惟一方法就是通過Web服務(wù)器。這提供了高水平的安全性保障,尤其是在你的Web服務(wù)器有防火墻保護的時候。
lServlet可以在多種多樣的客戶機上使用。由于servlet是用Java編寫的,所以你可以很方便地在HTML中使用它們。
(3)、JavaServer Pages(JSP) 技術(shù)
JSP是從Servlet上分離出來的一小部分,簡化了開發(fā),加強了界面設(shè)計。JSP定位在交互網(wǎng)頁的開發(fā)。運用Java語法,但功能較Servlet弱了很多,并且高級開發(fā)中只充當(dāng)用戶界面部分。JSP容器收到客戶端發(fā)出的請求時,首先執(zhí)行其中的程序片段,然后將執(zhí)行結(jié)果以HTML格式響應(yīng)給客戶端。其中程序片段可以是:操作數(shù)據(jù)庫、重新定向網(wǎng)頁以及發(fā)送 E-Mail 等等,這些都是建立動態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,與客戶端的瀏覽器無關(guān),因此,JSP 稱為Server-Side Language。
JavaServer Pages的主要優(yōu)點包括
●一次編寫,各處執(zhí)行(Write once, Run Anywhere)特性
作為Java 平臺的一部分,JavaServer Pages 技術(shù)擁有Java語言“一次編寫,各處執(zhí)行”的特點。隨著越來越多的供貨商將JavaServer Pages 技術(shù)添加到他們的產(chǎn)品中,您可以針對自己公司的需求,做出審慎評估后,選擇符合公司成本及規(guī)模的服務(wù)器,假若未來的需求有所變更時,更換服務(wù)器平臺并不影響之前所投下的成本、人力所開發(fā)的應(yīng)用程序。
● 搭配可重復(fù)使用的組件
JavaServer Pages技術(shù)可依賴于重復(fù)使用跨平臺的組件(如:JavaBean或Enterprise JavaBean組件)來執(zhí)行更復(fù)雜的運算、數(shù)據(jù)處理。開發(fā)人員能夠共享開發(fā)完成的組件,或者能夠加強這些組件的功能,讓更多用戶或是客戶團體使用?;谏萍永媒M件的方法,可以加快整體開發(fā)過程,也大大降低公司的開發(fā)成本和人力。
● 采用標(biāo)簽化頁面開發(fā)
Web 網(wǎng)頁開發(fā)人員不一定都是熟悉Java 語言的程序員。因此,JSP 技術(shù)能夠?qū)⒃S多功能封裝起來,成為一個自定義的標(biāo)簽,這些功能是完全根據(jù)XML 的標(biāo)準(zhǔn)來制訂的,即JSP 技術(shù)中的標(biāo)簽庫(Tag Library)。因此,Web 頁面開發(fā)人員可以運用自定義好的標(biāo)簽來達成工作需求,而無須再寫復(fù)雜的Java 語法,讓W(xué)eb 頁面開發(fā)人員亦能快速開發(fā)出一動態(tài)內(nèi)容網(wǎng)頁。
今后,第三方開發(fā)人員和其他人員可以為常用功能建立自己的標(biāo)簽庫,讓Web 網(wǎng)頁開發(fā)人員能夠使用熟悉的開發(fā)工具,如同HTML 一樣的標(biāo)簽語法來執(zhí)行特定功能的工作。
● N-tier 企業(yè)應(yīng)用架構(gòu)的支持
有鑒于網(wǎng)際網(wǎng)絡(luò)的發(fā)展,為因應(yīng)未來服務(wù)越來越繁雜的要求,且不再受地域的限制,因此,
必須放棄以往Client-Server的Two-tier 架構(gòu),進而轉(zhuǎn)向更具威力、彈性的分散性對象系統(tǒng)。由于JavaServer Page 技術(shù)是Java 2 Platform Enterprise Edition (J2EE)集成中的一部分,它主要是負責(zé)前端顯示經(jīng)過復(fù)雜運算后之結(jié)果內(nèi)容,而分散性的對象系統(tǒng)則是主要依賴EJB ( Enterprise JavaBean )和JNDI ( Java Naming and Directory Interface )構(gòu)建而成。
(4)、JavaBean(Application)應(yīng)用組件技術(shù)
Application是Java應(yīng)用程序,在WEB項目和一些開發(fā)中主要應(yīng)用JavaBean。它就是Application的一部分,邏輯運算能力很強,能極大的發(fā)揮Java語言的優(yōu)點。JavaBean 被稱為是Java 組件技術(shù)的核心。JavaBean 的結(jié)構(gòu)必須滿足一定的命名約定。JavaBean能提供常用功能并且可以重復(fù)使用,這使得開發(fā)人員可以把某些關(guān)鍵功能和核心算法提取出來封裝成為一個組件對象,這樣就增加了代碼的重用率和系統(tǒng)的安全性。
高級的WEB項目會應(yīng)用到以上所有技術(shù),它們之間聯(lián)合使用和協(xié)作開發(fā)會提高開發(fā)的效率和系統(tǒng)的性能。
2、面向?qū)ο蠓治鲈O(shè)計思想
Java語言是完全面向?qū)ο蟮恼Z言,所以在項目設(shè)計時會有很大的幫助,在設(shè)計時應(yīng)盡量舍棄以往的面向過程的設(shè)計方式。
在分析項目業(yè)務(wù)關(guān)系的時候,應(yīng)用一些UML(Unified Modeling Language)圖,例如常用的用例圖(use case diagram),類圖(class diagram),時序圖(sequence diagram)等等,會有很大的幫助,這樣能盡快找出業(yè)務(wù)邏輯主要面對的對象,然后對每個對象進行行為劃分,最后再實現(xiàn)對象之間的集成和通信。
3、設(shè)計模式和框架結(jié)構(gòu)
Java從語言角度來講不是很難,但是從整體設(shè)計角度來講我們還需要了解一些高級應(yīng)用框架。如果要設(shè)計一個良好的框架結(jié)構(gòu),單單只掌握Java語言遠遠不夠。這就涉及到一個設(shè)計模式,還有和設(shè)計模式相關(guān)的一些知識。
設(shè)計模式在Java項目實施過程更是重中之重。主要在與兩層的設(shè)計模式、三層的設(shè)計模式和N層的設(shè)計模式。它直接決定著項目的應(yīng)用、部署和實際開發(fā)設(shè)計。
在普通的WEB項目中很多采用兩層的開發(fā)結(jié)構(gòu)。JSP+Servlet或JSP+JavaBean。當(dāng)對開發(fā)要求高的項目中使用很多的還是MVC的三層開發(fā)結(jié)構(gòu),也就是JSP+Servlet+JavaBean。它能分有效的分離邏輯開發(fā),使開發(fā)人員能專注于各自的開發(fā)。同時也能時整個開發(fā)結(jié)構(gòu)流程更清晰,但是需要比較高的開發(fā)配合度。
在項目中,我們經(jīng)常使用著名的Model-View-Controller(MVC)架構(gòu)。MVC架構(gòu)是隨著smalltalk language語言的發(fā)展提出的,它是一個著名的用戶界面設(shè)計架構(gòu)。經(jīng)典的MVC架構(gòu)把一個組件(可認為是整個應(yīng)用程序的一個模塊)劃分成三部分組 Model管理這個模塊中所用到的數(shù)據(jù)和業(yè)務(wù)邏輯。而View 管理模塊如何顯示給用戶,Controller 決定如何處理用戶和該模塊交互式時候產(chǎn)生的事件 如用戶點擊一個按鈕等。
4、XML語言
在服務(wù)器和設(shè)計模式結(jié)構(gòu)中會應(yīng)用到自定義文件,而且在應(yīng)用高級設(shè)計時也會定義自用的標(biāo)簽,現(xiàn)在流行的是用XML去定義配置,所以XML語言應(yīng)該有一定掌握。
當(dāng)前,Java 2平臺企業(yè)版(J2EE)架構(gòu)在廠商市場和開發(fā)者社區(qū)中倍受推崇。作為一種工具,可擴展標(biāo)記語言(XML)簡化了數(shù)據(jù)交換、進程間消息交換這一類的事情,因而對開發(fā)者逐漸變得有吸引力,并開始流行起來。自然,在J2EE架構(gòu)中訪問或集成XML解決方案的想法也很誘人。因為這將是強大系統(tǒng)架構(gòu)同高度靈活的數(shù)據(jù)管理方案的結(jié)合。
XML的應(yīng)用似乎是無窮無盡的,但它們大致上可以分為三大類:
1、簡單數(shù)據(jù)的表示和交換(針對XML的簡單API(SAX)和文檔對象模型(DOM)語法解析,不同的文檔類型定義(DTDs)和概要(schemas))
2、用戶界面相關(guān)、表示相關(guān)的上下文(可擴展樣式表語言(XSL),可擴展樣式表語言轉(zhuǎn)換(XSLT))
3、面向消息的計算(XML-RPC(遠程過程調(diào)用),基于SOAP協(xié)議的Web 服務(wù)(Web Services),電子化業(yè)務(wù)XML(ebXML))
5、網(wǎng)頁腳本語言
為了提高WEB項目的整體性能,提高人機交互的友好界面,網(wǎng)頁的腳本語言是很有用處的,有的時候可以解決很大的難題或提高程序的性能和應(yīng)用性。
網(wǎng)頁腳本語言的執(zhí)行都是在客戶端執(zhí)行的,速度很很快,并且大多的操作與服務(wù)器沒有交互運算,所以在一些應(yīng)用中非常理想。在設(shè)計WEB項目的應(yīng)用中,網(wǎng)頁的腳本語言起著不能忽視的作用,所以如果設(shè)計WEB項目的應(yīng)用中,對JavaScript應(yīng)有一定的了解。
JavaScript是一種基于對象(Object Based)和事件驅(qū)動(Event Driven)并具有安全性能(Secure)的腳本語言。使用它的目的是與HTML超文本標(biāo)記語言、Java 腳本語言(Java小程序)一起實現(xiàn)在一個Web頁面中鏈接多個對象,與Web客戶交互作用。從而可以開發(fā)客戶端的應(yīng)用程序等。它是通過嵌入或調(diào)入在標(biāo)準(zhǔn)的HTML語言中實現(xiàn)的。它具有以下幾個基本特點:
1.它是一種腳本編寫語言
JavaScript是一種腳本語言,它采用小程序段的方式實現(xiàn)編程。像其它腳本語言一樣,JavaScript同樣已是一種解釋性語言,它提供了一個易的開發(fā)過程。
它的基本結(jié)構(gòu)形式與C、C++、VB十分類似。但它不像這些語言一樣,需要先編譯,而是在程序運行過程中被逐行地解釋。它與HTML標(biāo)識結(jié)合在一起,從而方便用戶的使用操作。
2. 基于對象的語言。
JavaScript是一種基于對象的語言,同時以可以看作一種面向?qū)ο蟮摹_@意味著它能運用自己已經(jīng)創(chuàng)建的對象。因此,許多功能可以來自于腳本環(huán)境中對象的方法與腳本的相互作用。
3.簡單性
JavaScript的簡單性主要體現(xiàn)在:首先它是一種基于Java基本語句和控制流之上的簡單而緊湊的設(shè)計, 從而對于學(xué)習(xí)Java是一種非常好的過渡。其次它的變量類型是采用弱類型,并未使用嚴格的數(shù)據(jù)類型。
4.安全性
JavaScript是一種安全性語言,它不允許訪問本地的硬盤,并不能將數(shù)據(jù)存入到服務(wù)器上,不允許對網(wǎng)絡(luò)文檔進行修改和刪除,只能通過瀏覽器實現(xiàn)信息瀏覽或動態(tài)交互。從而有效地防止數(shù)據(jù)的丟失。
5. 動態(tài)性
JavaScript是動態(tài)的,它可以直接對用戶或客戶輸入做出響應(yīng),無須經(jīng)過Web服務(wù)程序。它對用戶的響應(yīng),是采用以事件驅(qū)動的方式進行的。所謂事件驅(qū)動,就是指在主頁(Home Page)中執(zhí)行了某種操作所產(chǎn)生的動作,就稱為“事件”(Event)。比如按下鼠標(biāo)、移動窗口、選擇菜單等都可以視為事件。當(dāng)事件發(fā)生后,可能會引起相應(yīng)的事件響應(yīng)。
6、開發(fā)工具
(1)、數(shù)據(jù)庫
在主要的應(yīng)用中,數(shù)據(jù)庫相關(guān)的環(huán)節(jié)應(yīng)用很多,所以對數(shù)據(jù)庫應(yīng)該有一定了解。不能單單只了解一種數(shù)據(jù)庫,因為在很多實際開發(fā)中會提出很多數(shù)據(jù)庫解決方案,所以只有在了解多種數(shù)據(jù)庫的情況下才能有一個比較方案。
對于數(shù)據(jù)庫應(yīng)該了解他的性能和一些基本的操作常識,還有該數(shù)據(jù)庫的特點。而針對與Java語言WEB項目的數(shù)據(jù)庫開發(fā)則主要是對JDBC的應(yīng)用,還有數(shù)據(jù)庫事務(wù)處理和連接池等高級概念的應(yīng)用。
(2)、Web服務(wù)器
同數(shù)據(jù)庫一樣,應(yīng)該了解該服務(wù)器的性能,特點和一些常識。
在應(yīng)用方面,Web服務(wù)器主要是針對于配置和部署,對目錄的配置,調(diào)試;對配置文件屬性的修改;對訪問權(quán)限和并發(fā)性的控制;Java類的部署等。
(3)、集成開發(fā)環(huán)境(IDE):
“公欲善其事, 必先利其器”. 對于Web應(yīng)用開發(fā)人員來講,好的集成開發(fā)環(huán)境(IDE:Integrated Development Enviroment)是非常重要的。目前在市場上占主導(dǎo)位置的一個集成開發(fā)工具就是Eclipse.
(轉(zhuǎn)載文章請保留出處:
Java家(www.javajia.com))