Servlet開發【02】一個Servlet程式運行詳解

來源:互聯網
上載者:User

  知道了Servlet的作用後,我們來看一個Servlet的程式運行執行個體,為什麼要看運行執行個體呢?因為要想成功運行一個Servlet程式,需要配置一些檔案。

Servlet程式的編寫

開發一個可以處理的HTTP請求的Servlet程式,肯定是要繼承HttpServlet類,而且在自訂中Servlet類中至少還要覆寫HttpServlet類中提供的doGet()方法,方法如下:

 
  1. public void doGet(HttpServletRequest req,HttpServletResponse resp)  
  2.                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的代碼,如下:

 
  1. Servlet_01.java  
  2. package Servlet;  
  3. import java.io.*;  
  4. import javax.servlet.ServletException;  
  5. import javax.servlet.http.*;  
  6. public class Servlet_01 extends HttpServlet{  
  7.     public void doGet(HttpServletRequest req,HttpServletResponse resp)  
  8.                throws ServletException,IOException{  //覆寫doGet)方法  
  9.         PrintWriter out=resp.getWriter(); //準備輸出  
  10.         out.println("<html>");  
  11.         out.println("<head><title>WEB開發</title></head>");  
  12.         out.println("<body>");  
  13.         out.println("<h1>Hello World</h1>");  
  14.         out.println("</body>");  
  15.         out.println("</html>");  
  16.         out.close();//關閉輸出  
  17.     }  
  18. }  

        此代碼中繼承了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>之間的隨意某個地方寫上如下代碼:

 
  1. <servlet> 
  2.      <servlet-name>Servlet</servlet-name>        
  3.   <servlet-class>Servlet.Servlet_01</servlet-class> 
  4. </servlet> 
  5. <servlet-mapping> 
  6.      <servlet-name>Servlet</servlet-name> 
  7.   <url-pattern>/Servlet/Servlet_01</url-pattern> 
  8. </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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.