知道了Servlet的作用後,我們來看一個Servlet的程式運行執行個體,為什麼要看運行執行個體呢?因為要想成功運行一個Servlet程式,需要配置一些檔案。
Servlet程式的編寫
開發一個可以處理的HTTP請求的Servlet程式,肯定是要繼承HttpServlet類,而且在自訂中Servlet類中至少還要覆寫HttpServlet類中提供的doGet()方法,方法如下:
- public void doGet(HttpServletRequest req,HttpServletResponse resp)
- throws ServletException,IOException
從此方法中不難看出,此方法可以使用request和response對象。
理解不了不要擔心,我們來以一個執行個體說明一下,從Hello World說起。
在Myeclipse中建立項目test,然後建立包Servlet,在包底下建立Servlet_01.java。如所示:
650) this.width=650;" border="0" alt="" src="http://www.bkjia.com/uploads/allimg/131228/1156213612-0.jpg" />
建好項目後不要急著寫代碼,我們還要匯入一個jar包----Servlet-api.jar,這是Servlet的jar包,這個包需要去網上下載,不過本文末尾附加了此包的下載連結。
將jar包匯入Myeclipse中的lib檔案中
然後編寫Servlet_01.java的代碼,如下:
- Servlet_01.java
- package Servlet;
- import java.io.*;
- import javax.servlet.ServletException;
- import javax.servlet.http.*;
- public class Servlet_01 extends HttpServlet{
- public void doGet(HttpServletRequest req,HttpServletResponse resp)
- throws ServletException,IOException{ //覆寫doGet)方法
- PrintWriter out=resp.getWriter(); //準備輸出
- out.println("<html>");
- out.println("<head><title>WEB開發</title></head>");
- out.println("<body>");
- out.println("<h1>Hello World</h1>");
- out.println("</body>");
- out.println("</html>");
- out.close();//關閉輸出
- }
- }
此代碼中繼承了HttpServlet,然後重寫了doGer()方法,本程式首先從HttpServletResponse對象中取得一個輸出資料流對象,然後通過列印輸出HTML元素。
在代碼中request變成了req,response變成了resp,雖然名稱變化了,但是其操作的功能是一樣的,並沒有變化
大家可以看到,HTML的代碼都是用out.println("<>")來輸出的,這樣很麻煩對吧,所以就是為了避免Servlet編程的這樣麻煩,JSP才出世了,JSP就是為了輸出方便才被廣發應用的。也就是說JSP在一定程度上就是Servlet,Servlet要比JSP早。
一個Servlet程式就編寫好了,但是現在還沒有辦法訪問和執行,因為我們得需要配置一些東西來支援Servlet的運行。
Servlet程式啟動並執行前提配置操作
雖然一個Servlet已經正常的開發完成了,但是現在此Servlet並不能被外部所訪問,因為還缺少了另一個配置,這個配置就是映射的配置。即:每一個Servlet都必須通過web.xml檔案進行映射的路徑指定。這個web.xml在tomcat/webapps/test項目名稱/WEB-INF/web.xml,用記事本開啟,在<web-app></web -app>之間的隨意某個地方寫上如下代碼:
- <servlet>
- <servlet-name>Servlet</servlet-name>
- <servlet-class>Servlet.Servlet_01</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>Servlet</servlet-name>
- <url-pattern>/Servlet/Servlet_01</url-pattern>
- </servlet-mapping>
如所示:
650) this.width=650;" border="0" alt="" src="http://www.bkjia.com/uploads/allimg/131228/1156213430-1.png" />
ervlet-name 可以自己命名,但是兩個servlet-name必須一致。
servlet-class 為路徑,就是包.類 的名稱。
url-pattern 為虛擬路徑,訪問的時候就通過這個路徑進行訪問,這個路徑是自己命名的。
整個命名中,只有servlet-class 中的內容是固定的,取決於自己包的名稱和.java的名稱,其他的都是自己命名的,但是自己命名的要自己記住。
運行操作
修改完web.xml之後需要重啟tomcat伺服器,注意:只要web.xml中的內容有變化,就必須重新啟動伺服器)如果沒有錯誤的話,我們就可以在瀏覽器中輸入:http://localhost:8080/項目名稱/web.xml中配置的url-pattern的名稱 ,在我們的這個項目中如下;http://localhost:8080/test/Servlet/Servlet_01
運行後如所示:
650) this.width=650;" border="0" alt="" src="http://www.bkjia.com/uploads/allimg/131228/1156211I3-2.png" />
注意:
此操作中,有三點是必須得注意的:
1. web.xml中的配置一定要配置正確了,尤其是路徑classpath是包名稱 +類名稱。在<url-pattern>中是在瀏覽器中寫入的內容。
2. 啟動並執行時候在瀏覽器中輸入的地址是 <url-pattern>中自己寫的內容,比如在web.xml中的url-pattern>中寫的是/A,那麼在地址欄中輸入的就是 http://localhost:8080/test/A.
3. 一定要注意覆寫的方法,以及Servlet代碼的寫法。
本文出自 “趙玉強的部落格” 部落格,請務必保留此出處http://zhaoyuqiang.blog.51cto.com/6328846/1147951