2014年5月30日 星期五

Tomcat & Servlet/JSP 基礎應用


Server系統:Windows server 2008 R2
Tomcat版本: Tomcat 7.0

項目
1.更改Port
2.自訂首頁
3.自訂網頁目錄
4.自訂錯誤訊息
5.製作簡易互動網頁並測試(以純文字E-MAIL為例)

=======================================================


1.更改Port

  • 修改 \...\Tomcat 7.0\conf\路徑下的server.xml檔案
  • 大約在第70行附近 <Connector port=“8080” protocol=“HTTP/1.1” connectionTimeout=“20000” redirectPort="8443" />
  • 將8080改為其他的(如80),之後重開Tomcat即可。



  • 修改之後,下次造訪本網站時,不需要再輸入8080的port即可成功造訪首頁



2.自訂首頁
  • 由於Tomcat的預設首頁路徑為 \...\Tomcat 7.0\webapps\ROOT\下的index.jsp檔案,所以如果我們要自訂首頁,有兩種方式,一種是直接修改這個檔案;另一種是將預設的首頁路徑改掉,本文採用後者的方法。
  • 我們可以將從 \...\Tomcat 7.0\conf\下的web.xml檔案中,將首頁指定成自己定義的首頁。
  • 在最底下找到一個<welcome-file-list>的標籤,將裡面的內容修改為自己做好的首頁名稱。


  • 而我們必須自己製作一個新的首頁,必須放在和預設首頁同一層目錄下。
  • 如此首頁就會變成我們自定義的畫面了。



3.自訂網頁目錄
  • 我們可以在Tomcat的webapps目錄下,新增一個自己的專案(資料夾),其中必須和ROOT結構類似,包含一個WEB-INF的資料夾,底下包含一個web.xml檔(可以先從ROOT複製),以及存放servlet的classes資料夾。
  • 如右圖,有一個專案資料夾名為Test,底下有自訂錯誤頁面、專案首頁、圖片等等,另有一個WEB-INF的資料夾。
  • 如果.class檔案不放在classes資料夾中,會發生錯誤。


4.自訂錯誤訊息
  • 由於Tomcat的預設錯誤訊息是給Server管理員看的,有詳細錯誤資訊,但為了不造成使用者的困擾,以及安全性的考量,我們可以自訂錯誤訊息。
  • 如右邊的圖片,是一個顯示404錯誤的圖片,我們可以把這個圖片放進網頁中,然後進行一些設定,讓Tomcat知道發生404錯誤時,要顯示這個網頁。
  • 首先,需自製一個404.html的網頁,並顯示404錯誤圖片。
  • 然後放到測試專案的目錄下 \...\Tomcat 7.0\webapps\Test
  • 接著修改WEB-INF裡面的web.xml檔案,在<web-app>…</web-app>之間加入幾行原始碼:



  • 照理來說這樣就可以在發生404錯誤時,顯示我們自製的頁面了,但實際測試時,卻顯示這樣的畫面:


  • 這是因為IE瀏覽器會顯示他們自己的預設畫面,只要修改IE的設定就可以顯示我們要的頁面....
  • 但考慮到大部分的IE使用者都是使用預設設定,所以我們必須修改一下自製的404網頁。
  • 在原本的html檔開頭加上下列原始碼,並且另存成.jsp的檔案。(404.html --> 404.jsp)

    <% response.setStatus(200); // 200 = HttpServletResponse.SC_OK %>
  • web.xml檔案中的原始碼,檔案名稱也要跟著改:
5.製作簡易互動網頁並測試
  • 若以Servlet/JSP為基礎製作一組互動網頁,我們必須要有一個html檔案來顯示資訊,以及接收使用者在瀏覽器輸入的資料,在經由Servlet/JSP檔案處理之後,顯示輸出畫面。
  • 在本文中,設計一個純文字的e-mail當做範例,說明Servlet/JSP如何接收、處理、傳遞訊息。

  • 這是要接收使用者輸入的html檔案 (InputTest.html)
  • 在第9-16行,使用一個表單來接收輸入的資料,method是Post,action要是相對應的Servlet/JSP的檔案名稱。
  • 在這個例子中有兩個讓使用者輸入的文字框,分別為第11行的email以及第14行的ctx。



  • 這是Servlet(InputTest.class),它會接收剛才InputTest.html的資料,然後產生另一個html檔案將資料顯示出來。
  • 在第12行宣告一個字串變數ee,儲存剛才email文字框中,使用者輸入的資料;在第13行宣告一個字串變數cc,儲存剛才ctx文字框中,使用者輸入的資料。
  • 然後在第18行顯示出email,在第20行顯示出ctx內容。



最後,附上Test專案資料夾供各位參考:點我下載

相關:Tomcat, Windows server, Servlet, JSP


1 則留言:

  1. Titanium Alloys | TITanium Games
    TITanium Games titanium nitride coating service near me is a brand-new alloys game. This is an online experience titan metal with titanium necklace stunning, futuristic and exciting babylisspro nano titanium hair dryer features. TITanium ford fusion titanium Games is an

    回覆刪除