第一個 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 教學手冊



沒有留言:
張貼留言