wiki:waue/2010/0601

Version 9 (modified by waue, 14 years ago) (diff)

--

JSP & Servlet on Eclipse
eclipse 3.5 + WTP 專案

本篇主要是依照這篇 Servlet & JSP / Eclipse WTP 來學習如何用 Eclipse 開發 jsp & servlet

原文:http://www.vogella.de/articles/EclipseWTP/article.html

此文章圖文並茂,寫得也很清楚,是個入門的好文章。

這邊是做個學習筆記,在容易忽略或是想到癥結點下一些註解,以便日後複習之用。

各節註解

1. Eclipse Web Tool Platform

Eclipse 有 all in one 的封裝,但這邊是用基本封裝,之後再額外 install ,雖然比較慢,但是因為Eclilpse plugin 有套件版本相依問題,如果預設裝了這個,但是卻是較舊或較新版本,有可能導致之後要安裝的套件衝突於之前安裝過套件的版本,因此還是建議初期套件越少越好,要用到再Install

3. Installation of WTP 部份

注意 WTP 要額外安裝網址 http://download.eclipse.org/webtools/updates/ , 除了選擇wtp 相關套件外 ,還要選擇 web,xml 那類的其他套件,文中提到不要安裝PHP Develop ,也許有差,如我有兩台電腦, A: all-in-one + pdt +wtp , B: pure + wtp without php ,而A電腦在 4. WTP Configuration 步驟 要裝tomcat server 就出現問題,但 B 正常

4.1. Server

只有講到把 view 開出來,但是要從這個window 掌控本機的tomcat ,要從這個window 把 server 建立起來,如果 4. ... 的步驟有做的話,這邊就只要引入就可以了,若沒有也可從這邊的連結建立

  • 第四步驟做完,則可以透過 Eclipse 的 Servers 這個 window ,對 tomcat 進行管控

5.1 Servlets

雖然 new project 起來,web項目只有 靜態 與 動態 網頁專案可以建立,但要建立檔案,web 內則有許多檔案類型可以建立。

開發 java 網頁的視野是用 Java EE 這個 Perspective

作者的project name 為 de.vogella.wtp.filecounter ,我簡化project 名稱為 jsp

5.2 Creating Data Access Object

de.vogella.wtp.filecounter.dao 改為 jsp

file -> new -> other ==> java .( package ) -> next ==> Name: dao 

之後在 Java Resources:src 內就出現剛剛建立的package : dao

接著在dao 圖示點選右鍵 -> new -> class ==> 步驟省略, 將 FileDao?.java 建好後,填入作者給的code , 5.2 完成

5.3. Creating the Servlet

雖然在 WebContent? 的目錄點右鍵新增 FielCounter? 檔,但程式還是會產生在 Java Resources 資料夾內

而透過servlet 的 wizard ,Eclipse 幫我們產生出來的 java檔會有 doGet, doPost, 建構值, 以及 serialVersionUID

5.4. Run

run 的時候 選 run on server ,並選擇我們之前build 好的server 即可,可以run 的話,在原始碼旁邊會跳出執行的網頁

挑選server 時,可以選 always use the server

有將印出的字改成中文,會有亂碼問題,即使 server.xml 已經正確配置成 utf-8

以前看到的servlet code 再用 out.print 時,需要 <html><body> </body> ...等html的標籤印出,但這邊的code 不用

6. JavaServer? Pages (JSPs)

可以不用另外新增一個project ,沿用之前的project 也可以,作者是希望能有所區分,並對 第七節 撲梗

6.2. Create the JSP

範例程式 FirstJSP 程式的內 ("dd/mm/yyyy") 改成 ("dd/MM/yyyy") 才會顯示正確的 日/月/年

請務必對 "WebContent?" 這個資料夾操作右鍵->new -> jsp ,否則會得到以下結果

 原作者要我們新增一個專案來測試,但我在上個專案下,又建立一個 jsp package ,然後把 test.jsp 放在這個 package 內,
無法讀取的到只好用作者的方法繼續測試,結果http://localhost:8080/de.vogella.wtp.jspsimple/FirstJSP.jsp 頁面還是無法出現

6.4. Adjust web.xml

近一步看到 WebContent? 資料夾裡面,除了有我們放得jsp之外,還有兩個資料夾,其中 WEB-INF 裡面的 web.xml 記載著:

servlet 的名稱、以及其對應,還有 jsp 的 welcome page,有寫則網址可以省略該檔名 如:原本要網址 http://dx7200:8080/jsp2/FirstJSP.jsp ,有改過 web.xml 則 http://dx7200:8080/jsp2/ 即可

7. JSP's and Servlets

透過此節範例,雖然網頁呈現ok,不過新增、刪除功能怎麼試都似乎總是那兩串資料,其實ShowAll.jsp 秀出那兩串資料也是寫死得印出,當然怎麼新增刪除都無用了

8. Web Archive - How to create a war file from Eclipse

File -> Export 即可完成匯出一個 war 檔

重點

  • 用純 eclipse 3.5 ,update install wtp(需加入更新網址),還要記得勾選"在原本galielo 源碼內 web 項目中的專案" 來安裝
  • 開發 java 網頁的視野是用 Java EE 這個 Perspective
  • 透過精靈建 project,web項目只有 靜態 與 動態 網頁專案,但要建立檔案,web 項目內則有許多檔案類型可以建立
  • 對所寫得code 執行 run on server ,就可以將程式碼在 eclipse 模擬出來的 tomcat 上執行(但這個tomcat 卻不同於原本系統的 tomcat)
  • 在專案下,新增檔案需做正確的對應
    • 新增 jsp 網頁檔 == 對 WebContent? 點 右鍵-> new
    • 新增 java 檔 == 對 JavaResources? 點 右鍵-> new
    • 新增 servlet 則兩者皆可
  • WebContent? 裡面的web.xml 是連接網頁與java的設定樞紐檔,對應到 tomcat 的 webapps/ROOT/WEB-INF 內

其他參考