servlet的開發流程介紹


servlet的開發部署流程

1.在%TOMCAT_HOME%/webapps下WEB-INF的文件夾,寫一個文件web.xml(該網站的配置信息),建立一個classes的子文件夾,也可以從別的目錄ROOT下拷貝。下面是web.xml配置文件:
<servlet>
<!—給servlet取名,可以隨意取名-->
<servlet-name>hello</servlet-name>
<!—指明servlet的路徑,就是servlet的包+類名-->
<servlet-class>com.test.Hello</servlet-class>
</servlet>
<servlet-mapping>
<!—給servlet取名,可以隨意取名-->
<servlet-name>hello</servlet-name>
<!—瀏覽器中輸入的url,可以隨意取名-->
<url-pattern>/hello<url-pattern>
</servlet-mapping>
2.開發servlet(引入Tomcat文件夾下lib文件夾里的servlet-api.jar)
3.部署你的servlet
4.啟動Tomcat,訪問你的servlet,在瀏覽器的地址欄中輸入:http://127.0.0.1:8080/myWebSite/hello回車就可以看到servlet的輸出

servlet的生命周期

servlet部署在容器里(我們使用的是Tomcat,也可是別的,比如jboss,weblogic。。。),它的生命周期由容器來管理。
servlet的生命周期分為以下幾個階段:
1.裝載servlet,由相應的容器來完成
2.創建一個servlet實例
3.調用servlet的init()方法,該方法只會在第一次訪問servlet時被調用一次
4.服務:調用servlet的service()方法,一般業務邏輯在這里處理,該方法在訪問該servlet時,會被調用
5.銷毀:調用servlet的destroy()方法,銷毀該servlet實例,該方法在以下情況被調用:
a)tomcat關閉
b)reload該webapps
c)重新啟動電腦
 

開發servlet的方法

三種方法:
1.實現servlet接口
該接口定義了5個方法
2.繼承GenericServlet
通過GenericServlet去開發servlet,只需要重寫service方法,相對來說要簡單一些。
3.繼承HttpServlet
通過HttpServlet去開發servlet,需要重寫doGet、doPost方法,這是目前用的最多的一種方法。

首先明確,Servlet並不是專門用於處理Http請求的。然后再說三種方式的聯系和區別。
1)原生Servlet接口
package javax.servlet;  
import java.io.IOException;  
  
public interface Servlet {  
  
    public void init(ServletConfig config) throws ServletException;  
      
    public ServletConfig getServletConfig();  
      
    public void service(ServletRequest req, ServletResponse res)  
    throws ServletException, IOException;  
      
    public String getServletInfo();  
  
    public void destroy();  
}
 
           

可以看到Servlet接口是定義在javax.servlet包中,該接口定義了5個方法。
init() :在Servlet實例化之后,Servlet容器會調用init()方法,來初始化該對象,主要是為了讓Servlet對象在處理客戶請求之前可以完成一些初始化工作,比如:建立數據庫的連接,獲取配置信息。
service():容器調用service()方法來處理客戶端的請求。
destroy():當容器檢測到一個Servlet對象應該從服務器中被移除的時候,容器會調用該對象的destroy方法,以便讓Servlet對象可以釋放它所使用的資源,保存數據到持久化存儲設備中,例如:將內存中的數據保存到數據庫中,關閉數據庫的連接。

2)GenericServlet
為什么會出現GenericServlet?如果我們直接通過實現Servlet接口來編寫一個Servlet類,就需要實現Servlet接口中定義的5種方法,為了簡化Servlet的編寫,在javax.servlet包中,給我們提供了一個抽象的類GenericServlet,它提供了除service()方法外的其他4種方法的簡單實現。GenericServlet類定義了一個通用的,不依賴具體協議的Servlet。
 
3)HttpServlet
由於大多數網絡應用中,都是瀏覽器通過HTTP協議去訪問服務器資源,而我們編寫的Servlet也主要是應用於HTTP協議的請求和響應,為了快速開發應用於HTTP協議的Servlet,Sun公司在javax.servlet.http包中給我們提供了一個抽象的類HttpServlet,他繼承自GenericServlet類,用於創建適合Web站點的HTTP Servlet。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM