天天看點

JavaWeb複習鞏固

JavaWeb複習第二題: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>

        <url-pattern>/demo1</url-pattern>

    </servlet-mapping>

* 執行原理:

1. 當伺服器接受到用戶端浏覽器的請求後,會解析請求URL路徑,擷取通路的Servlet的資源路徑

2. 查找web.xml檔案,是否有對應的<url-pattern>标簽體内容。

3. 如果有,則在找到對應的<servlet-class>全類名

4. tomcat會将位元組碼檔案加載進記憶體,并且建立其對象

5. 調用其方法

* Servlet中的生命周期方法:

1. 被建立:執行init方法,隻執行一次

* Servlet什麼時候被建立?

* 預設情況下,第一次被通路時,Servlet被建立

* 可以配置執行Servlet的建立時機。

* 在<servlet>标簽下配置

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

                 * <load-on-startup>的值為負數

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

                * <load-on-startup>的值為0或正整數

* Servlet的init方法,隻執行一次,說明一個Servlet在記憶體中隻存在一個對象,Servlet是單例的

* 多個使用者同時通路時,可能存線上程安全問題。

* 解決:盡量不要在Servlet中定義成員變量。即使定義了成員變量,也不要對修改值

2. 提供服務:執行service方法,執行多次

* 每次通路Servlet時,Service方法都會被調用一次。

3. 被銷毀:執行destroy方法,隻執行一次

* Servlet被銷毀時執行。伺服器關閉時,Servlet被銷毀

* 隻有伺服器正常關閉時,才會執行destroy方法。

* destroy方法在Servlet被銷毀之前執行,一般用于釋放資源

* Servlet3.0:

* 好處:

* 支援注解配置。可以不需要web.xml了。

* 步驟:

1. 建立JavaEE項目,選擇Servlet的版本3.0以上,可以不建立web.xml

3. 複寫方法

4. 在類上使用@WebServlet注解,進行配置

* @WebServlet("資源路徑")

@Target({ElementType.TYPE})

@Retention(RetentionPolicy.RUNTIME)

@Documented

public @interface WebServlet {

    String name() default "";//相當于<Servlet-name>

    String[] value() default {};//代表urlPatterns()屬性配置

    String[] urlPatterns() default {};//相當于<url-pattern>

    int loadOnStartup() default -1;//相當于<load-on-startup>

    WebInitParam[] initParams() default {};

    boolean asyncSupported() default false;

    String smallIcon() default "";

    String largeIcon() default "";

    String description() default "";

    String displayName() default "";

}

## IDEA與tomcat的相關配置

1. IDEA會為每一個tomcat部署的項目單獨建立一份配置檔案

* 檢視控制台的log:Using CATALINA_BASE:   "C:\Users\fqy\.IntelliJIdea2018.1\system\tomcat\_itcast"

2. 工作空間項目    和     tomcat部署的web項目

* tomcat真正通路的是“tomcat部署的web項目”,"tomcat部署的web項目"對應着"工作空間項目" 的web目錄下的所有資源

* WEB-INF目錄下的資源不能被浏覽器直接通路。

3. 斷點調試:使用"小蟲子"啟動 dubug 啟動

今日學習感受:人生在世不過生死二字,堅持你所熱愛,堅持你應該堅持的把!最後一句話:想你所想,做你所做,加油!!!