如何在Tomcat上運行servlet

引言
  最初,Web站點上只有存儲於服務器文件系統中的靜態HTML文檔,沒法返回定製信息或把數據存儲到數據庫中去。CGI的引入爲靜態的萬維網帶來了生機,但隨着CGI在性能和靈活性方面逐漸顯得陳舊老化,新技術競相取代CGI以做爲創建動態Web站點的標準接口,Java servlet可望繼CGI以後,成爲最受歡迎的Internet開發技術。 
1、運行環境的安裝
一、首先應該安裝Java Development Kit,又稱Java 2 SDK,最新版爲1.4.0,能夠從 http://java.sun.com/j2se/ 下載,安裝在C:\j2sdk下(能夠更改)。
二、Tomcat安裝軟件jakarta-tomcat-4.0.4.exe能夠從 http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.0.4/bin/ 下載。安裝在C:\Tomcat下(能夠更改)。
三、經過在C:\Tomcat 4.0\bin\startup.bat文件的頂部添加下面的代碼來設置環境變量TOMCAT_HOME 和JAVA_HOME。
set JAVA_HOME= C:\j2sdk
set TOMCAT_HOME=C:\Tomcat
以上設置參照本身的安裝路徑。
四、啓動Tomcat服務器,能夠用「開始」/「程序」/「Apache Tomcat 4.0」/「Start Tomcat」啓動。
爲了證明Tomcat已經成功啓動,試着從瀏覽器地址欄中輸入下面的URL地址: http://localhost:8080/ ,若是正常運行,則顯示Tomcat的歡迎頁面。
2、Web應用程序
Web應用程序是共同組成一個應用程序的目錄和文件的層次結構。全部Web應用程序不論運行在什麼服務器,都使用一樣的標準目錄結構。爲了說明,以下的目錄結構顯示了一個典型的Tomcat安裝,它包括二個Web應用程序(examples和ROOT)。
Tomcat
     bin
     conf
     doc
     lib
     logs
     src
     webapps
          examples
              images
              jsp
             servlets
              WEB-INF
                  classes
                  jsp
         ROOT
             doc
             WEB-INF
                 classes
一個Web應用程序的頂級目錄(例如/examples、/ROOT)被稱爲該Web應用程序的文檔根目錄。它是服務器找到與該Web應用程序相關聯的HTML、JSP和圖像文件的地方。
進行部署的時候,系統管理員爲每一個Web應用程序分配一個唯一的上下文路徑。全部對這個上下文路徑的請求都被路由到適當的Web應用程序。例如,examples  Web應用程序分配到/examples這個上下文路徑中,那麼下面這個URL地址會顯示一個位於/tomcat/webapps/examples目錄下的index.html文件。
http://localhost:8080/examples/index.html
位於/tomcat/conf目錄的server.xml文件爲每一個Web應用程序指定了上下文路徑,下面的程序塊來自於server.xml文件,它把/examples這個上下文路徑分配給了examples  Web應用程序,事實上,Tomcat爲每一個新的Web應用程序分配一個基於其根目錄名稱的上下文路徑。
<Context  path="/examples"  docBase="webapps/examples"  debug="0" reloadable="true">
</Context>
其中程序塊中的path描述給位於docBase的Web應用程序分配上下文路徑
docBase描述Web應用程序文檔根目錄相對於Tomcat服務器主目錄的位置。
另外,能夠經過指定一個空的上下文路徑來定義一個默認的Web應用程序。例如,Tomcat能夠按照下面的作法給ROOT  Web應用程序分配一個空的上下文路徑,從而把它安裝成默認的Web應用程序:
<Context path=""  docBase="webapps/ROOT"  debug="0"  reloadable="true">
</Context>
ROOT  Web應用程序用一個空的上下文路徑進行定義,那麼全部沒有映射到已定義上下文路徑的請求都將自動路由到ROOT目錄。下面的URL地址將返回位於/tomcat/webapps/ROOT目錄的index.xml文件(注意上下文路徑沒有被指定)
http://localhost:8080/index.xml
前面的目錄樹所示每一個Web應用程序都包含一個/WEB-INF目錄,這個/WEB-INF目錄對於開發者而言有着不一樣尋常的重要性,它包含有下面這些重要組成元素:
/classes目錄:此目錄包含着Web應用程序須要的全部Java類文件,包括全部的servlet和非servlet類。
/lib目錄:此目錄包含着Web應用程序所須要的全部JAR文件,其中包括JDBC驅動程序或者第三方類庫。
/web.xml 文件:稱爲部署描述符,是一個XML文件,用來描述servlet和組成Web應用程序其餘組件,以及全部的初始化參數、servlet名稱、servlet  URL映射和安全性限制等。
有一點很重要,須要注意,即全部的servlet都應該存放在Web應用程序的/WEB-INF/classes目錄中,並且web.xml 文件控制着對servlet的訪問。
3、調用servlet
已經知道servlet存放在文件系統的何處,接下來就分析它們被如何調用了,對於Tomcat,用下面的URL格式調用servlet:
http://server:port/context_path/servlet/servlet_name
URL的http字符串代表訪問URL要使用http協議,server指向服務器的主機名,:port指明這一鏈接的端口號,context_path表示Web應用程序的上下文路徑,/servlet部分告知Tomcat某個servlet正在被引用,servlet_name表示被Tomcat引用的servlet類名,注意:完整的軟件包信息必須包含在類名中,例如:SnoopServlet在com.insideservlets軟件包中,那麼servlet類名就是com.insideservlets.SnoopServlet。
當準備運行servlet的時候,必須把它存放到其中一個Web應用程序的/WEB-INF/classes目錄中,這樣就能夠經過Web應用程序的上下文路徑和該servlet名來調用該servlet了。
1、在瀏覽器中直接調用
例1,把命名爲SnoopServlet的servlet放到examples  Web應用程序的/WEB-INF/classes目錄中,就能夠用下面的URL從瀏覽器來調用它了:
http://localhost:8080/examples/servlet/SnoopServlet
例2,若是把命名爲SnoopServlet的servlet放到ROOT  Web應用程序的/WEB-INF/classes目錄中,就能夠用下面的URL從瀏覽器來調用它了:
http://localhost:8080/servlet/SnoopServlet
注意:ROOT Web應用程序是默認Web應用程序,因此URL中不須要上下文路徑。
2、因爲servlet是經過Web服務器進行調用的,所以必須在html頁面中連接它
在html頁面中能夠經過<FORM>和<A>標記調用,在<FORM>中經過ACTION屬性調用,格式以下:
ACTION=" http://server:port/context_path/servlet/servlet_name "
在<A>標記中經過HREF屬性調用,格式以下:
HREF=" http://server:port/context_path/servlet/servlet_name "
固然 http://server:port 部分能夠省略。
對於例1用<FORM>標記的頁面調用方法爲:
<FORM ACTION=" http://localhost:8080/examples/servlet/SnoopServlet ">或
<FORM ACTION="examples/servlet/SnoopServlet">
對於例1用<A>標記的頁面調用方法爲:
<A HREF=" http://localhost:8080/servlet/SnoopServlet ">或
<A HREF="servlet/SnoopServlet">
此外,還能夠經過在/WEB-INF/web.xml 中定義servlet名稱、servlet映射來調用servlet,具體方法再也不介紹,有興趣可參考有關書籍。
相關文章
相關標籤/搜索