1. 程式人生 > 其它 >Canal Adapter com.alibaba.druid.pool.DruidDataSource cannot be cast to com.alibaba.druid.pool.DruidDataSource

Canal Adapter com.alibaba.druid.pool.DruidDataSource cannot be cast to com.alibaba.druid.pool.DruidDataSource

Servlet

Servelt定義:

servlet是一種應用於伺服器端的Java程式,可以生成動態的web頁面。

servlet執行在伺服器端,是由web伺服器負責載入的,是獨立於平臺和協議的

Java應用程式。

3.1 Servlet**的意義和生命週期**

Servlet其實並不是很複雜的東西,事實上,servlet就是一個java介面,定義了處理網路請求的規範。所有實現servlet的類,都需要實現它那五個方法,其中最主要的是三個生命週期方法 init()和destroy()service(),所有實現

servlet介面的類都需要回答這三個問題:

你初始化時要做什麼

你銷燬時要做什麼

你接受到請求時要做什麼

package javax.servlet;
import java.io.IOException;
public interface Servlet {
void init(ServletConfig var1) throws ServletException;
ServletConfig getServletConfig();
void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
String getServletInfo();
void destroy();
}

Servlet介面原始碼如下:

一共有三個生命週期方法,init(),service(),destroy()

init()方法:在servlet被建立時呼叫

service()方法:servlet接收到前端傳送過來的HTTP請求時呼叫

destory()方法:servlet銷燬時被呼叫

3.2 Servlet**生命週期詳解**

當我們第一次接觸Servlet和WEB伺服器時,我們一定會有這個疑問:為什

麼我們都不用使用new關鍵字來例項化Servlet就能夠使用了呢?

這是因為,在我們第一次訪問到servlet的時候,servlet容器會根據

web.xml檔案裡註冊的servlet資訊,為我們建立一個servlet例項,呼叫

servlet的init方法,這個例項會常駐記憶體,當我們每次訪問servlet配置的

mapping地址時,就會呼叫該例項的service方法來處理請求,當web服務

器關閉時,會呼叫servlet的destroy方法來銷燬servlet例項。

}3.3 建立**Servlet的三種方法:**

\1. 實現servlet介面,重寫介面中的init(),service(),destroy()等方法

\2. 繼承GenericServlet,重寫父類中的service()方法

\3. 繼承HttpServlet,重寫父類中的doGet()和doPost()方法

GenericServlet是一個抽象類,實現了servlet介面

HttpServlet是一個普通類,繼承自GenericServlet

為什麼會有三種方式?

因為Servlet技術是不斷髮展的,先有Servlet,再有GenericServlet,最後

才有的HttpServlet。HttpServlet封裝了更多的內容,實現了更強大的功

能,所以在接下來的學習中我們都使用HttpServlet來實現。

3.4 Servlet**技術總結**

其實Servlet本身在Web容器中是“非常被動”的一個角色,處理的事情也很

簡單。網路請求與響應,不是他的主要職責,它其實更偏向於業務程式碼。

所謂的Request和Response是Web容器來進行處理,servlet並不會參與處

理Request和Response的過程。*