天天看點

servlet 基礎入門

Servlet: server applet

  • 概念:運作在伺服器端的小程式
    • Servlet就是一個接口,定義了Java類被浏覽器通路到(tomcat識别)的規則。
    • 将來我們自定義一個類,實作Servlet接口,複寫方法。

快速入門:

  1. 建立 JavaEE 項目
  2. 定義一個類,實作 Servlet 接口

    public class ServletDemo1 implements Servlet

  3. 實作接口中的抽象方法
  4. 配置 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>
           

執行原理:

  1. 當伺服器接受到用戶端浏覽器的請求後,會解析請求URL路徑,擷取通路的 Servlet 的資源路徑
  2. 查找 web.xml 檔案,是否有對應的

    <ul-pattern>

    标簽體内容。
  3. 如果有,則在找到對應的

    <servlet-class>

    全類名
  4. tomcat 會将位元組碼檔案加載進記憶體,并且建立其對象
  5. 調用其方法
    servlet 基礎入門

Servlet中的生命周期方法

  1. 被建立:執行

    init

    方法,隻執行一次
  • Servlet什麼時候被建立?
    • 預設情況下,第一次被通路時,Servlet 被建立
    • 可以配置執行 Servlet 的建立時機。
      • 在标簽下配置

        1. 第一次被通路時,建立

        <load-on-startup>

        的值為負數

        2. 在伺服器啟動時,建立

        <load-on-startup>

        的值為0或正整數
<servlet>
	<servlet-name>demo1</servlet-name>
    <servlet-class>cn.itcast.web.servlet.ServletDemo1</servlet-class>
    <load-on-startup>5</load-on-startup>
</servlet>
	
<servlet-mapping>
	 <servlet-name>demo1</servlet-name>    
	 <url-pattern>/demo1</url-pattern>
</servlet-mapping>
           
  • Servlet的

    init

    方法,隻執行一次,說明一個 Servlet 在記憶體中隻存在一個對象,Servlet 是單例的
    • 多個使用者同時通路時,可能存線上程安全問題。
    • 解決:盡量不要在 Servlet 中定義成員變量。即使定義了成員變量,也不要對修改值
  1. 提供服務:執行

    service

    方法,執行多次
  • 每次通路 Servlet 時,Service 方法都會被調用一次。
  1. 被銷毀:執行

    destroy

    方法,隻執行一次
  • Servlet 被銷毀時執行。伺服器關閉時,Servlet 被銷毀
  • 隻有伺服器正常關閉時,才會執行destroy 方法。
  • destroy 方法在 Servlet 被銷毀之前執行,一般用于釋放資源

注解配置

Servlet3.0:支援注解配置。不需要web.xml。

步驟:

  1. 建立 JavaEE 項目,選擇 Servlet 的版本3.0以上,可以不建立 web.xml
  2. 定義一個類,實作 Servlet 接口
  3. 重寫方法
  4. 在類上使用

    @WebServlet

    注解,進行配置

直接使用

@WebServlet("資源路徑")

即可

圖檔來源:黑馬教程

繼續閱讀