一個JSP初學者的學習過程詳解
2024-09-05 00:20:08
供稿:網(wǎng)友
前言
從現(xiàn)在開始我要把我學習jsp的過程寫出來。這些東西都是我從書本、網(wǎng)絡上搜集整理的,我把它們據(jù)為己有后寫這樣一篇總結(jié)供如我一樣的初學者參考。
請容許我在這里說一些和讀者無關(guān)的話,對此不感興趣的請直接跳到第一章或第二章。
我在2003年七月大學畢業(yè),這之前學了四年計算機專業(yè),由于基本是屬于文科學校的計算機專業(yè),學校女生少男生多學習的風氣極受影響,所以可以想象我畢業(yè)時候的水平。在學校時學習的大多是枯燥的計算機理論知識,我雖知其有用,但實在不感興趣,我感興趣的是編碼,于是學了一個學期的pascal,又編了一個學期的c(學c的時候是熱情高漲的,甚至教課的老師允許或者說支持我逃課回去編碼),遇指針、鏈表,不成,棄之,轉(zhuǎn)而學c++,不半月,遇“對象”、“類”、“繼承”,不成,復棄之,終不成,無奈之下,日夜游戲,不思進取,不數(shù)載,畢業(yè)。
這以后直至現(xiàn)在一直在一省直機關(guān)的信息中心工作,由于是“事業(yè)單位”,所以工作很閑,頭半年學了兩個月的html,后又學一個月的asp,由于缺少壓力,最終都放棄了。直到我們單位開始了一個項目——電子政務,我的境況有了轉(zhuǎn)變。
我們找來了兩家公司給我們開發(fā)軟件,領導說讓我跟一跟,學寫東西,由于當年c給我的打擊實在太大了,我已認定自己不是那塊料,是不具有學程序的天賦的,所以有些不情愿,但是終于由于太閑而且又不甘心自己“一點技術(shù)含量都沒有”,最終選擇了學習jsp。我找給我們開發(fā)軟件的一個程序員朋友,向他要來了tomcat、jsdk和盜版的oracle,編寫平臺就先暫時用我比較熟悉的dreamweaver,英文也差,就沒用jbuilder、jcreator什么的,至于資料,沒有,只有網(wǎng)絡,我就這樣開始了我的jsp之旅。
我沒想到的是當年學的那一點點c、html、asp讓我不怎么費力的就走進(近)了jsp的大門,這速度至少出乎了我的意料。
值得說明的一點是:我學jsp完全是從實例入手,這之前我的相關(guān)理論知識基本為零,所以我在對代碼的理解上(很大程度表現(xiàn)在注釋上)是使用自己的“土語”的,而不是“術(shù)語”。我的原則是這篇文字能夠讓和我一樣的初學者能夠看懂。
對于一個毫無基礎的人來說,你對他說“類”、“對象”、“接口”、“繼承”這些名詞,他是無法理解的,因為它們太抽象,所以我必須通過實例和不怎么規(guī)范的語言使它們具體化一些。
由于我的水平實在有限,可能會出現(xiàn)很多錯誤,尤其在對某些“代碼”的理解上,但是我勇于拿出板磚,希望有熱心的高手使勁扔玉^_^這是我的郵箱:[email protected]。
最后,感謝互聯(lián)網(wǎng)及在其上分享自己經(jīng)驗的程序員、我的單位的領導、同事、程序員朋友孫罡、大學的朋友彭濤等。
第一章 配置服務器環(huán)境
jsp全稱是java server pages(而不是javascript的縮寫,javascript是使用java語言的一種腳本語言),用我的話說,它就是一堆使用于網(wǎng)頁瀏覽器上的代碼(或者說代碼規(guī)范),從這個角度講和asp類似。它并不是一種編程語言,但是它需要一種編程語言來編寫其中的程序,正如asp使用vb作為編程語言一樣,jsp使用的是java語言。
安裝軟件:
既然jsp使用java,那么我們的服務器操作系統(tǒng)里當然要有相應的java環(huán)境,否則我們怎么使用java提供的“庫函數(shù)”呢?jdk就是這個東西,我們可以從sun公司的網(wǎng)站上下載它,先把它安裝到操作系統(tǒng)(我的操作系統(tǒng)是windows xp professional sp2)中,我的安裝目錄是:d:/j2sdk1.4.2_07,裝完之后我們還需要進行配置,這一步在下面再說。
我們還需要安裝web服務器,我們初學者一般可以選用tomcat作為jsp的web服務器。web服務器是什么東西?假如你對asp有一點了解的話,你就會知道iis這東西——iis就是asp的web服務器,那么tomcat對于jsp來說,它就相當于asp的iis。我使用的是tomcat5.0,你也可以使用更高的版本,注意在安裝它之前你得先安裝jdk,我的tomcat的安裝目錄是:d:/tomcat 5.0。
配置:
右鍵“我的電腦”-“屬性”-“高級”-“環(huán)境變量”,這里面有用戶變量和系統(tǒng)變量之分,說實話,用戶變量主要起什么作用我不是很清楚,但是系統(tǒng)變量一定是很重要的,通過“新建”或“編輯之后”,我的相關(guān)的用戶變量是這樣的:
classpath——.;d:/j2sdk1.4.2_07/lib/tools.jar;d:/j2sdk1.4.2_07/lib/dt.jar;
java_home——d:/j2sdk1.4.2_07
path——d:/j2sdk1.4.2_07/bin;d:/j2sdk1.4.2_07
我的相關(guān)的系統(tǒng)變量是:
catalina_home——d:/tomcat 5.0
classpath——.;d:/j2sdk1.4.2_07/lib/tools.jar;d:/j2sdk1.4.2_07/lib/dt.jar;
java_home——d:/j2sdk1.4.2_07
path——d:/j2sdk1.4.2_07/bin;d:/j2sdk1.4.2_07;(把這句添加進去,而不是最終的值)
tomcat_home——d:/tomcat 5.0
tomcat在安裝完之后在windows系統(tǒng)的“服務”中會多一項“apache tomcat”的服務,它是自動的,你可以給它改成手動,這樣在不使用的時候可以節(jié)省一些系統(tǒng)資源了。既然改成手動了,那么怎么啟動它呢?找這兩個文件:d:/tomcat 5.0/bin/startup.bat和d:/tomcat 5.0/bin/shutdown.bat,前一個就是啟動tomcat的批處理文件了,而后一個就是關(guān)閉的。
你在安裝tomcat的時候可能會發(fā)現(xiàn)安裝過程中有一個地方可以改端口號,默認是“8080”,而當你在調(diào)試程序時你就要注意這個端口號了。在上面的配置都完成以后,你可以看看是否成功了:先開啟tomcat服務器,然后在網(wǎng)頁地址欄里輸入:http://localhost:8080/(客戶端和服務器是同一臺機器),安裝成功的話你會看見tomcat的歡迎界面。你也可以使用你的ip或是機器名,比如我的ip是172.16.20.30,機器名是ringz,那么輸入以下兩種形式都是可行的:http://172.16.20.30:8080/,http://ringz:8080/。
第二章 輕度接觸server.xml
<%@ page contenttype="text/html; charset=gb2312" language="java"errorpage="" %>
<%
out.print("日本人應該被徹底消滅");
%>
這個文件是在頁面輸出一句話,你甚至可以用記事本來編寫,但主要的問題是,這個文件(比如叫test.jsp)它放在哪里。tomcat的默認目錄好象是d:/tomcat 5.0/webapps/jsp-examples,早期4.1版本目錄是examples,把這個文件放到jsp-examples下,開啟tomcat服務器,在地址欄輸入:http://ringz:8080/jsp-examples/test.jsp。
現(xiàn)在要說的問題是:我不想用8080這個端口,直接用http://ringz/jsp-examples/test.jsp多好啊。這首先要取決你的80端口是否被占用,一般來說你的機器里沒有安裝iis或者停掉iis服務,80端口就可以使用。具體的修改方法如下:打開這個文件——d:/tomcat 5.0/conf/server.xml,你會找到這樣一段代碼:
<connector port="8080"
maxthreads="150" minsparethreads="25" maxsparethreads="75"
enablelookups="false" redirectport="8443" acceptcount="100"
debug="0" connectiontimeout="20000"
disableuploadtimeout="true" />
把port="8080"改成port="80",保存文件,重啟tomcat服務器,如果能夠啟動,說明可以使用80端口了;而要是tomcat啟動窗口一閃即關(guān)掉,就說明80端口已經(jīng)被占用了(這個判斷的前提是該server.xml文件沒有錯誤,如果有其他錯誤的話,比如少一個“/>”,也會這樣)。按照此方法你可以改成其他閑置的端口,比如說,給我們做軟件的公司在測試的時候使用的是7988端口。除了80端口,其他端口都要在地址欄注明,80之所以不用是因為它是http協(xié)議的默認端口。
接下來的問題是:我不想把寫好的.jsp文件放在d:/tomcat 5.0/webapps/jsp-examples下怎么辦?這同樣需要修改server.xml文件:假如你的.jsp文件都放在e:/myjsp下,則在該文件的<host></host>之間加入這樣一段代碼:<context path="/myjsp" docbase="e:/myjsp" debug="0" reloadable="true" crosscontext="true"/>(注意要和文件名的大小寫要一致)。這樣你可以在地址欄輸入http://ringz/myjsp/test.jsp(同樣要注意大小寫要一致)來運行這個文件。如果改成:<context path="" docbase="e:/myjsp" debug="0" reloadable="true" crosscontext="true"/>,這樣在地址欄里輸入http://ringz/test.jsp就行了。
你感興趣的話可以看看只輸入http://ringz后頁面是什么樣的。
現(xiàn)在你可能會有這個想法:我的一個系統(tǒng)(或者叫一個站點)有一個固定的入口文件,比如叫l(wèi)ogin.htm,我希望只在地址欄輸入http://ringz就可以打開這個文件,這怎么辦?這個我們可以通過修改和server.xml處于同目錄下的web.xml文件來實現(xiàn):一般在這個文件的最下有這樣一段代碼:
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
你只需要將其中一個改成<welcome-file>login.htm</welcome-file>就行了。