隨筆 - 100  文章 - 50  trackbacks - 0
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          我收藏的一些文章!

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          本章介紹如何在Tomcat上創(chuàng)建和發(fā)布Web應(yīng)用。這里首先講解Tomcat的目錄結(jié)構(gòu)以及Web應(yīng)用的目錄結(jié)構(gòu),接著介紹如何將HTML、 Servlet、JSP和Tag Library部署到Web應(yīng)用中,然后介紹把整個(gè)Web應(yīng)用打包并發(fā)布的方法,最后介紹如何在Tomcat上配置虛擬主機(jī)。

          本章側(cè)重于討論Web應(yīng)用的結(jié)構(gòu)和發(fā)布方法,所以沒(méi)有對(duì)本章的Servlet和JSP的例子進(jìn)行詳細(xì)解釋,關(guān)于Servlet和JSP的技術(shù)可以分別參考其它章節(jié)的內(nèi)容。

          2.1 Tomcat的目錄結(jié)構(gòu)

          在Tomcat上發(fā)布Web應(yīng)用之前,首先要了解Tomcat的目錄結(jié)構(gòu)。Tomcat的目錄結(jié)構(gòu)參見(jiàn)表2-1,這些目錄都是的子目錄。

          表2-1 Tomcat的目錄結(jié)構(gòu)

          目 錄 描 述
          /bin 存放在Windows平臺(tái) 以及Linux平臺(tái)上啟動(dòng) 和關(guān)閉Tomcat的腳本文件
          /conf 存放Tomcat服務(wù)器的各種配置文件, 其中最重要的配置文件是server.xml
          /server 包含3個(gè)子目錄: classes、lib和webapps
          /server/lib 存放Tomcat服務(wù)器所需的各種JAR文件
          /server/webapps 存放Tomcat自帶的兩個(gè)Web應(yīng)用: admin應(yīng)用和manager應(yīng)用
          /common/lib 存放Tomcat服務(wù)器以及所有 Web應(yīng)用都可以訪問(wèn)的JAR文件
          /shared/lib 存放所有Web應(yīng)用都可以訪問(wèn)的JAR文件
          /logs 存放Tomcat的日志文件
          /webapps 當(dāng)發(fā)布Web應(yīng)用時(shí), 默認(rèn)情況下把Web應(yīng)用 文件放于此目錄下
          /work Tomcat把由JSP生成的 Servlet放于此目錄下

          從表2-1可以看出,在/server/lib目錄、/common/lib和/shared/lib目錄下都可以放JAR文件,它們的區(qū)別在于:

          在/server/lib目錄下的JAR文件只可被Tomcat服務(wù)器訪問(wèn)

          在/shared/lib目錄下的JAR文件可以被所有的Web應(yīng)用訪問(wèn),但不能被Tomcat服務(wù)器訪問(wèn)

          在/common/lib目錄下的JAR文件可以被Tomcat服務(wù)器和所有Web應(yīng)用訪問(wèn)

          此外,對(duì)于下面將要介紹的Java Web應(yīng)用,在它的WEB-INF目錄下,也可以建立lib子目錄,在lib子目錄下可以放各種JAR文件,這些JAR文件只能被當(dāng)前Web應(yīng)用訪問(wèn)。

          在以上提到的lib目錄下都只接受JAR文件,如果類壓縮文件為ZIP文件,應(yīng)該將它展開(kāi),重新打包為JAR文件再拷貝到lib目錄中。如果直接將ZIP文件拷貝到lib目錄,則會(huì)發(fā)現(xiàn)Tomcat服務(wù)器仍然找不到相關(guān)的類。打包命令參見(jiàn)2.2.8節(jié)。

          2.2 創(chuàng)建和發(fā)布Web應(yīng)用

          Java Web應(yīng)用由一組靜態(tài)HTML頁(yè)、Servlet、JSP和其他相關(guān)的class組成。每種組件在Web應(yīng)用中都有固定的存放目錄。Web應(yīng)用的配置信息存放在web.xml文件中。在發(fā)布某些組件(如Servlet)時(shí),必須在web.xml文件中添加相應(yīng)的配置信息。

          2.2.1 Web應(yīng)用的目錄結(jié)構(gòu)

          Web應(yīng)用具有固定的目錄結(jié)構(gòu),這里假定開(kāi)發(fā)一個(gè)名為helloapp的Web應(yīng)用。首先,應(yīng)該在/webapps目錄下創(chuàng)建這個(gè)Web應(yīng)用的目錄結(jié)構(gòu),參見(jiàn)表2-2。

          表2-2 Web應(yīng)用的目錄結(jié)構(gòu)

          目 錄 描 述
          /helloapp Web應(yīng)用的根目錄, 所有的JSP和HTML文件 都存放于此目錄下
          /helloapp/WEB-INF 存放Web應(yīng)用的發(fā)布描述文件web.xml
          /helloapp/WEB-INF/classes 存放各種class文件, Servlet類文件也放于此目錄下
          /helloapp/WEB-INF/lib 存放Web應(yīng)用所需的各種JAR文件

          例如,在這個(gè)目錄下,可以存放JDBC驅(qū)動(dòng)程序的JAR文件

          從表2-2中,我們看到在classes以及l(fā)ib子目錄下,都可以存放Java類文件。在運(yùn)行過(guò)程中,Tomcat的類裝載器先裝載classes目錄下的類,再裝載lib目錄下的類。因此,如果兩個(gè)目錄下存在同名的類,classes目錄下的類具有優(yōu)先權(quán)。

          本章介紹的helloapp應(yīng)用的目錄結(jié)構(gòu)如圖2-1所示,helloapp應(yīng)用在Windows資源管理器中的展開(kāi)如圖2-2所示。

          在helloapp應(yīng)用中創(chuàng)建了如下組件:

          HTML組件:index.htm

          JSP組件:login.jsp和hello.jsp

          Servlet組件:DispatcherServlet

          這些組件之間的鏈接關(guān)系為:

          index.htm→login.jsp→DispatcherServlet→hello.jsp 圖2-1 helloapp應(yīng)用的目錄結(jié)構(gòu) 圖2-2 helloapp應(yīng)用在Windows資源管理器中的展開(kāi)圖

          2.2.2 web.xml文件

          Java Web應(yīng)用通過(guò)一個(gè)基于XML的發(fā)布描述符文件來(lái)配置其發(fā)布信息,這個(gè)文件名為web.xml,它存放于WEB-INF子目錄下。在附錄B中將詳細(xì)介紹web.xml的配置方法,在附錄C中將介紹XML的基本知識(shí)。在web.xml文件中可包含如下配置信息:

          Servlet的定義

          Servlet的初始化參數(shù)

          Servlet以及JSP的映射

          安全域配置參數(shù)

          welcome文件清單

          資源引用

          環(huán)境變量的定義

          現(xiàn)在,創(chuàng)建一個(gè)默認(rèn)的web.xml文件,并把這個(gè)文件放到WEB-INF目錄中。

          <?xml version="1.0" encoding="ISO-8859-1"?>

          <!DOCTYPE web-app PUBLIC
          '-//Sun Microsystems,
          Inc.//DTD Web Application 2.3
          //EN'
          'http://java.sun.com/
          j2ee/dtds/web-app_2_3.dtd'>

          <web-app>
          </web-app>

          以上web.xml文件的第一行指定了XML的版本和字符編碼,第二行DOCTYPE指定文檔類型,接下來(lái)聲明了一個(gè)元素,所有關(guān)于Web應(yīng)用的配置元素都將加入到這個(gè)元素中。

          2.2.3 在server.xml中加入元素

          元素是/conf/server.xml中使用最頻繁的元素,它代表了運(yùn)行在上的單個(gè)Web應(yīng)用。一個(gè)中可以有多個(gè)元素。每個(gè)Web應(yīng)用必須有惟一的URL路徑,這個(gè)URL路徑在元素的path屬性中設(shè)定。例如,在名為"localhost"的元素中加入如下元素:

          <!-- Define the default virtual host -->
          <Host name="localhost" debug="0" appBase="webapps"
          unpackWARs="true" autoDeploy="true">
          ……
          ……
          <Context path="/helloapp"
          docBase="helloapp" debug="0"
          reloadable="true"/>

          </Host>

          Context元素的各個(gè)屬性的說(shuō)明參見(jiàn)表2-3。

          表2-3 Context元素的屬性

          屬 性 描 述
          path 指定訪問(wèn)該Web應(yīng)用的URL入口
          docBase 指定Web應(yīng)用的文件路徑,可以給定絕對(duì)路徑,也可以給定相對(duì)于Host的appBase屬性的相對(duì)路徑(關(guān)于Host的appBase屬性參見(jiàn)2.3節(jié))。如果Web應(yīng)用采用開(kāi)放目錄結(jié)構(gòu),則指定Web應(yīng)用的根目錄;如果Web應(yīng)用是個(gè)WAR文件,則指定WAR文件的路徑
          reloadable 如果這個(gè)屬性設(shè)為true, Tomcat服務(wù)器在運(yùn)行狀態(tài)下會(huì)監(jiān)視在WEB-INF/classes 和WEB-INF/lib目錄下class文件的改動(dòng)。如果監(jiān)測(cè)到有class文件被更新,服務(wù)器會(huì)自動(dòng)重新加載Web應(yīng)用

          在開(kāi)發(fā)階段,將reloadable屬性設(shè)為true,有助于調(diào)試Servlet和其他的class文件。但是由于這一功能會(huì)加重服務(wù)器的運(yùn)行負(fù)荷,因此建議在Web應(yīng)用的產(chǎn)品發(fā)布階段,將這個(gè)屬性設(shè)為false。

          自:
          http://qingfengxiyu.spaces.live.com/blog/cns!e5f7a3aef9b09ed!149.entry

          posted on 2007-03-31 17:50 fly 閱讀(1339) 評(píng)論(0)  編輯  收藏 所屬分類: jsp學(xué)習(xí)
          主站蜘蛛池模板: 镇江市| 雷山县| 莱州市| 太仓市| 吉林省| 盐城市| 华安县| 东至县| 新郑市| 贵定县| 麟游县| 靖远县| 抚顺县| 通江县| 墨江| 电白县| 武鸣县| 东明县| 昔阳县| 台中市| 桃园县| 靖宇县| 易门县| 滁州市| 娄烦县| 广南县| 普陀区| 隆昌县| 阿拉善盟| 盐山县| 颍上县| 大厂| 菏泽市| 开江县| 柏乡县| 朝阳县| 宁武县| 新巴尔虎左旗| 水富县| 太原市| 滦南县|