第一個 Servlet 程式
所謂工欲善其事,必先利其器。所以開始寫我們的第一支Servlet程式之前必須先準備好開發環境。
開發環境設定
1) 下載 Apache Tomcat (因為是用Servlet 3.0以上,所以Tomcat需要7.x 以上才能支援。)
3) 執行eclipse然後選擇 Windows -> Preferences -> Server -> Runtime Environment。
4) 在Server Runtime Environments 選擇 Add -> Apache Tomcat v7.0。然後在Tomcat installation directory中選擇Tomcat的安裝目錄,最後按下Finish這就完成設定如下圖。
設定完成後就開始我們的第一支Servlet程式吧。
第一個Servlet程式
1) 在選單選擇 File->New->Dynamic Web Project.
2) 在Dynamic Web Project 當中的Target Runtime選擇剛才所新建的Server,Dynamic web
module version 選擇 3.0如下圖
3) 展開專案中的 Java Resources -> src 新增一個Servlet
接著可以開始寫第一支Servlet程式的內容了,在新增的Servlet加入一下的內容吧。
package com.learn.servlet;
import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class HelloServlet */ @WebServlet("/hello.view") public class HelloServlet extends HttpServlet { //繼承 HttpServlet private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public HelloServlet() { super(); } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String name = request.getParameter("name"); out.println(""); out.println(""); out.println("Hellow Servlet "); out.println(""); out.println(""); out.println("Hello! "+ name +" !
"); out.println(""); out.println(""); out.close(); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } }
在以上的範例程式可以看到繼承了 HttpServlet ,然後重新定義 doGet()方法。當瀏覽器發出GET請求時,會呼叫該方法。
在doGet()可以看到兩個參數分別是HttpServletResponse 和 HttpServletRequest。當Web Container 收到HTTP請求後,將會分別建立Request和Response的Java物件,而後在呼叫doGet()時將這兩個物件當成參數傳入。如果需要取得GET或POST請求的參數值,那將透過HttpServletRequest的getParameter()指定參數名稱即可。HttpServletResponse 是response物件,我們可以透過setContentType()設定回傳類型,然後再使用getWriter()取得PrintWriter物件,在藉由PrintWriter物件中的println()將HTML回傳給瀏覽器。
執行Servlet
- 在『HelloServlet.java』右鍵 Run As -> Run on Server
- Tomcat 啟動成功後,你將會看到以下的畫面(恭喜!你的第一個Servlet程式完成了)
瀏覽器的網址設定是 http://localhost:8080/FirstServlet/hello.view?name=Eric.
Tomcat預設的port是8080,注意網址的路徑FirstServlet是專案的名稱,為什麼請求的URL是/hello.view呢?請注意看以上的範例程式中有以下一行:
@WebServlet("/hello.view")
這表示,如果請求的URL是/hello.view,就會由HelloServlet處理請求。
參考資料
- Servlet&JSP 教學手冊
沒有留言:
張貼留言