a. 創建JavaEE項目
b. 定義一個類,實現Servlet接口
public class ServletDemo1 implements Servlet
c. 實現接口中的抽象方法
d. 配置Servlet
在web.xml中配置:
<!--配置Servlet -->
<servlet>
<servlet-name>demo1</servlet-name>
<servlet-class>cn.itcast.web.servlet.ServletDemo1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>demo1</servlet-name>
<url-pattern>/demo1</url-pattern>
</servlet-mapping>
3、執行原理:
A. 當服務器接受到客戶端瀏覽器的請求後,會解析請求URL路徑,獲取訪問的Servlet的資源路徑
B. 查找web.xml文件,是否有對應的<url-pattern>標籤體內容。
C. 如果有,則在找到對應的<servlet-class>全類名
D. tomcat會將字節碼文件加載進內存,並且創建其對象
E. 調用其方法
4、Servlet中的生命週期方法:
A. 被創建:執行init方法,只執行一次
Servlet什麼時候被創建?
默認情況下,第一次被訪問時,Servlet被創建
可以配置執行Servlet的創建時機。
在<servlet>標籤下配置
1. 第一次被訪問時,創建 <load-on-startup>的值爲負數
2. 在服務器啓動時,創建 <load-on-startup>的值爲0或正整數
Servlet的init方法,只執行一次,說明一個Servlet在內存中只存在一個對象,Servlet是單例的
多個用戶同時訪問時,可能存在線程安全問題。
解決:儘量不要在Servlet中定義成員變量。即使定義了成員變量,也不要對修改值
B. 提供服務:
執行service方法,執行多次
每次訪問Servlet時,Service方法都會被調用一次。
C. 被銷燬:
執行destroy方法,只執行一次
Servlet被銷燬時執行。服務器關閉時,Servlet被銷燬
只有服務器正常關閉時,纔會執行destroy方法。
destroy方法在Servlet被銷燬之前執行,一般用於釋放資源
5、Servlet3.0:
A.好處:
支持註解配置。可以不需要web.xml了。
B.步驟:
a. 創建JavaEE項目,選擇Servlet的版本3.0以上,可以不創建web.xml
b. 定義一個類,實現Servlet接口
c. 複寫方法
d. 在類上使用@WebServlet註解,進行配置
@WebServlet("資源路徑")