概念:運行在服務器端的小程序(Server Applet)
- Servlet就是一個接口,定義了java類被瀏覽器訪問到(tomcat識別)的規則。
- 將來我們自定義一個類,實現Servlet接口,複寫方法。
執行原理
1.當服務器接收到客戶端瀏覽器的請求後,會解析請求URL路徑,獲取訪問的Servlet的資源路徑
2.查找web.xml文件,是否有對應的<url-pattern>標籤體內容
3.如果有,則再找到對應的<servlet-class>全類名
4.tomcat會使用反射得到字節碼文件,將字節碼文件加載進內存,並創建其對象
5.調用其方法
生命週期
1.被創建:執行init方法,只執行一次。
a.Servlet什麼時候 被創建?
i.默認情況下,第一次訪問時被創建。
ii.可以在web.xml中配置執行Servlet的創建時機。
<servlet>
<servlet-name>demo01</servlet-name>
<servlet-class>com.ck.web.ServletDemo01</servlet-class>
<!--
指定Servlet的創建時機
1.第一次訪問被訪問時創建:<load-on-startup>值爲負數,默認爲-1
2.在服務器啓動時創建:<load-on-startup>值爲0或正數
-->
<load-on-startup>0</load-on-startup>
</servlet>
b.Servlet的init方法只執行一次,說明一個Servlet在內存中只存在一個對象,也就是說Servlet是單例的。當多個用戶同時訪問時,可能存在線程安全的問題,怎麼解決?
i.儘量不要在Servlet中定義成員變量。即使定義了成員變量,也不要對其修改,只用於讀取。
2.提供服務:執行service方法,每次請求都會執行。
3.被銷燬:執行destory方法,只執行一次,服務器正常關閉時執行。