想成為一個(gè)JSP網(wǎng)站程序員嗎?
發(fā)表時(shí)間:2023-08-19 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]任何Web開發(fā)人員需要必備的技巧主要有以下這些技術(shù)。 開發(fā)Web應(yīng)用程序的技術(shù)已經(jīng)變得更成熟、更復(fù)雜了,F(xiàn)在,構(gòu)建一個(gè)Web應(yīng)用程序不僅僅需要簡單的HTML技術(shù)了。數(shù)據(jù)庫訪問、腳本語言和管理都是一個(gè)...
任何Web開發(fā)人員需要必備的技巧主要有以下這些技術(shù)。
開發(fā)Web應(yīng)用程序的技術(shù)已經(jīng)變得更成熟、更復(fù)雜了,F(xiàn)在,構(gòu)建一個(gè)Web應(yīng)用程序不僅僅需要簡單的HTML技術(shù)了。數(shù)據(jù)庫訪問、腳本語言和管理都是一個(gè)Web程序員需要具備的技術(shù)。讓我們來看看要成為一個(gè)市場(chǎng)上受歡迎的Web開發(fā)人員都需要些什么技能吧。
自從CERN(歐洲粒子物理研究所),日內(nèi)瓦附近的高能物理研究中心,在1991年發(fā)布了Web以來,Web技術(shù)已經(jīng)從靜態(tài)的內(nèi)容和Common Gateway Interface(CGI)發(fā)展成servlet技術(shù)和JavaServer Pages了。然而,在這個(gè)競(jìng)爭(zhēng)更激烈的社會(huì)中,一個(gè)Web程序員需要更多的知識(shí)。例如,如果在面試中,你提到你熟悉XML并在JNDI方面有些經(jīng)驗(yàn)(這兩種技術(shù)初看似乎同Web編程沒有很緊密的關(guān)系),那么你就會(huì)給你未來的老板留下更深的印象。設(shè)想你已經(jīng)了解了Java編程語言和面向?qū)ο蟮木幊,下面還有兩組技術(shù)是一個(gè)Web開發(fā)人員日常工作中所需要的。第一組包括每個(gè)Web程序員必須具備的技術(shù)。第二組包含要想成為一個(gè)高級(jí)程序員所應(yīng)該掌握的技術(shù)。
基本技能
如果想稱自己是個(gè)Web開發(fā)人員,下面就是必須具備的技術(shù)。
HTML(HyperText Markup Language)
HTML幾乎是顯示在瀏覽器上所有內(nèi)容的語言。難怪HTML就好像是一個(gè)Web程序員的生存本能一樣。如果你仍需要在你的HTML中查找<tr>或<b>,那么你真的需要提高你的HTML技術(shù)了。HTML的當(dāng)前版本是4.01,你可以從http://www.w3.org/TR/1999/REC-html401-19991224/了解更多關(guān)于它的內(nèi)容。
Servlets和JSP
Java servlet技術(shù)是開發(fā)Java Web應(yīng)用程序的主要技術(shù)。它是由Sun Microsystems在1996年開發(fā)的,當(dāng)前的版本是2.3,但人們正在為版本2.4做準(zhǔn)備。
JSP是servlet技術(shù)的擴(kuò)展,現(xiàn)在的版本是1.2(2.0版將很快定下來)。有人認(rèn)為JSP是servlets的替代,但實(shí)際并不是這樣的。Servlets和JSP是一起用于復(fù)雜的Web應(yīng)用程序的。
用Java進(jìn)行Web編程的一個(gè)好的開端就是學(xué)習(xí)servlet技術(shù)。即使你打算在你的Web應(yīng)用程序中只運(yùn)用JSP頁面,你仍需要學(xué)習(xí)servlet技術(shù)。在更復(fù)雜的Web應(yīng)用程序中,JSP頁面只用于顯示,而JavaBeans和自定義標(biāo)簽庫用來嵌入商業(yè)邏輯。即:你也必須精通JavaBeans和自定義標(biāo)簽庫。
JavaScript
JavaScript是運(yùn)行于所有的主要的瀏覽器中的腳本語言。你用JavaScript來進(jìn)行客戶端的編程?蛻舳司幊讨凶钪匾墓ぷ骶褪谴_認(rèn)用戶輸入。運(yùn)用客戶端輸入驗(yàn)證的好處是減少服務(wù)器的工作量并提高響應(yīng)時(shí)間。另外,JavaScript可以用于重新定向(redirection)、cookie處理、控制applets、創(chuàng)建導(dǎo)航樹、打開一個(gè)瀏覽器的一個(gè)新的實(shí)例、等等。
SQL(Strutured Query Language)和JDBC(Java Database Connectivity)
如今,大多數(shù)Web應(yīng)用程序都包括訪問關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)。作為一個(gè)Web程序員,你需要知道如何存儲(chǔ)、得到并操作數(shù)據(jù)庫中的數(shù)據(jù)。有時(shí)侯,你也需要設(shè)計(jì)數(shù)據(jù)庫,構(gòu)建數(shù)據(jù)庫中的表和其它結(jié)構(gòu)。SQL就是用來操作數(shù)據(jù)庫中數(shù)據(jù)的語言。你通常需要編寫SQL語句(常常是動(dòng)態(tài)的),把它們傳遞到數(shù)據(jù)庫服務(wù)器,并得到返回的數(shù)據(jù)(如果有的話)。
運(yùn)用Java語言,你需要用JDBC來幫助Web應(yīng)用程序和數(shù)據(jù)庫服務(wù)器進(jìn)行通訊。JDBC有兩部分:JDBC Core API(Application Programming Interface)和JDBC Optional Package API。第一組用來執(zhí)行基本的數(shù)據(jù)操作,如創(chuàng)建一個(gè)連接或讀取、更新并刪除一個(gè)表中的記錄。第二組提供更高級(jí)的數(shù)據(jù)庫連接功能,如連接池、事務(wù)和RowSet。JDBC的當(dāng)前版本是3.0,API包含在J2SE v. 1.4中。
Web Container管理和應(yīng)用程序部署
你的servlets和JSP頁面在一個(gè)叫做servlet/JSP container或Web container的引擎中運(yùn)行。你至少需要知道如何為測(cè)試以及生產(chǎn)運(yùn)行部署你的Web資源。例如,如果你運(yùn)用Tomcat,你需要了解的一件事就是如何映射配置文件(server.xml)中的應(yīng)用程序,使Tomcat知道如何調(diào)用你的JSP頁面。另外,你需要知道在哪里保存你的庫以及如何創(chuàng)建應(yīng)用程序部署描述符。
XML(eXtensible Markup Language)
XML是計(jì)算機(jī)領(lǐng)域中一個(gè)成功的后起之秀。由World Wide Web Consortium在1996年開發(fā),XML現(xiàn)在已經(jīng)是用于數(shù)據(jù)交換和可擴(kuò)展數(shù)據(jù)結(jié)構(gòu)的一個(gè)廣泛的、公認(rèn)的標(biāo)準(zhǔn)了。XML在Java Web開發(fā)中扮演著一個(gè)重要的角色。例如,每個(gè)應(yīng)用程序的部署描述符都是XML格式的。而且,如果你在開發(fā)Web servies,你就會(huì)用到SOAP(Simple Object Access Protocol),它主要是基于HTTP和XML的。
另外,在Web應(yīng)用程序中,XML也可能用于存儲(chǔ)分等級(jí)的數(shù)據(jù)。
Model 2結(jié)構(gòu)
這種技術(shù)在該類別中是最先進(jìn)的。建議用這種結(jié)構(gòu)來構(gòu)建相當(dāng)復(fù)雜的Java Web應(yīng)用程序。Model 2結(jié)構(gòu)是基于Model-View-Controller設(shè)計(jì)范例的。
高級(jí)技術(shù)
下面這些技術(shù)可以將你同初學(xué)者區(qū)別開來。
JSTL(JSP Standard Tag Libraries)、Jakarta Taglibs項(xiàng)目和其它庫
為了加速應(yīng)用程序的開發(fā),你應(yīng)該經(jīng)常重用代碼。簡單地說,代碼重用就是,如果有人已經(jīng)編寫了用來執(zhí)行某些功能的代碼,你最好就去用那些代碼,而不要自己編寫了。因此,JSP可以讓你運(yùn)用自定義標(biāo)簽。你可以運(yùn)用幾個(gè)庫,最受歡迎的是Apache的Jakarta Taglibs項(xiàng)目中的庫。從http://jakarta.apache.org/taglibs/index.html可以下載這個(gè)包,你在開始創(chuàng)建新類前,可以運(yùn)用在這個(gè)包中找到的任何現(xiàn)成的東西。
JSTL最近已經(jīng)成為了一個(gè)標(biāo)準(zhǔn)。其它標(biāo)簽庫可以免費(fèi)或以商業(yè)方式得到。
Apache的Struts項(xiàng)目
Struts是一個(gè)Apache贊助的公共資源項(xiàng)目,它為構(gòu)建Model 2 Java Web應(yīng)用程序提供了一個(gè)構(gòu)架。Struts為MVC結(jié)構(gòu)提供它自己的Controller組件,將EJB、JDBC和JNDI用于Model,將JSP和其它技術(shù)用于View。你可以從它的網(wǎng)站找到更多關(guān)于這個(gè)項(xiàng)目的更詳細(xì)的信息:http://jakarta.apache.org/struts/index.html。
XHTML(Extensible HyperText Markup Language)
XHTML是努力將HTML和XML結(jié)合起來的一種技術(shù)。你可以把XHTML當(dāng)作下一代的HTML。其當(dāng)前的版本是1.0(第二版是于2002年8月1日發(fā)布的),XHTML還沒有像HTML那么流行,但它在將來會(huì)發(fā)揮更重要的作用。根據(jù)Web設(shè)計(jì)專家Molly Holzschlag的觀點(diǎn),推動(dòng)各個(gè)公司轉(zhuǎn)向XHTML的主要原因是美國的關(guān)于公開訪問(accessibility)的法律。更多關(guān)于XHTML的信息,參閱Holzschlag訪談。
DHTML(動(dòng)態(tài)HTML)
DHTML可以允許人們?cè)谀愕木W(wǎng)站上進(jìn)行更多的交互。例如,運(yùn)用DHTML,當(dāng)用戶移動(dòng)鼠標(biāo)到一個(gè)鏈接上時(shí),你就可以很容易地創(chuàng)建并顯示子菜單。運(yùn)用DHTML的最大的挑戰(zhàn)是創(chuàng)建跨瀏覽器的頁面。的確,在理論上,頁面設(shè)計(jì)應(yīng)該是由美工處理的,其中動(dòng)態(tài)的HTML是通過運(yùn)用一個(gè)工具而產(chǎn)生的。然而,一個(gè)Web程序員通常要負(fù)責(zé)集成所有的部分,如果在頁面中生成的代碼被破壞了,你就需要了解DHTML來修理它。
Applet 編程
Applets曾經(jīng)在提供交互性方面很重要,尤其在DHTML出現(xiàn)前,F(xiàn)在,applets的作用被削減了,更多的程序員已經(jīng)不用applets了。Microsoft決定在它的新瀏覽器中不為applets提供缺省的支持極大地削減了applets在Web應(yīng)用程序中的作用。然而,applets并沒有消亡。對(duì)于某些任務(wù),如顯示新聞標(biāo)題,applets仍然是不可替代的,而且applets不會(huì)產(chǎn)生另人頭痛的跨瀏覽器兼容方面的問題。
HTTP協(xié)議
Java Web程序員通常運(yùn)用比HTTP更高的協(xié)議,如運(yùn)用servlet和JSP APIs。這些APIs隱藏了HTTP協(xié)議的復(fù)雜性。因此,你仍可以構(gòu)建重要的應(yīng)用程序而不需要知道多少關(guān)于HTTP協(xié)議的知識(shí)。只有當(dāng)你需要處理原始數(shù)據(jù),比如將文件作為附件上載或傳送時(shí),你才需要更多關(guān)于協(xié)議的知識(shí)。
EJB(Enterprise JavaBeans)
EJB是J2EE的一部分,當(dāng)可擴(kuò)展性和強(qiáng)大性是你的Web應(yīng)用程序的主要需求時(shí),EJB就很重要。在當(dāng)前規(guī)范(EJB 2.0)中有三種類型的EJBs:會(huì)話(session)EJBs、實(shí)體(entity)EJBs和消息驅(qū)動(dòng)的(message driven)EJBs。新的規(guī)范,2.1版,正在設(shè)計(jì)中。
JNDI(Java Naming and Directory Interface)
當(dāng)你在開發(fā)企業(yè)beans時(shí),JNDI很重要,因?yàn)閷?duì)一個(gè)EJB的訪問是通過JNDI的命名服務(wù)完成的。運(yùn)用一個(gè)命名服務(wù)來查找與一個(gè)特定名字相關(guān)的一個(gè)對(duì)象。在EJB context中,一個(gè)命名服務(wù)找到一個(gè)企業(yè)bean,給定這個(gè)bean的名字。因此,了解JNDI在開發(fā)一個(gè)EJB應(yīng)用程序中是至關(guān)重要的。另外,JDBC可以用JNDI來訪問一個(gè)關(guān)系數(shù)據(jù)庫。
其它工具
了解在哪里可以找到特定的支持工具通常有助于的你的事業(yè)的發(fā)展。例如,如果你碰巧被分配去做關(guān)于基準(zhǔn)的任務(wù),那么你如果知道你可以從Apache的Jakarta Project下載Jmeter,你就會(huì)很高興。另外,如果你需要以PDF格式發(fā)送輸出結(jié)果,建議你從http://www.lowagie.com/iText/運(yùn)用可以免費(fèi)下載的Java-PDF庫。Internet技術(shù)范圍很廣而且發(fā)展很快。這就是說,作為一個(gè)Web程序員,你應(yīng)該時(shí)時(shí)留心業(yè)界出現(xiàn)了什么新技術(shù),發(fā)生了什么大事。在這個(gè)方面,沒有什么比Internet本身更偉大的資源了。
關(guān)于作者:
Java for the Web
with Servlet, JSP, and EJB
Budi Kurniawan是位IT顧問,他專門從事Internet和面向?qū)ο蟮木幊,并教授Java和Microsoft技術(shù)。他是銷量很好的Java for the Web with Servlets, JSP, and EJB: a Developer’s Guide to Scalable Solutions (New Riders)一書的作者,他還開發(fā)了最受歡迎的Java Upload Bean,你可以從BrainySoftware.com得到它,許多重要的公司都得到許可并將它用于項(xiàng)目中了。Budi的聯(lián)系方式是budi@brainysoftware.com。