- Java Web基礎與實例教程
- 孔祥盛 趙芳主編
- 1724字
- 2025-03-19 16:21:03
2.1.6 小露身手:使用Eclipse創建第一個Servlet程序
步驟
(1)打開Project Explorer視圖→展開剛剛創建的Web項目→展開Java Resources→右擊src→單擊Servlet→彈出Create Servlet窗口。Java package文本框處輸入controller,Class name文本框處輸入ABCServlet,父類是HTTPServlet,如圖2-8所示。

圖2-8 Create Servlet窗口
說明1:通常Servlet程序負責“扮演”控制器(Controller)的角色,在Java package文本框處輸入controller,指該package存放的是Servlet程序(有關控制器的更多知識參考第8章內容)。
說明2:父類HTTPServlet專門用于處理HTTP請求。本書所開發的Servlet程序都繼承了HTTPServlet。
(2)單擊Next按鈕,進入Servlet部署界面,如圖2-9所示。Servlet程序的URL mappings保持默認設置(2.1.7節講解URL Mappings的相關知識)。
(3)單擊Next按鈕,進入創建Servlet程序的界面,選擇創建構造方法、init、destroy、doGet和doPost方法,單擊Finish按鈕,即可創建ABCServlet程序,如圖2-10所示。

圖2-9 Servlet部署界面

圖2-10 創建ABC Servlet程序
場景1 將servlet-api.jar導入Web項目
說明
Servlet程序繼承了HttpServlet類,HttpServlet類定義在第三方庫servlet-api.jar中。如果剛剛創建的Servlet程序存在如下所示的語法錯誤(錯誤代碼下有波浪線),需要將servlet-api.jar導入Web項目中。Tomcat是可以運行Servlet的容器,Tomcat的安裝目錄里存在該第三方庫。

在Tomcat的安裝目錄C:\apache-tomcat-9.0.29中找到lib目錄,找到servlet-api.jar,將它復制到當前Web項目的lib目錄下。方法是:打開Project Explorer視圖→展開剛剛創建的Web項目→展開WebContent目錄→展開Web-INF目錄→找到lib目錄→復制。Eclipse自動將servlet-api.jar包復制到Web項目“Web-INF/lib”下,Eclipse代碼編輯區域將不提示錯誤。
場景2 篇幅所限,精簡代碼
場景2步驟
(1)刪除注釋語句。
(2)在每個方法中添加一條Tomcat控制臺輸出語句。
(3)修改doGet()方法的代碼,在Tomcat控制臺輸出項目部署后的絕對物理路徑。(4)刪除doPost()方法的代碼“doGet(request, response);”。
(5)再次確保Servlet的urlPatterns是“/類名”。

說明
注解@WebServlet配置了Servlet類的urlPatterns。為了簡化Servlet的聲明,從Servlet 3.0開始,Servlet新增了注解支持,使得web.xml配置文件從Servlet 3.0開始不再是必選的了。
場景3 Tomcat集成到Eclipse、Web項目部署到Tomcat
說明1:Servlet程序需要Servlet容器才能運行,Tomcat提供了Servlet容器。Eclipse僅是一個集成開發環境,并不提供Tomcat。有必要將第1章的Tomcat集成到本章的Eclipse集成開發環境中,這樣就可以在一個界面中編寫代碼、啟動/停止Tomcat、將項目部署到Eclipse的Tomcat中、調試代碼。另外,還有很重要的一點:每次修改Servlet程序的代碼后,需要重新編譯Servlet程序、重啟Tomcat。而Eclipse會檢測Servlet程序是否修改,若修改,則會自動重新編譯Servlet程序、重啟Tomcat,使修改后的Servlet程序生效,提高開發效率。通過如下步驟,可將Tomcat集成到Eclipse中以及將Web項目部署到Eclipse的Tomcat中。
說明2:進行下列操作前,請務必閱讀第1章有關Tomcat啟動的相關內容。
場景3步驟
(1)在Eclipse菜單欄中單擊Window菜單→選擇Show View→單擊Servers命令→進入Servers視圖→單擊“No servers are available. Click this link to create a new server...”鏈接→彈出New Server窗口→找到Apache文件夾→選擇Tomcat V9.0 Server,如圖2-11所示。

圖2-11 New Server窗口
(2)單擊Next按鈕,進入選擇Tomcat安裝目錄的界面,選擇第1章的Tomcat安裝目錄和JRE,如圖2-12所示。
(3)單擊Next按鈕,進入將項目部署到Eclipse中的Tomcat界面,如圖2-13所示。選擇要部署的項目get→單擊Add按鈕→單擊Finish按鈕。

圖2-12 選擇Tomcat安裝目錄和JRE

圖2-13 將項目部署到Eclipse中的Tomcat界面
最終,將Tomcat集成到Eclipse中,同時項目get被部署到Eclipse中的Tomcat界面。
(4)啟動集成在Eclipse中的Tomcat。
打開Servers視圖,如圖2-14所示。右鍵單擊Tomcat v9.0 Server at localhost→單擊Start,啟動Tomcat后,在Eclipse的Console控制臺視圖中,就可以看到Tomcat的后臺信息。

圖2-14 打開Server視圖
說明
完成上述步驟后,打開Project Explorer視圖→展開Servers項目→雙擊server.xml配置文件,里面會有如下配置選項。該配置選項配置了get項目的虛擬路徑。
<Context docBase="get" path="/get" reloadable="true" source="org.eclipse. jst.jee.server:get"/>
場景4 運行第一個Servlet程序
Servlet程序不會自動運行,只有在瀏覽器地址欄輸入Servlet程序對應的urlPatterns,才能觸發Servlet程序的執行。啟動Tomcat后,打開瀏覽器,輸入網址http://localhost:8080/get/ABCServlet,就會看到一個空白網頁。Tomcat控制臺會顯示圖2-15所示的執行結果。

圖2-15 Servlet程序執行結果
注意
第一次執行ABCServlet程序時,會依次觸發ABCServlet程序的構造方法、init()方法、doGet()方法執行。以后再執行ABCServlet程序時,會觸發doGet()方法執行,但構造方法和init()方法將不再執行。
從執行結果可以看出:通過瀏覽器地址欄訪問ABCServlet時,只觸發了ABCServlet的doGet()方法(并沒有觸發doPost()方法)。這是因為,通過瀏覽器地址欄訪問資源文件時,瀏覽器向資源文件發出的是GET請求。
說明
HTTP請求主要有GET請求和POST請求兩種。
從瀏覽器的角度:單擊超鏈接或者直接在瀏覽器地址欄輸入網址,瀏覽器發出的請求都是GET請求。GET請求會觸發Servlet程序的doGet()方法;POST請求會觸發Servlet程序的doPost()方法。
從Servlet程序的角度:每個Servlet程序有兩個入口,doGet()方法用于處理GET請求;doPost()方法用于處理POST請求。
- Learn ECMAScript(Second Edition)
- C語言程序設計案例教程(第2版)
- Mastering Concurrency in Go
- AngularJS深度剖析與最佳實踐
- 數據結構(Python語言描述)(第2版)
- Learning Firefox OS Application Development
- Hands-On C++ Game Animation Programming
- Troubleshooting PostgreSQL
- Bootstrap 4:Responsive Web Design
- H5頁面設計:Mugeda版(微課版)
- PLC應用技術(三菱FX2N系列)
- Microsoft Azure Storage Essentials
- jQuery技術內幕:深入解析jQuery架構設計與實現原理
- 零基礎C語言學習筆記
- 零基礎入門Python數據分析與機器學習