熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

使用Ant和Tomcat創建Web應用

2013-11-23 20:36:36  來源: Java開源技術 

  應當盡量避免使用JSPs實現復雜邏輯那種程序也許容易寫但難以調試而且幾乎不可能被理解和維護好的解決方案是用JSPs負責Web頁面的顯示(這正是JSPs擅長的)把復雜邏輯的實現交給Java如對數據庫的訪問這樣程序不但比較容易實現和調試而且易於理解和維護
  
  這個Web應用程序可以運行在專用Web服務器或者是個人電腦上操作系統可以是WindowsLinux或者Mac OS所需的軟件包有Java運行時環境(JDK或以上版本)Tomcat最新版本(Tomacat 或以上版本)以及Ant開發工具(Ant 或以上版本)Ant用於創建Web應用程序包(WAR)以及在Tomcat上安裝部署WAR文件配置關系數據庫接口javaxsqlDataSource所有以上提到的軟件包都可以通過Internet免費獲得
  
  這個Web應用程序還需要一個數據庫幾乎所有支持SQL而且有JDBC驅動的關系數據庫都可以MySQL是一個符合條件的不錯選擇從可以得到MySQL的最新版本以及它的JDBC驅動Connector/J
  
  為了讓Ant與Tomact管理軟件協同工作需要將catalinaantjar從Tomcat的server/lib目錄拷貝到Ant的lib目錄下將你的數據庫JDBC驅動程序復制到Tomcat的common/lib目錄下使Tomcat和其上的Web應用程序可以訪問數據庫最後必須建立Tomcat的admin和manager角色(roles)及其用戶名和密碼編輯Tomcat的conf目錄下的tomcatuserxml文件如下
  
  <?xml version=?>
  <tomcatusers>
  <role rolename=admin/>
  <role rolename=manager/>
  <user username=tomcatusername password=tomcatpassword
  roles=adminmanager/>
  </tomcatusers>
  我的開發環境是Apple Cube運行Mac OS X 操作系統軟件包JDK Tomcat AntMySQL 及Connector/J beta操作系統升級到Mac OS X 未出現任何問題同樣Tomcat升級到也沒出現問題
  
  Web應用程序
  本文通過一個叫做AddressBook的簡單地址簿程序來說明如何應用將要介紹的技術這個應用程序的目的不是建立一個地址簿的正式版本它僅僅是一個例子
  
  AddressBook中的Java程序
  AddressBook中包含三個Java程序顯示了他們在Tomcat中的是如何使用的
   educitycn/img_///jpg>
  AddressBookContextListener
  
  AddressBookContextListener是一個servlet上下文監聽器它在AddressBook開始和關閉時被調用可以使用AddressBook的部署描述文件webxml配置當AddressBook開始運行時創建一個AddressesDB的實例並將它作為一個上下文屬性保存而當AddressBook運行結束時從上下文屬性中取出AddressesDB對象並關閉數據庫連接在運行過程中當JSPs需要連接數據庫它們將訪問上下文屬性中的AddressesDB對象
  
  細節請看ContextListenerjava的完整的帶有注釋的源代碼
  
  AddressBook AddressesDB
  
  AddressBook AddressesDB用於操作地址數據庫它的構造函數建立一個數據庫連接這個會話可以被多個Web會話共享這個類提供多個數據庫連接函數
  
  &#; getAddress(id)返回用id標識的地址如果地址沒找到則返回null
  
  &#; addAddress(address)添加地址並返回改變的行數
  
  &#; deleteAddress(id)刪除地址並返回改變的行數
  
  &#; getAddresses()返回數據庫中所有地址的聚集如果數據庫無效返回null
  
  &#; close()關閉數據庫連接
  
  細節請看AddressesDBjava的完整的帶有注釋的源代碼
  
  AddressBook Address
  
  AddressBook Address是用於描述地址的類在用JSPs編程時用類集中描述數據仍不失為一個好的方法在AddressBook中使用的就是這種方法
  
  AddressBook Address的構造函數將地址內容保存於對象中這個類中包括取得單個地址域的普通get函數兩個獲取合並的地址域的get函數以及一個地址比較函數
  
  &#; Address(idsurnamefisrtnamestreetdistrictcitypostcode)
  
  &#; getId()
  
  &#; getSurname()
  
  &#; getFirstname()
  
  &#; getStreet()
  
  &#; getDistrict()
  
  &#; getCity()
  
  &#; getPostcode()
  
  &#; getFullname()返回firstname+ +surname
  
  &#; getFulladdress()返回street+ +district+ +city+ +postcode
  
  &#; compareTo(address)返回負整數正整數分別對應surname和firstname大於等於小於這個surname和firstname比較是大小寫不敏感的在存儲地址聚集時使用
  
  細節請看Addressjava的完整的帶有注釋的源代碼
  
  AddressBook中的JSP頁面
  AddressBook有七個JSP頁每個代表一個對AddressBook數據庫進行獨立操作的Web頁每個頁面數據庫的狀態與前頁數據庫的狀態是相互獨立的如果數據庫被其他用戶改變了Web頁面將檢測到並產生相應的動作例如如果你正在修改一個地址而另一個用戶在確認修改之前刪除了該地址JSP將通知你修改不存在的地址失敗
  
  圖顯示JSPs之間的邏輯關系
   educitycn/img_///jpg>
  Homejsp是AddressBook的主頁也就是用戶使用AddressBook時見到的第一個頁面它用一個表顯示Address庫中的所有地址表中的每一行顯示一個地址以及刪除或修改地址的連接頁面底部有一個添加新地址的連接配置信息見webxml notes
  
  &#; 添加地址連接將控制權交給RequestAddjsp
  
  &#; 刪除地址連接將控制權交給RequestDeletejsp同時將要刪除的地址id傳遞給該頁
  
  &#; 修改地址連接將控制權交給RequestModifyjsp同時將要修改的地址id傳遞給該頁
  
  細節請看Homejsp的完整的帶有注釋的源代碼
  
  RequestAddjsp
  
  RequestAddjsp提供一個地址表單用於輸入新地址頁面底部的取消連接可以取消這次操作
  
  &#; 提交表單將新的地址域值以及控制權交給DoAddjsp
  
  &#; 取消操作將控制權交給Homejsp
  
  細節請看RequestAddjsp的完整的帶有注釋的源代碼
  
  DoAddjsp
  
  DoAddjsp顯示接收到的地址域值然後將新地址添加到數據庫並顯示是否成功的信息頁面底部有一個繼續連接
  
  &#; 點擊繼續連接回到Homejsp
  
  細節請看DoAddjsp的完整的帶有注釋的源代碼
  
  RequestDeletejsp
  
  RequestDeletejsp讀取得到的id相應的地址該頁面在表中顯示地址域以便讓你確認刪除的是正確的地址頁面底部的兩個連接分別是繼續請求的繼續連接和取消請求的取消連接
  
  &#; 選擇繼續連接將轉到DoDeletejsp並傳遞要刪除的地址id
  
  &#; 選擇取消連接回到Homejsp
  
  細節請看RequestDeletejsp的完整的帶有注釋的源代碼
  
  DoDeletejsp
  
  DoDeletejsp讀取傳遞給它的id在表中顯示該id對應的地址從數據庫中刪除它並顯示是否成功頁面底部是繼續連接
  
  &#; 選擇繼續連接回到Homejsp
  
  細節請看DoDeletejsp的完整的帶有注釋的源代碼
  
  RequestModifyjsp
  
  RequestModifyjsp顯示一個表單並填入當前的地址同時提供提交按鈕和取消連接
  
  &#; 提交表單將新的地址域值以及控制權交給DoModifyjsp
  
  &#; 選擇取消連接回到Homejsp
  
  細節請看RequestModifyjsp的完整的帶有注釋的源代碼
  
  DoModifyjsp
  
  DoModifyjsp顯示接收到的修改的地址域值然後修改數據庫中的地址記錄並返回成功與否頁面底部是繼續連接
  
  &#; 選擇繼續連接回到Homejsp
  
  細節請看DoModifyjsp的完整的帶有注釋的源代碼
  
  AddressBook的Addresses數據庫表
  
  如何建立數據庫取決於所用的數據庫軟件若你用的不是MySQL以下的步驟就需要根據情況修改AddressBook只有一個表Addresses保存在數據庫Public中表Addresses有七個域
  
  &#; id主鍵自動增長的數據域
  
  &#; surname長度為的字符域保存聯系人的姓
  
  &#; firstname長度為的字符域保存聯系人的名
  
  &#; street長度為的字符域保存地址的第一行
  
  &#; district長度為的字符域保存地址的第二行
  
  &#; city長度為的字符域保存城市名
  
  &#; postcode長度為的字符域保存郵政編碼
  
  首先建立MySQL數據庫(Mac OS X 用管理員權限啟動mysql命令行工具需要的話輸入密碼創建Public數據庫以及賬號mysqlusername密碼mysqlpassord命令如下
  
  # mysql u root p
  mysql> create database Public;
  mysql> grant all privileges on Public* to mysqlusername@localhost identified by mysqlpassword wi
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28752.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.