JSP動態網頁製作一定要知道的基礎知識

來源:互聯網
上載者:User
js|動態|網頁 一個普通的錯誤是把JSP當作簡化的 Java。它不是,(事實上, JSP 是簡化的 servlets 。)程式員通常試著沒有學習要求的支援技巧而 直接學習 JSP 。JSP 是一個銜接技術,並且成功地串連你需要理解的另外的技術。如果你已經知道 Java , HTML 和 javascript,這意味著 JSP 將確實是簡單的。

需要成為一個成功的 JSP 程式員可以參考這個時間表。請注意下列:

*忽略你已經熟悉的步驟。
*訓練的時間只是代表學習好足夠的基礎時間,這樣才能轉移到下一步。

1、建立並且理解你的Web Server。
因為Apache 是免費的並且在大多數平台上工作,為訓練目的推薦 Apache。
安裝時間:2 天。


2、 保證你理解 HTML / XHTML 。
你將需要瞭解html基礎, 特別是 HTML 布局中的table的使用。XHTML 不久將代替 HTML ,學習 XHTML 的基礎是一個好主意。許多程式員通過 HTML IDE 學習 HTML ( 整合式開發環境 ) 。因為大多數 HTML IDE產生混亂的HTMl文法,所以花時間學習手工寫作html是很有必要的。因為你將會使用 JSP 和 HTML 混合編程,精通HTML文法是重要的。所以,你必須能流利地寫 HTML 。
訓練時間:2 ~ 4 個星期。


3、開始學習 Java 。
開始學習 Java 1.3 理解 Java 基礎是很重要的。不用擔心學習Swing或 Java 的圖形方面,因為在JSP 中你不會使用這些特徵。集中精力 在 Java 工作的細節,學習 Java 的邏輯,也在 Java Bean上花時間。學習Applet是好的, 但是就象Swing, JSP 的大多數應用將不使用小程式。
訓練時間:3 ~ 6 個星期。


3、學習 javascript
學習怎麼將 javascript在HTML中驗證輸入的Form元素。也學習 javascript怎麼能在一 HTML 頁以內修改Form的元素。最後要求你能從一HTML 頁內的事件中觸發 javascript Function。
訓練時間:一~ 2 個星期。


4、學習並且理解你的Web Server的更好的細節。
熟悉Web Server的特徵,這是很重要的。
訓練時間:2 天。


5、建立你的 JSP Server
我推薦以Tomcat開始。它可以很好地運行JSP程式。當你不能在生產使用Tomcat時,學習儘可能多的知識以便於更好的運行程式。另外, 許多 JSP 程式員使用Tomcat。因此當你遇到一個問題時,你將容易發現協助。
安裝時間:一~ 2 天。


6、開始學習 JSP 。
基本的 JSP 學習通過的步驟 1到步驟6可以完成, 然後使用 JSP 對象和指令碼寫 JSP 程式來聯絡。學習 JSP 的另外一個方面可以學習怎麼建立一個分布式的應用程式。
訓練時間:4 ~ 6 個星期。


7、學習更多的 JSP server。
沒有關於更多的 JSP Server當然也可以運行jsp程式。然而, 許多 JSP server都由自己特殊的特徵,可以讓你更好的理解你的JSP 工程。學習更多的Jsp server如何處理jsp程式是有必要的。同樣也可以最佳化你的 JSP 應用程式,並且使之運行得更快而不出任何問題。
訓練時間:2 ~ 7 天。


8、 學習 JDBC 。
JSP 大多數應用將使用資料庫,JDBC 被用於資料庫連接。經常忽略的一個事實就是,每個 JDBC Driver 所支援的東西是相當不同的。瞭解並熟悉在jsp工程上被使用的 JDBC driver的細節是很重要的。
(有時這部分的學習被包含在前面 Java 或JSP的學習中了 。)
訓練時間:1~ 2 個星期。

到現在,你已經成為了熟練的 JSP 程式員。仍然有很多需要學習,你可以考慮擴充你的知識比如 DHTML , XML ,java認證, JSP Tag Libraries 或 Servlets , 看你想要造什麼類型的網站而決定了。

這些訓練是JSP 的核心。你不必都學習上面所有的, 取決於你在工程中分配到什麼任務和你已經有什麼知識。但是這是我成功地訓練程式員的時間表。關鍵的單元是時間。平均的說, 5 個月時間確實能夠訓練一個人 ( 從開始到完成 ) 成為一個對jsp熟悉程式員。5 個月時間似乎很長,但要成為一個資深的WEB程式員所學的東西遠遠不止這一些。

下面為總結

任何Web開發人員需要必備的技巧主要有以下這些技術。

開發Web應用程式的技術已經變得更成熟、更複雜了。現在,構建一個Web應用程式不僅僅需要簡單的HTML技術了。資料庫訪問、指令碼語言和管理都是一個Web程式員需要具備的技術。讓我們來看看要成為一個市場上受歡迎的Web開發人員都需要些什麼技能吧。

自從CERN(歐洲粒子物理研究所),日內瓦附近的高能物理研究中心,在1991年發布了Web以來,Web技術已經從靜態內容和Common Gateway Interface(CGI)發展成servlet技術和JavaServer Pages了。然而,在這個競爭更激烈的社會中,一個Web程式員需要更多的知識。例如,如果在面試中,你提到你熟悉XML並在JNDI方面有些經驗(這兩種技術初看似乎同Web編程沒有很緊密的關係),那麼你就會給你未來的老闆留下更深的印象。設想你已經瞭解了Java程式設計語言和物件導向的編程,下面還有兩組技術是一個Web開發人員日常工作中所需要的。第一組包括每個Web程式員必須具備的技術。第二組包含要想成為一個進階程式員所應該掌握的技術。

基本技能
如果想稱自己是個Web開發人員,下面就是必須具備的技術。

HTML(HyperText Markup Language)
HTML幾乎是顯示在瀏覽器上所有內容的語言。難怪HTML就好像是一個Web程式員的生存本能一樣。如果你仍需要在你的HTML中尋找<tr>或<b>,那麼你真的需要提高你的HTML技術了。HTML的目前的版本是4.01,你可以從http://www.w3.org/TR/1999/REC-html401-19991224/瞭解更多關於它的內容。

Servlets和JSP
Java servlet技術是開發Java Web應用程式的主要技術。它是由Sun Microsystems在1996年開發的,當前的版本是2.3,但人們正在為版本2.4做準備。

JSP是servlet技術的擴充,現在的版本是1.2(2.0版將很快定下來)。有人認為JSP是servlets的替代,但實際並不是這樣的。Servlets和JSP是一起用於複雜的Web應用程式的。

用Java進行Web編程的一個好的開端就是學習servlet技術。即使你打算在你的Web應用程式中只運用JSP頁面,你仍需要學習servlet技術。在更複雜的Web應用程式中,JSP頁面只用於顯示,而JavaBeans和自訂標籤庫用來嵌入商業邏輯。即:你也必須精通JavaBeans和自訂標籤庫。


javascript
javascript是運行於所有的主要的瀏覽器中的指令碼語言。你用javascript來進行用戶端的編程。用戶端編程中最重要的工作就是確認使用者輸入。運用用戶端輸入驗證的好處是減少伺服器的工作量並提高回應時間。另外,javascript可以用於重新定向(redirection)、cookie處理、控制applets、建立導航樹、開啟一個瀏覽器的一個新的執行個體、等等。

SQL(Strutured Query Language)和JDBC(Java Database Connectivity)
如今,大多數Web應用程式都包括訪問關聯式資料庫中的資料。作為一個Web程式員,你需要知道如何儲存、得到並操作資料庫中的資料。有時侯,你也需要設計資料庫,構建資料庫中的表和其它結構。SQL就是用來操作資料庫中資料的語言。你通常需要編寫SQL語句(常常是動態),把它們傳遞到資料庫伺服器,並得到返回的資料(如果有的話)。

運用Java語言,你需要用JDBC來協助Web應用程式和資料庫伺服器進行通訊。JDBC有兩部分:JDBC Core API(Application Programming Interface)和JDBC Optional Package API。第一組用來執行基本的資料操作,如建立一個串連或讀取、更新並刪除一個表中的記錄。第二組提供更進階的資料庫連接功能,如串連池、事務和RowSet。JDBC的目前的版本是3.0,API包含在J2SE v. 1.4中。

Web Container管理和應用程式部署
你的servlets和JSP頁面在一個叫做servlet/JSP container或Web container的引擎中運行。你至少需要知道如何為測試以及生產運行部署你的Web資源。例如,如果你運用Tomcat,你需要瞭解的一件事就是如何映射設定檔(server.xml)中的應用程式,使Tomcat知道如何調用你的JSP頁面。另外,你需要知道在哪裡儲存你的庫以及如何建立應用程式部署描述符。

XML(eXtensible Markup Language)
XML是電腦領域中一個成功的後起之秀。由World Wide Web Consortium在1996年開發,XML現在已經是用於資料交換和可擴充資料結構的一個廣泛的、公認的標準了。XML在Java Web開發中扮演著一個重要的角色。例如,每個應用程式的部署描述符都是XML格式的。而且,如果你在開發Web servies,你就會用到SOAP(Simple Object Access Protocol),它主要是基於HTTP和XML的。

另外,在Web應用程式中,XML也可能用於儲存分等級的資料。

Model 2結構
這種技術在該類別中是最先進的。建議用這種結構來構建相當複雜的Java Web應用程式。Model 2結構是基於Model-View-Controller設計範例的。

進階技術
下面這些技術可以將你同初學者區別開來。

JSTL(JSP Standard Tag Libraries)、Jakarta Taglibs項目和其它庫
為了加速應用程式的開發,你應該經常重用代碼。簡單地說,代碼重用就是,如果有人已經編寫了用來執行某些功能的代碼,你最好就去用那些代碼,而不要自己編寫了。因此,JSP可以讓你運用自訂標籤。你可以運用幾個庫,最受歡迎的是Apache的Jakarta Taglibs項目中的庫。從http://jakarta.apache.org/taglibs/index.html 可以下載這個包,你在開始建立新類前,可以運用在這個包中找到的任何現成的東西。

JSTL最近已經成為了一個標準。其它標籤庫可以免費或以商業方式得到。

Apache的Struts項目
Struts是一個Apache贊助的公用資源項目,它為構建Model 2 Java Web應用程式提供了一個構架。Struts為MVC結構提供它自己的Controller組件,將EJB、JDBC和JNDI用於Model,將JSP和其它技術用於View。你可以從它的網站找到更多關於這個項目的更詳細的資訊:http://jakarta.apache.org/struts/index.html。

XHTML(Extensible HyperText Markup Language)
XHTML是努力將HTML和XML結合起來的一種技術。你可以把XHTML當作下一代的HTML。其當前的版本是1.0(第二版是於2002年8月1日發布的),XHTML還沒有像HTML那麼流行,但它在將來會發揮更重要的作用。根據Web設計專家Molly Holzschlag的觀點,推動各個公司轉向XHTML的主要原因是美國的關於公開訪問(accessibility)的法律。更多關於XHTML的資訊,參閱Holzschlag訪談。

DHTML(動態HTML)
DHTML可以允許人們在你的網站上進行更多的互動。例如,運用DHTML,當使用者移動滑鼠到一個連結上時,你就可以很容易地建立並顯示子功能表。運用DHTML的最大的挑戰是建立跨瀏覽器的頁面。的確,在理論上,頁面設計應該是由美工處理的,其中動態HTML是通過運用一個工具而產生的。然而,一個Web程式員通常要負責整合所有的部分,如果在頁面中產生的程式碼被破壞了,你就需要瞭解DHTML來修理它。

Applet 編程
Applets曾經在提供互動性方面很重要,尤其在DHTML出現前。現在,applets的作用被削減了,更多的程式員已經不用applets了。Microsoft決定在它的新瀏覽器中不為applets提供預設的支援極大地削減了applets在Web應用程式中的作用。然而,applets並沒有消亡。對於某些任務,如顯示新聞標題,applets仍然是不可替代的,而且applets不會產生另人頭痛的跨瀏覽器安全色方面的問題。

HTTP協議
Java Web程式員通常運用比HTTP更高的協議,如運用servlet和JSP APIs。這些APIs隱藏了HTTP協議的複雜性。因此,你仍可以構建重要的應用程式而不需要知道多少關於HTTP協議的知識。只有當你需要處理未經處理資料,比如將檔案作為附件上傳或傳送時,你才需要更多關於協議的知識。

EJB(Enterprise JavaBeans)
EJB是J2EE的一部分,當可擴充性和強大性是你的Web應用程式的主要需求時,EJB就很重要。在當前規範(EJB 2.0)中有三種類型的EJBs:會話(session)EJBs、實體(entity)EJBs和訊息驅動的(message driven)EJBs。新的規範,2.1版,正在設計中。

JNDI(Java Naming and Directory Interface)
當你在開發企業beans時,JNDI很重要,因為對一個EJB的訪問是通過JNDI的命名服務完成的。運用一個命名服務來尋找與一個特定名字相關的一個對象。在EJB context中,一個命名服務找到一個企業bean,給定這個bean的名字。因此,瞭解JNDI在開發一個EJB應用程式中是至關重要的。另外,JDBC可以用JNDI來訪問一個關聯式資料庫。

其它工具
瞭解在哪裡可以找到特定的支援工具通常有助於的你的事業的發展。例如,如果你碰巧被分配去做關於基準的任務,那麼你如果知道你可以從Apache的Jakarta Project下載Jmeter,你就會很高興。另外,如果你需要以PDF格式發送輸出結果,建議你從http://www.lowagie.com/iText/ 運用可以免費下載的Java-PDF庫。Internet技術範圍很廣而且發展很快。這就是說,作為一個Web程式員,你應該時時留心業界出現了什麼新技術,發生了什麼大事。在這個方面,沒有什麼比Internet本身更偉大的資源了。


-------------------------------------------------------------
用戶端(client)與伺服器端(server)的概念
伺服器:廣義地說,伺服器分兩種(硬體伺服器、軟體伺服器)
硬體伺服器:指相對PC機而言,效能和穩定性較好的、採用特殊硬體的電腦。
軟體伺服器:通俗的說,就是指安裝了某種服務軟體,並能提供相應的服務的機器,我們稱之為伺服器。
服務軟體有很多種,常見的有:
WWW服務的軟體:PWS、IIS、APACHE
J2EE中介軟體應用伺服器:websphere、silverstream
JSP引擎(弱的WWW服務功能):TOMCAT,resin,weblogic,jrun
SMTP、 POP3:iis的smtp,exchange,lotus domino
FTP:iis所內建
用戶端:相對伺服器來說,就是享受了某種服務的一方,被稱之為用戶端。但若要享有某種服務也必須安裝相應的軟體,如(IE/NETSCAPE、OUTLOOK/FOXMAIL、CUTEFTP)
資料類型
基本類型有以下四種:
int長度資料類型有:byte(8bits)、short(16bits)、int(32bits)、long(64bits)
float長度資料類型有:單精確度(32bits float)、雙精確度(64bits double)
boolean類型變數的取值有:ture、false
char資料類型有:unicode字元,16位
對應的類類型:Integer、Float、Boolean、Character、Double、Short、Byte、Long
轉換原則:
從低精度向高精度轉換byte 、short、int、long、float、double、char
註:兩個char型運算時,自動轉換為int型;當char與別的類型運算時,也會先自動轉換為int型的,再做其它類型的自動轉換
1,基本類型向類類型轉換
正向轉換:
通過類封裝器來new出一個新的類類型的變數
Integer a= new Integer(2);
反向轉換:
通過類封裝器來轉換
int b=a.intValue();
2,類類型向字串轉換
正向轉換:
因為每個類都是object類的子類,而所有的object類都有一個toString()函數,所以通過toString()函數來轉換即可
反向轉換:
通過類封裝器new出一個新的類類型的變數
eg1: int I=Integer.valueOf(“123”).intValue()
說明:上例是將一個字串轉化成一個Integer對象,然後再調用這個對象的intValue()方法返回其對應的int數值。
Eg2: float f=Float.valueOf(“123”).floatValue()
說明:上例是將一個字串轉化成一個Float對象,然後再調用這個對象的floatValue()方法返回其對應的float數值。
Eg3: boolean b=Boolean.valueOf(“123”).booleanValue()
說明:上例是將一個字串轉化成一個Boolean對象,然後再調用這個對象的booleanValue()方法返回其對應的boolean數值。
Eg4:double d=Double.valueOf(“123”).doubleValue()
說明:上例是將一個字串轉化成一個Double對象,然後再調用這個對象的doubleValue()方法返回其對應的double數值。
Eg5: long l=Long.valueOf(“123”).longValue()
說明:上例是將一個字串轉化成一個Long對象,然後再調用這個對象的longValue()方法返回其對應的long數值。
Eg6: char=Character.valueOf(“123”).charValue()
說明:上例是將一個字串轉化成一個Character對象,然後再調用這個對象的charValue()方法返回其對應的char數值。
3,基本類型向字串的轉換
正向轉換:
如:int a=12;
String b;
b=a+””;
反向轉換:
通過類封裝器
eg1:int I=Integer.parseInt(“123”)
說明:此方法只能適用於字串轉化成整型變數
eg2: float f=Float.valueOf(“123”).floatValue()
說明:上例是將一個字串轉化成一個Float對象,然後再調用這個對象的floatValue()方法返回其對應的float數值。
Eg3: boolean b=Boolean.valueOf(“123”).booleanValue()
說明:上例是將一個字串轉化成一個Boolean對象,然後再調用這個對象的booleanValue()方法返回其對應的boolean數值。
Eg4:double d=Double.valueOf(“123”).doubleValue()
說明:上例是將一個字串轉化成一個Double對象,然後再調用這個對象的doubleValue()方法返回其對應的double數值。
Eg5: long l=Long.valueOf(“123”).longValue()
說明:上例是將一個字串轉化成一個Long對象,然後再調用這個對象的longValue()方法返回其對應的long數值。
Eg6: char=Character.valueOf(“123”).charValue()
說明:上例是將一個字串轉化成一個Character對象,然後再調用這個對象的charValue()方法返回其對應的char數值。

相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。