邱吉雨
(山西農(nóng)業(yè)大學(xué),山西 晉中 030800)
現(xiàn)今世界是一個互聯(lián)網(wǎng)普及的世界,而伴隨這一現(xiàn)象出現(xiàn)的還有各種各樣Web程序、Web系統(tǒng)以及Web工程項目。伴隨著開發(fā)Web項目成為一種流行,與之相關(guān)的技術(shù)的研究者隊伍日益龐大。而在Web項目開發(fā)領(lǐng)域中,不同類型的技術(shù)完成項目所消耗的成本不同。因而在Web項目中技術(shù)的選擇顯得尤為重要。在有關(guān)項目工程連接數(shù)據(jù)庫方面,就有多種框架或通過或不通過 SQL語句來實現(xiàn)[1]。在本篇論本中,我將以Servlet+JSP+JavaBean三層MVC開發(fā)模式為中心簡析Web開發(fā)中所用到的技術(shù)。
首先,web瀏覽器向web服務(wù)器申請服務(wù)。其次,web服務(wù)器解家譜本文件,服務(wù)器通過邏輯語句來訪問數(shù)據(jù)庫。然后,數(shù)據(jù)路向服務(wù)器返回查詢結(jié)果。最后,服務(wù)器通過HTTP協(xié)議將信息返回給服務(wù)器。
在整個Web項目設(shè)計的流程中,我們通常會選擇一個服務(wù)器(此處我們選擇輕量級服務(wù)器Tomcat,除此之外,還有許多不同類型的服務(wù)器,例如IIS服務(wù)器)作為一個接收客戶端信息以及響應(yīng)客戶端的平臺。使用HTML5+CSS作為用戶界面的編寫語言,JSP和Servlet作為客戶端服務(wù)器的業(yè)務(wù)邏輯判斷語言。也就構(gòu)成了MVC三層架構(gòu)。通常,我們在不使用框架的情況下會使用該架構(gòu)。在最基層,使用SQL語句來實現(xiàn)項目與數(shù)據(jù)庫的連接,以實現(xiàn)對數(shù)據(jù)庫的增刪查改等工作[2]。
圖1 Web應(yīng)用程序的基本架構(gòu)Fig.1 Basic architecture of Web application
我們通常使用HTML語言來編寫用戶視圖,XML語言來實現(xiàn)文件的配置。簡單的來說,HTML是一種用來編寫用戶視圖的語言格式。HTML的標(biāo)簽對是已經(jīng)被定義好的標(biāo)簽對,每一對標(biāo)簽對都有自己固定的含義,并且它的語法靈活,因而更適合編寫用戶界面。而XML可以用戶自定義標(biāo)簽,但對于語法卻要求嚴(yán)格,因而作為配置文件的編輯語言最合適不過。而CSS是用來將靜態(tài)網(wǎng)頁美觀化,同時還能夠協(xié)助不同的腳本語言對網(wǎng)頁各種元素進行格式化。同時,基于豐富的樣式庫,可以使得用戶界面更加美觀并且在調(diào)整用戶界面樣式時更加方便。而通常情況下,我們會使用HTML5+CSS3來設(shè)計用戶視圖。
而談及Web項目的容器Tomcat, 它是一個開源的、免費的輕量級的Web應(yīng)用服務(wù)器,被普遍應(yīng)用于中小型系統(tǒng)中。Tomcat有標(biāo)準(zhǔn)的固定目錄。在配置好運行環(huán)境后,就可以通過向目錄中的增添內(nèi)容來開發(fā)Web應(yīng)用程序。在Tomcat的目錄中,bin文件用于存放啟動和關(guān)閉Tomcat的腳本文件;conf中存放Tomcat服務(wù)器的各種配置文件;lib中存放服務(wù)器的支撐jar包;webapps中存放web應(yīng)用。Web應(yīng)用即web項目的核心文件,包括HTML或JSP文件以及WEB-INF目錄(用于存放配置文件web.xml以及編譯好的class文件)[3]。
圖2 Chat項目的目錄結(jié)構(gòu)Fig.2 Directory structure of Chat project
Servlet是一個基于Tomcat容器的改進的CGI,狹義的Servlet是Java語言實現(xiàn)的一個接口,廣義的Servlet是指任何實現(xiàn)了這個Servlet接口的類,一般情況下,人們將Servlet理解為后者。通常,編寫一個Servlet類的方法有三種。其一是通過實現(xiàn) Servlet接口并完成接口中的方法來完成。其二是通過繼承GenericServlet來完成業(yè)務(wù)邏輯的編寫。其三則是通過繼承 HttpServlet類來實現(xiàn)業(yè)務(wù)邏輯判斷。且通過表單中的兩種不同的遞交方法(get和post)來決定數(shù)據(jù)的傳輸方式。
Servlet運行于支持Java的應(yīng)用服務(wù)器(如上述Tomcat)中。它擁有一套獨立的生命周期,可以響應(yīng)以Tomcat為容器的任何類型的請求。(以實現(xiàn)判別用戶名的Servlet為例)
提及實現(xiàn)動態(tài)網(wǎng)頁的技術(shù)JSP,他的全名為Java Server Pages,它的本質(zhì)是一個簡化的后的Servlet。它是在傳統(tǒng)的HTML頁面中插入Java代碼和JSP標(biāo)記,使得靜態(tài)網(wǎng)頁動態(tài)化,從而形成后綴為(.JSP)的JSP文件。在通常狀況下,它是與Servlet同時使用的。它具有九大內(nèi)置對象以及四個作用域,極大地避免了開發(fā)人員在開發(fā)項目過程中總是要自定義對象的繁瑣步驟。例如,我們保存數(shù)據(jù)通常使用session對象的SetAttribute的方法,獲取對象通常使用session對象GetAttribute方法。極大的避免了要在同一項目不同頁面中保存數(shù)據(jù)的繁瑣性。隨著技術(shù)的發(fā)展,后來出現(xiàn)了EL表達式,EL表達式提供了在 JSP 中簡化表達式的方法,使得JSP的代碼更加簡化[4]。
有關(guān)動態(tài)界面的JSP實現(xiàn):
于此同時,JavaScript也是被用來為靜態(tài)網(wǎng)頁編寫動態(tài)腳本。
雖然兩者都是用于生成動態(tài)網(wǎng)頁,但它們還是有所區(qū)別。JS是在客戶端執(zhí)行的,需要瀏覽器支持JavaScript。JSP是在服務(wù)器端執(zhí)行的,需要服務(wù)器支持Servlet的服務(wù)器程序。而JS代碼是能夠直接從服務(wù)器上下載得到,對外是可見的,JSP(和翻譯后的servlet)代碼是對外不可見的。JS并不能夠像JSP一樣做到靈活判斷,多數(shù)情況下都是寫在監(jiān)控函數(shù)中,通過一個觸發(fā)器來出發(fā)函數(shù)。
而jQuery 作為一個豐富的 JavaScript 庫,封裝JavaScript大量的的常用代碼,提供了一種更簡便的基于JavaScript的技術(shù)語言。
Ajax相當(dāng)于 異步 JavaScript 和 XML,有別于傳統(tǒng)頁面需要更新時必須將頁面中所有的內(nèi)容進行更新,通常被用來進行頁面的異步更新。
在編寫Web應(yīng)用程序時,程序的最底層便是通過程序在數(shù)據(jù)庫中存取數(shù)據(jù)或?qū)?shù)據(jù)進行增刪查改等操作。在連接數(shù)據(jù)庫時,我們通常使用JDBC執(zhí)SQ 語句的API。 常見的數(shù)據(jù)庫管理系統(tǒng)有MYSQL、Oracle和SQL Server等。我們通常在JSP或Servlet中使用SQL語句來實現(xiàn)業(yè)務(wù)邏輯[5]。
通過以上技術(shù),便可實現(xiàn)一個Web項目的開發(fā)。
討論了建立一個Web項目所需要的方法以及他們的不同之處,我們可清晰地看到構(gòu)建一個Web項目的基本流程以及所需要的技術(shù)。在這些技術(shù)的基礎(chǔ)上,我們還可以使用其他技術(shù)(例如框架)來將業(yè)務(wù)邏輯流程簡單化。