国产毛片午夜福利,国产黄网,国产亚洲天堂,97国产精品

  •  
    用JSP構(gòu)建動(dòng)態(tài)網(wǎng)站
    發(fā)布時(shí)間:2005-03-17   瀏覽次數(shù):1185106
    用JSP構(gòu)建動(dòng)態(tài)網(wǎng)站 孫以義 杜鵑 一、 什么是JSP JSP(JavaServer Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn),其網(wǎng)址為http://www.javasoft.com/products/jsp。 在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP標(biāo)記(tag),構(gòu)成了JSP網(wǎng)頁(*.jsp)。Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時(shí),首先執(zhí)行其中的程序片段,然后將執(zhí)行結(jié)果以HTML格式返回給客戶。程序片段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁以及發(fā)送 email 等等,這是建立動(dòng)態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,對客戶瀏覽器的要求,可以實(shí)現(xiàn)無Plugin,無ActiveX,無Java Applet,甚至無Frame。 本文將介紹利用JSP技術(shù)開發(fā)動(dòng)態(tài)網(wǎng)頁的方法,還將簡要分析JSP技術(shù)和 Microsoft 公司的 ASP 技術(shù)的不同之處。 二、 如何安裝和啟動(dòng) 為了實(shí)驗(yàn)JSP技術(shù),首先需要建立運(yùn)行環(huán)境,這個(gè)過程相當(dāng)簡單: 1、在 http://java.sun.com/jdk/處下載JDK(Java 2 SDK、Standard Edition、v 1.2.2)。 2、在http://java.sun.com/products/jsp/處下載JSWDK(JavaServer Web Development Kit 1.0.1)。Linux用戶可以在ttp://jakarta.apache.org/處下載Tomcat 3.0。 3、安裝 以Windows NT環(huán)境為例,JDK的安裝是首先運(yùn)行下載得到的jdk1_2_2-win.exe,然后修改系統(tǒng)環(huán)境參數(shù),在PATH參數(shù)中加入[x:]\jdk1.2.2\bin以及增加新的環(huán)境參數(shù) CLASSPATH=[x:]\jdk1.2.2\lib\tools.jar,其中[x:]是安裝JDK的硬盤符(c:、d: 等)。 JSWDK的安裝僅需將jswdk1_0_1-win.zip帶目錄釋放到硬盤根目錄下(c:\、d:\ 等),然后可以在硬盤上找到\jswdk-1.0.1\目錄。將來如果不想保留JSWDK,刪除這個(gè)目錄可以了,沒有任何系統(tǒng)文件和注冊表遺留問題。更詳細(xì)的安裝過程以及Solaris/Unix和Linux下JDK、Tomcat的安裝可以參考下載得到的文件包中的安裝說明。 4、啟動(dòng) 以Windows NT環(huán)境為例,在\jswdk-1.0.1\目錄下執(zhí)行startserver.bat,可啟動(dòng)JSWDK中一個(gè)支持JSP網(wǎng)頁技術(shù)的Web服務(wù)器。為了不與現(xiàn)有的Web服務(wù)器(例如IIS、PWS等)沖突,JSWDK的Web服務(wù)器使用了8080端口。 在瀏覽器的地址欄中鍵入http://localhost:8080或者h(yuǎn)ttp://127.0.0.1:8080后,如果能看到 JSWDK 的歡迎頁說明JSP實(shí)驗(yàn)環(huán)境已經(jīng)建成,可進(jìn)入下一步實(shí)驗(yàn)。 要關(guān)閉Web服務(wù)器則運(yùn)行stopserver.bat。 三、 JSP簡單示例 JSWDK中包含的Web服務(wù)器的文檔目錄在缺省狀態(tài)下為\jswdk-1.0.1\webpages,主文檔在缺省狀態(tài)下為index.html和index.jsp。也是說訪問http://localhost:8080等于訪問\jswdk-1.0.1\webpages\index.html。 用文本編輯器,如Windows中的記事本(Notepad),創(chuàng)建一個(gè)文本文件hi.jsp,保存在\jswdk-1.0.1\webpages\目錄下,其內(nèi)容如下: Hi-JSP實(shí)驗(yàn) 在瀏覽器的地址欄中鍵入http://localhost:8080/hi.jsp,JSWDK中的Web服務(wù)器會(huì)執(zhí)行JSP 文件中用括起來的Java程序語句,其中out.print是將文字輸出到網(wǎng)頁,語句的作用是將Java Scriptlet中變量或表達(dá)式的值輸出到網(wǎng)頁,執(zhí)行結(jié)果如圖1。 圖1 將變量Msg賦值為中文字符串,用輸出,或者用out.print輸出中文字符串,則在英文版NT4及Redhat 6.1下實(shí)驗(yàn)運(yùn)行結(jié)果正常,而在中文NT 4.0和中文98下,則反而會(huì)出現(xiàn)亂碼。 四、 統(tǒng)一的網(wǎng)站界面 JSP支持服務(wù)器端的文件包含,即可以在一個(gè)JSP文件中插入多個(gè)其他文件,用來實(shí)現(xiàn)統(tǒng)一的網(wǎng)站界面。修改上述hi.jsp并另存為mypage.jsp: 用可視化HTML編輯器,例如FrontPage、Dreamweave等設(shè)計(jì)網(wǎng)站的框架結(jié)構(gòu),將設(shè)計(jì)好的框架結(jié)構(gòu)文件分割成兩個(gè)部分,上面一半保存為top.htm, 下面一半保存為bot.htm,代碼如下面所示: 我的主頁 主頁標(biāo)題 選項(xiàng)選項(xiàng) 選項(xiàng) ......   ---------------------------------------------------------------------------------------------------------------- 在瀏覽器的地址欄中鍵入http://localhost:8080/mypage.jsp,得到結(jié)果如圖2。 圖2 這樣網(wǎng)站的界面能統(tǒng)一起來,而設(shè)計(jì)者可以集中精力在功能模塊上處理用戶登錄、連接數(shù)據(jù)庫、發(fā)送email等等。每個(gè)JSP文件都有如下結(jié)構(gòu): 維護(hù)網(wǎng)站的界面也相對比較容易,只要修改top.htm和bot.htm,能影響到所有網(wǎng)頁。 五、 服務(wù)器參數(shù)設(shè)置 JSWDK的Web服務(wù)器參數(shù)保存在\jswdk-1.0.1\webserver.xml中,用Windows寫字板打開并編輯這個(gè)文件可以修改缺省設(shè)置值。本節(jié)內(nèi)容主要針對JSWDK,Linux下Tomcat的設(shè)置方法略有不同。 JSWDK缺省的文檔目錄是\jswdk-1.0.1\webpages,在此目錄下可以建立子目錄,例如\jswdk-1.0.1\webpages\test,能在瀏覽器中用http://localhost/test訪問這個(gè)目錄,為了使得這個(gè)子目錄能執(zhí)行JSP程序,還必須在webserver.xml中的節(jié)加入: 并且,還必須建立\jswdk-1.0.1\webpages\test\WEB-INF目錄,并從\jswdk-1.0.1\webpages\WEB-INF目錄中復(fù)制過來以下四個(gè)文件:mappings.properties、mime.properties、servlets.properties以及webapp.properties。完成這些過程,才能通知JSWDK的Web服務(wù)器執(zhí)行http://localhost/test 中的JSP程序。 六、 JavaBean JSP網(wǎng)頁吸引人的地方之一是能結(jié)合JavaBean技術(shù)來擴(kuò)充網(wǎng)頁中程序的功能。 JavaBean是一種Java類 (class),通過封裝屬性和方法成為具有某種功能或者處理某個(gè)業(yè)務(wù)的對象。JavaBean被組織成為package(數(shù)據(jù)包)以便進(jìn)行管理,實(shí)際上是把一組JavaBean一起放在某某目錄中,每個(gè)類的定義前加上package某某,本例中為test。目錄test必須放在系統(tǒng)環(huán)境CLASSPATH包含的目錄下,系統(tǒng)才能找到其中的JavaBean。JSWDK在缺省狀態(tài)下將\jswdk-1.0.1\webpages\WEB-INF\jsp\beans\ 加入CLASSPATH。建立自己的JavaBean和package時(shí),放在這個(gè)目錄中也不失為一種簡易的方法。 下面介紹一個(gè)簡單的JavaBean框架。用文本編輯器創(chuàng)建一個(gè)文本文件helloWorld.java,并保存在\jswdk-1.0.1\webpages\WEB-INF\jsp\beans\test目錄下,其內(nèi)容如下: package test; public class helloWorld { public String name = "My first bean"; public String getHi() { return "Hello from " + name; } } helloWorld.java編輯好后,在DOS狀態(tài)下,進(jìn)入目錄\jswdk-1.0.1\webpages\WEB-INF\jsp\beans\,用JDK的javac命令編譯helloWorld.java如下: javac helloWorld.java 注意,Java是區(qū)分大小寫的,在程序中,編譯命令行中字母的大小寫都不能寫錯(cuò)。 編譯成功表示建立了一個(gè)JavaBean。下面看如何在JSP中使用這個(gè)JavaBean。用文本編輯器創(chuàng)建一個(gè)文本文件hi-bean.jsp,并保存在\jswdk-1.0.1\webpages\test目錄下,其內(nèi)容如下: JavaBean 試驗(yàn) 在JSP網(wǎng)頁中,使用 語法來創(chuàng)建JavaBean對象,并命名為helloBean。讀者可從這個(gè)簡單的例子中看出設(shè)置、獲取JavaBean屬性,以及調(diào)用JavaBean方法的做法。在瀏覽器的地址欄中鍵入http://localhost:8080/test/hi-bean.jsp,得到結(jié)果如圖3所示。 注意,如果修改和重新編譯了JavaBean程序,則需要關(guān)閉和重新啟動(dòng)JSWDK的Web服務(wù)器以后修改的結(jié)果才會(huì)有效。如果僅僅修改JSP文件,則不用重新啟動(dòng)JSWDK的Web服務(wù)器. 雖然,這僅僅完成了一個(gè)非常簡單的JavaBean框架,但是遵循這個(gè)框架可以設(shè)計(jì)出多種多樣的JavaBean。例如,從JSP中訪問數(shù)據(jù)通常是通過JavaBean來實(shí)現(xiàn)的。 七、 數(shù)據(jù)庫連接 數(shù)據(jù)庫連接對動(dòng)態(tài)網(wǎng)站來說是最為重要的部分,Java中連接數(shù)據(jù)庫的技術(shù)是JDBC(Java Database Connectivity)。很多數(shù)據(jù)庫系統(tǒng)帶有JDBC驅(qū)動(dòng)程序,Java程序通過JDBC驅(qū)動(dòng)程序與數(shù)據(jù)庫相連,執(zhí)行查詢、提取數(shù)據(jù)等等操作。Sun公司還開發(fā)了JDBC-ODBC bridge,用此技術(shù)Java程序可以訪問帶有ODBC驅(qū)動(dòng)程序的數(shù)據(jù)庫,目前大多數(shù)數(shù)據(jù)庫系統(tǒng)都帶有ODBC驅(qū)動(dòng)程序,所以Java程序能訪問諸如Oracle、Sybase、MS SQL Server和MS Access等數(shù)據(jù)庫。下面介紹如何用Access實(shí)現(xiàn)一個(gè)動(dòng)態(tài)FAQ(常見問題及答案)網(wǎng)站。 首先建立一個(gè)Access數(shù)據(jù)庫faq.mdb,其中的表faqs有字段id(自動(dòng)增量型,并設(shè)為主關(guān)鍵字)、subject(文字型,長度0)、answers(備注型)。這個(gè)表中可以存放一些編程知識的常見問題及答案,如圖4。 圖 4 然后,在Control Panel(控制面板)的ODBC Datasource模塊中加入System DSN,取名faq,并指向faq.mdb。 創(chuàng)建一個(gè)JavaBean,名為faq.java,并保存在\jswdk-1.0.1\webpages\WEB-INF\jsp\beans\test目錄下。faq.java 的內(nèi)容如下: package test; import java.sql.*; public class faq { String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver"; String sConnStr = "jdbc:odbc:faq"; Connection conn = null; ResultSet rs = null; public faq() { try { Class.forName(sDBDriver); } catch(java.lang.ClassNotFoundException e) { System.err.println("faq(): " + e.getMessage()); } } public ResultSet executeQuery(String sql) { rs = null; try { conn = DriverManager.getConnection(sConnStr); Statement stmt = conn.createStatement(); rs = stmt.executeQuery(sql); } catch(SQLException ex) { System.err.println("aq.executeQuery: " + ex.getMessage()); } return rs; } } 用上一節(jié)介紹的方法編譯faq.java以后,在\jswdk-1.0.1\webpages\test目錄下創(chuàng)建JSP文件faq.jsp,其內(nèi)容如下: 我的FAQ ! 這是我的FAQ! 在瀏覽器的地址欄中鍵入http://localhost:8080/test/faq.jsp,faq.jsp調(diào)用JavaBean,從數(shù)據(jù)庫中讀出內(nèi)容并輸出,得到結(jié)果如圖5所示. 限于篇幅,本文不能列舉JSP-JavaBean-JDBC/ODBC-數(shù)據(jù)庫的復(fù)雜例子,讀者可以從本文所推薦的網(wǎng)址中找到并下載到數(shù)據(jù)庫連接范例。 八、 技術(shù)分析 Microsoft 公司的 ASP 技術(shù)也是動(dòng)態(tài)網(wǎng)頁開發(fā)技術(shù)。JSP和ASP從形式上非常相似,ASP程序員一眼能認(rèn)出以及。但是深入探究下去會(huì)發(fā)現(xiàn)它們很多的差別,其中最主要的有以下三點(diǎn): 1、 JSP的效率和性更高 ASP以源碼形式存放,以解釋方式運(yùn)行,每次ASP網(wǎng)頁調(diào)用都需要對源碼進(jìn)行解釋,運(yùn)行效率不高。另外,IIS的漏洞曾使得許多網(wǎng)站源程序大曝光,包括筆者以前用ASP開發(fā)的網(wǎng)站,ASP程序全部被人下載了去。 JSP在執(zhí)行以前先被編譯成字節(jié)碼 (byte code),字節(jié)碼由Java虛擬機(jī)(Java Virtual Machine)解釋執(zhí)行,比源碼解釋的效率高;服務(wù)器上還有字節(jié)碼的Cache機(jī)制,能提高字節(jié)碼的訪問效率。次調(diào)用JSP網(wǎng)頁可能稍慢,因?yàn)樗痪幾g成Cache,以后快得多了。同時(shí),JSP源程序不大可能被下載,特別是JavaBean程序完全可以放到不對外的目錄中。 2、 JSP的組件 (Component) 方式更方便 ASP通過COM來擴(kuò)充復(fù)雜的功能,如文件上載、發(fā)送email以及將業(yè)務(wù)處理或者復(fù)雜計(jì)算分離出來成為獨(dú)立可重復(fù)利用的模塊。JSP通過JavaBean實(shí)現(xiàn)了同樣的功能擴(kuò)充。 在開發(fā)方面,COM的開發(fā)遠(yuǎn)比JavaBean復(fù)雜和繁瑣,學(xué)會(huì)ASP不難,但學(xué)會(huì)開發(fā)COM可不簡單。而JavaBean簡單多了,從本文上述示例中可以看出開發(fā)JavaBean很方便。 在維護(hù)方面,COM必須在服務(wù)器上注冊,如果修改了COM程序,必須重新注冊,甚至必須關(guān)機(jī)和重新啟動(dòng)。JavaBean則不需要注冊,放在CLASSPATH包含的目錄中行了。如果JavaBean進(jìn)行了修改,則JSWDK和Tomcat現(xiàn)在還需要關(guān)閉和重新運(yùn)行(但不是關(guān)機(jī)),但開發(fā)者已經(jīng)許諾將在以后的版本中做到不需要關(guān)閉服務(wù)器。 另外JavaBean是完全的OOP,可以針對不同的業(yè)務(wù)處理功能方便地建立一整套可重復(fù)利用的對象庫,例如用戶權(quán)限控制、email自動(dòng)回復(fù)等等。 3、 JSP的適應(yīng)平臺(tái)更廣 ASP目前僅適用于NT和IIS。雖然Unix下有ChiliSoft的插件來支持ASP,但是ASP本身的功能有限,必須通過ASP+COM的組合來擴(kuò)充,Unix下的COM實(shí)現(xiàn)起來非常困難。 JSP則不同,幾乎所有平臺(tái)都支持Java,JSP+JavaBean可以在所有平臺(tái)下通行無阻。NT下IIS通過一個(gè)插件,例如JRUN(http://www3.allaire.com/products/jrun/)或者ServletExec(http://www.newatlanta.com/),能支持JSP。的Web服務(wù)器Apache已經(jīng)能夠支持JSP。由于Apache廣泛應(yīng)用在NT、Unix和Linux上,因此JSP有更廣泛的運(yùn)行平臺(tái)。雖然現(xiàn)在NT操作系統(tǒng)占了很大的市場份額,但是在服務(wù)器方面Unix的優(yōu)勢仍然很大,而新崛起的Linux更是來勢不小。 從一個(gè)平臺(tái)移植到另外一個(gè)平臺(tái),JSP和JavaBean甚至不用重新編譯,因?yàn)镴ava字節(jié)碼都是標(biāo)準(zhǔn)的與平臺(tái)無關(guān)的。筆者將在NT下實(shí)驗(yàn)的JSP網(wǎng)頁原封不動(dòng)地拿到Linux下運(yùn)行起來了,感覺非常滿意。 九、 結(jié)論 綜上所述,JSP可謂是構(gòu)建動(dòng)態(tài)網(wǎng)站的一個(gè)利器,故推薦給讀者,祝愿你們掌握J(rèn)SP,開發(fā)出的網(wǎng)站。ASP程序員也請?jiān)囈幌,JSP里也有session、request、response/out等對象,親自試試看如何。 附文 這里是關(guān)于JSP的重要參考資料,有興趣的讀者可以進(jìn)一步閱讀。 http://java.sun.com/products/jsp/faq.html http://www.esperanto.org.nz/jsp/jspfaq.html http://www.zdnet.com/pcweek/stories/news/0,4153,410709,00.html http://developer.netscape.com/viewsource/kuslich_jsp /kuslich_jsp.html http://web2.java.sun.com/products/jsp/jsp-asp.html http://www.asptoday.com/articles/19991022.htm 來源:http://edu.chinaz.com
    立即預(yù)約