亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Tomcat入門

系統(tǒng) 2121 0

本章將演示如何開發(fā)、部署和運(yùn)行由主流轉(zhuǎn)換JavaBeans 組件和用JavaServer Pageh(JSP)創(chuàng)建的Web頁面客戶端組成的簡單Web應(yīng)用。該應(yīng)用首先部署并運(yùn)行在Apache Software Foundation(www.apache.org)開發(fā)出來的Java Servlet和JSP容器,即Tomcat上,且與Java Web Services Developer Pack(Java WSDP)包含在一起。本章作為引言,介紹了如何利用Tomcat部署Web服務(wù)和Web應(yīng)用。本章中的材料為該教程中其他章節(jié)提供了基礎(chǔ)。

設(shè)置


注意:在開始開發(fā)示例應(yīng)用前,將先閱讀關(guān)于該教程中的說明,然后繼續(xù)本節(jié)的學(xué)習(xí)。

獲取示例代碼

該示例的源代碼可以在<JWSDP_HOME>/docs/tutorial/examples/gs/,即解壓該教程的捆綁包時(shí)所創(chuàng)建的一個(gè)目錄中找到。如果想在線閱讀該教程,可以從下面的地址下載教程捆綁包:

示例代碼的布局

在該示例應(yīng)用中,源代碼目錄按照“實(shí)現(xiàn)Web服務(wù)程序設(shè)計(jì)的最佳做法”來組織,這些最佳做法的更多細(xì)節(jié)描述在<JWSDP_HOME>/docs/tomcat/appdev/deployment.html文件中。基本上而言,這個(gè)文檔說明了在創(chuàng)建Web應(yīng)用時(shí)檢查它的運(yùn)行時(shí)結(jié)構(gòu)很有用。Web應(yīng)用被定義為標(biāo)準(zhǔn)布局中目錄和文件的分層結(jié)構(gòu)。這樣的分層結(jié)構(gòu)可以通過它的未包裝格式訪問,其中在這種格式中每一個(gè)目錄和文件分別位于單獨(dú)的文件系統(tǒng)中,或者以Web應(yīng)用檔案(或WAR)文件這樣的包裝格式存在。前一種格式在開發(fā)期間更有用,而后者通常用在分發(fā)應(yīng)用以便安裝時(shí)。

為了便于創(chuàng)建所需格式的WAR文件,最好布置一下Tomcat在執(zhí)行與WAR格式本身所需結(jié)構(gòu)相同的應(yīng)用時(shí)所使用的文件。在該示例應(yīng)用中,<JWSDP_HOME>/docs/tutorial/examples/gs/是該應(yīng)用源代碼的根目錄。該應(yīng)用由如下文件組成,其中這些文件位于/gs目錄或者/gs的子目錄中。

  • /src/converterApp/ConverterBean.java——包含 yenAmount euroAmount屬性的get和set方法的 JavaBeans組件,其中這兩個(gè)屬性用來將美元轉(zhuǎn)換為日元并將日元轉(zhuǎn)換到歐元。

  • /web/index/jsp——Web客戶端,它是一個(gè)接受將被轉(zhuǎn)換的值的JavaServlet頁面、提交該值的按鈕,以及該轉(zhuǎn)換的結(jié)果。

  • /web/WEB-INT/web.xml——該應(yīng)用的部署描述符。在該簡單示例中,它包含示例應(yīng)用的一個(gè)描述。

  • Build.xml——利用Ant工具創(chuàng)建和部署Web應(yīng)用的生成文件。

關(guān)于WAR文件的更多信息可以在Web應(yīng)用檔案中找到。

Tomcat應(yīng)用開發(fā)指南中一個(gè)關(guān)鍵的建議是從包含可部署應(yīng)用的目錄分層中分離出包含源代碼的目錄分層。進(jìn)行這種分離有以下優(yōu)點(diǎn):

  • 如果該應(yīng)用的可執(zhí)行版本沒有混合在一起,源目錄的內(nèi)容就可以更簡單的管理、轉(zhuǎn)移、和備份。

  • 源代碼控制在僅包含源文件的目錄上更容易管理。

  • 當(dāng)該部署分層被隔離時(shí),組成應(yīng)用可安裝分發(fā)的文件更容易選中。

如 創(chuàng)建Ant的生成和部署文件一節(jié)中所述,Ant開發(fā)工具使得這種目錄分層的創(chuàng)建和處理變得相對(duì)簡單。

該文檔的其余部分演示了如何創(chuàng)建、構(gòu)建、部署和運(yùn)行該示例應(yīng)用。

設(shè)置路徑變量

在PATH環(huán)境變量的前面添加Java WSDP、Java2軟件開發(fā)工具包和標(biāo)準(zhǔn)版(J2SE,SDK)的bin目錄,以便Tomcat的Java WSDP啟動(dòng)腳本覆蓋其他的安裝,這一點(diǎn)非常重要。

另外,大多數(shù)例子是和Ant 1.5.1版的配置文件一起分發(fā)的,其中Ant是包含在Java WSDP中的一個(gè)可移植的生成工具。這個(gè)與Java WSDP一起發(fā)布的Ant的版本設(shè)置了jwsdp.home環(huán)境變量,這是示例生成文件所必須的。為保證能使用該Ant版本,必須在

PATH前面添加 < JWSDP_HOME >/jakarta-ant-1.5.1/bin

創(chuàng)建生成屬性文件

為了調(diào)用更多的Ant任務(wù),需要在主目錄內(nèi)布置命名為build.properties文件。在Solaris操作系統(tǒng)上,主目錄的格式通常為/home/your_login_name。在Windows操作環(huán)境中(例如Windows 2000)主目錄一般是c:\Document and Settings\yourProfile。

Build.properties文件包含的純文本格式的用戶名和密碼與安裝期間設(shè)置的用戶名和密碼匹配。在Java WSDP的安裝期間輸入的用戶名和密碼存儲(chǔ)在<JWSDP_HOME>/conf/tomcat-users.xml中。

出于安全目的,Tomcat Manager在同意你訪問服務(wù)器之前,首先要驗(yàn)證你(定義在build.properties文件中)是否有權(quán)安裝和重載這些應(yīng)用(定義在tomcat-user.xml中) 。

如果還沒有在主目錄中創(chuàng)建build.properties文件,那么可以這么做。文件將如下所示:

      username=
      
        
          your_username
        
      
    
      password=
      
        
          your_password
        
      
      
      
    

注意:出于安全目的,需要?jiǎng)?chuàng)建只有你自己才能讀取的build.properties文件。

安裝程序創(chuàng)建的Tomcat-users.xml文件如下所示:

      <?xml version='1.0'?>
    
      <tomcat-users>
    
      <role rolename="admin"/>
    
      <role rolename="manager"/>
    
      <role rolename="provider"/>
    
      <user username="
      
        
          your_username
        
      
      " password="
      
        
          your_password
        
      
      "
    
      ?????roles="admin,manager,provider"/>
    
      </tomcat-users>
      
      
    

快速概覽

既然已經(jīng)為運(yùn)行該示例應(yīng)用而下載了應(yīng)用程序并得到了環(huán)境設(shè)置,本小節(jié)將簡單地介紹運(yùn)行該應(yīng)用程序所需的步驟。每步討論的詳細(xì)細(xì)節(jié)可在相關(guān)頁面中找到。

1.遵循 設(shè)置 中的步驟。

2.改變該應(yīng)用的目錄<JWSDP_HOME>/docstutorial/examples/gs(見 創(chuàng)建Getting Started應(yīng)用 )。

3.通過在終端提示窗口中輸入下列命令編譯源文件(見 使用Ant構(gòu)建Getting Started應(yīng)用 ):

?? ant build

?? 編譯錯(cuò)誤 一節(jié)中列出了其中可能出現(xiàn)的編譯錯(cuò)誤。

?????? ?????4.通過在終端提示窗口中輸入下列命令啟動(dòng)Tomcat(見 啟動(dòng)Tomcat

??????????????? <JWSDP_HOME>/bin/startup.sh????????(Unix platform)

<JWSDP_HOME>\bin\startup???????????(Microsoft Windows)

??????????? 5.通過在終端提示窗口中輸入下列命令來利用Ant部署Web應(yīng)用(見 使用Ant安裝應(yīng)用程序

?????????????? ant install

?????????????? 部署中出現(xiàn)的錯(cuò)誤見 部署錯(cuò)誤 。

??????????? 6.啟動(dòng)Web瀏覽器,輸入下列URL運(yùn)行示例應(yīng)用程序(見 運(yùn)行Gerzring Started應(yīng)用程序 ):

??????? ????????http://localhost:8080/GSApp

?????????? 7.通過在終端提示窗口中輸入下列命令關(guān)閉Tocmat:(見 關(guān)閉Tomcat

????????????? <JWSDP_HOME>/bin/shutdown.sh????????(Unix platform)

<JWSDP_HOME>\bin\shutdown???????????(Microsoft Windows)

創(chuàng)建Getting Started應(yīng)用

示例應(yīng)用程序包含ConverterBean類、Web組件、用來構(gòu)建并運(yùn)行應(yīng)用程序的文件,以及部署描述符。對(duì)于本示例,我們將創(chuàng)建一個(gè)命名為gs/的頂級(jí)項(xiàng)目源目錄。該示例應(yīng)用程序中的所有文件都創(chuàng)建自這個(gè)根目錄。

ConverterBean組件

該示例程序中ConverterBean組件通常與JSP頁面結(jié)合起來使用,其結(jié)果應(yīng)用是一個(gè)能夠?qū)⒚涝D(zhuǎn)換成日元并將日元轉(zhuǎn)換成歐

元的表單。ConverterBean組件的源代碼在<JWSDP_HOME>/doca/tutorial/example/gs/src/converterApp/目錄內(nèi)。

ConverterBean組件編碼

該示例中的ConverterBean組件包含兩個(gè)屬性,yenAmount和euroAmount,以及這些屬性的set和get方法。ConverterBean組件的源代碼如下:

      //ConverterBean.java
    
      package converterApp;
    
      ?
    
      import java.math.*;
    
      ?
    
      public class ConverterBean{
    
      ?
    
      ??private BigDecimal yenRate;
    
      ??private BigDecimal euroRate;
    
      ??private BigDecimal yenAmount;
    
      ??private BigDecimal euroAmount; 
    
      ?
    
      ??/** Creates new ConverterBean */
    
      ??public ConverterBean() {
    
      ????yenRate = new BigDecimal ("138.78");
    
      ????euroRate = new BigDecimal (".0084");
    
      ????yenAmount = new BigDecimal("0.0");
    
      ????euroAmount = new BigDecimal("0.0");
    
      ??}
    
      ??public BigDecimal getYenAmount () {
    
      ????return yenAmount;
    
      ??}
    
      ??public void setYenAmount(BigDecimal amount) {
    
      ????yenAmount = amount.multiply(yenRate);
    
      ????yenAmount =? yenAmount.setScale(2,BigDecimal.ROUND_UP);
    
      ??}
    
      ??public BigDecimal getEuroAmount () {
    
      ????return euroAmount;
    
      ??}
    
      ??public void setEuroAmount (BigDecimal amount) {
    
      ????euroAmount = amount.multiply(euroRate);
    
      ????euroAmount = 
    
      ??????euroAmount.setScale(2,BigDecimal.ROUND_UP);
    
      ??}
    
      }
      
      
    

Web客戶端

Web客戶端包含在JSP頁面<JWSDP_HOME>/docs/tutorial/examples/gs/web/index.jap中。JSP頁面是包含靜態(tài)和動(dòng)態(tài)內(nèi)容的基于文本的文檔。靜態(tài)內(nèi)容能表示成基于任何文本格式的模板數(shù)據(jù),比如HTML、WML、或者XML格式。JSP元素構(gòu)成了動(dòng)態(tài)內(nèi)容。

Web客戶端編碼

JSP頁面index.jsp用來創(chuàng)建表單,該表單在應(yīng)用的客戶端運(yùn)行時(shí)出現(xiàn)在Web瀏覽器中。JSP頁面是靜態(tài)HTML標(biāo)記和JSP元素的典型混合體。如果開發(fā)過Web頁面,應(yīng)該熟悉創(chuàng)建表單<form>和菜單<select>的HTML文檔結(jié)構(gòu)聲明(<head>,<body>,等等)和HTML聲明。示例中的這些突出行包含了下列JSP結(jié)構(gòu)類型:

·?? 指示( <%@page ... %> )ConverterBean類中的導(dǎo)入類,并且設(shè)置頁面返回的內(nèi)容類型。

·?? 這個(gè)jsp:usebean元素聲明頁面將使用存儲(chǔ)在指定作用域內(nèi)并可從該作用域訪問的一個(gè)bean。默認(rèn)的作用域是頁面,因此

我們就不明確在示例中設(shè)置它。

·?? jsp:setProperty元素 用來設(shè)置JSP頁面中的JavaBean組件屬性。

·?? Jsp.getProperty元素用來檢索JSP頁面中的JavaBean組件。

·?? Scriplets(<% ...% >)檢索amount請求參數(shù)的值,將其轉(zhuǎn)換成BigDecimal,并且將該值轉(zhuǎn)換為日元或者歐元。

·?? 表達(dá)式(<% = ...% >)將amount的值插入到響應(yīng)中。

Index.jsp源代碼如下:

      <%-- index.jsp --%>
    
      <%@ page import="converterApp.ConverterBean,java.math.*" %>
    
      <%@ page contentType="text/html; charset=ISO-8859-5" %>
    
      ?
    
      <html>
    
      <head>
    
      <title>Currency Conversion Application</title>
    
      </head>
    
      ?
    
      <body bgcolor="white">
    
      "<jsp:useBean id="converter" 
    
      class="converterApp.ConverterBean"/>
    
      ?
    
      <h1><FONT FACE="ARIAL" SIZE=12>Currency Conversion Application 
    
      </FONT></h1>
    
      <hr>
    
      <p><FONT FACE="ARIAL" SIZE=10>Enter an amount to convert:</p> 
    
      </FONT>
    
      <form method="get">
    
      <input type="text" name="amount" size="25">
    
      <br>
    
      <p>
    
      <input type="submit" value="Submit">
    
      <input type="reset" value="Reset">
    
      </form>
    
      <%
    
      String amount = request.getParameter("amount");
    
      ?
    
      if ( amount != null && amount.length() > 0 ) {
    
      ?
    
      %>
    
      <p><FONT FACE="ARIAL" SIZE=10><%= amount %> dollars are? 
    
      ?
    
      <jsp:setProperty name="converter" property="yenAmount" 
    
      value="<%= new BigDecimal(amount)%>" />
    
      <jsp:getProperty name="converter" property="yenAmount"? /> Yen. 
    
      ?
    
      <p><%= amount %> Yen are
    
      ?
    
      <jsp:setProperty name="converter" property="euroAmount" 
    
      value="<%= new BigDecimal(amount)%>" />
    
      <jsp:getProperty name="converter" property="euroAmount"? /> 
    
      Euro. </FONT>
    
      ?
    
      <% 
    
      } 
    
      %>
    
      ?
    
      </body>
    

</html>

Tomcat入門


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦?。?!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 国产50岁老熟妇毛片 | 欧美久久久久欧美一区 | 久久国产精品高清一区二区三区 | 在线看福利视频120秒 | 精品在线观看一区 | 亚洲国产99在线精品一区69堂 | 国产视频一区二区三区四区 | 国产情侣久久精品 | 香蕉视频网站入口 | 九九热在线免费视频 | 日本一级毛片片在线播放 | 国产区成人综合色在线 | 日本精品中文字幕在线不卡 | 五月天亚洲视频 | 奇米影视四色中文字幕 | 亚洲人成一区二区三区 | 97看片网| 久久大香伊蕉在人线国产昨爱 | 97久久国产一区二区三区四区 | 中国国产一级毛片 | 久久99精品久久久久久久不卡 | 国产一级特黄老妇女大片免费 | 日韩 欧美 自拍 在线 视频 | 国产一区二区三区免费看 | 色综合久久中文字幕网 | 亚洲欧美日韩中文字幕在线一 | 天天干干干干 | 色婷婷综合欧美成人 | 一级aa 毛片高清免费看 | 亚洲精品乱码一区二区在线观看 | 久久精品视频亚洲 | 伊人网站 | 最新毛片久热97免费精品视频 | 伊人一伊人色综合网 | 久久99九九 | 久草在线资源网 | 亚洲精品色综合色在线观看 | 久久亚洲这里只有精品18 | 日本另类αv欧美另类aⅴ | 午夜视频网址 | 久久久久亚洲视频 |