本篇主要是依照這篇 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 內