日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java servlet是接口_JavaWeb:Servlet 接口

發布時間:2023/12/19 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java servlet是接口_JavaWeb:Servlet 接口 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

環境

JDK 8

Spring Tool Suite 4.6.1

Servlet 3.1

Tomcat 8.5

Maven 3.6.3

Servlet 說明

Java web 的核心接口 Servlet,很多的功能都圍繞它展開。

作為頂級接口,我們可以選擇直接實現它。它包含五個需要被實現的方法,下面將依次介紹。

Servlet 的生命周期方法調用:

在 Servlet 創建后,調用 init 方法。

所有客戶端的請求都會由 service 方法來處理。

Servlet 被銷毀時,調用 destroy 方法,然后被 GC 回收。

init

init 方法會在 Servlet 被實例化后被調用,且只被調用一次。

public void init(ServletConfig config) throws ServletException;

getServletConfig

通過該方法,可以獲取到 ServletConfig 接口的一個對象。ServletConfig 之后介紹。

public ServletConfig getServletConfig();

service

客戶端通過配置的路徑可以訪問到該方法,每被訪問一次,該方法就被調用一次。

public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException

getServletInfo

獲取 Servlet 的信息。

public String getServletInfo();

destroy

該方法在 Servlet 被銷毀時調用。

public void destroy();

Servlet 示例

提供 Servlet-api

Servlet 的實現和接口在 Servlet 容器中都有,不需要自己提供。

所以我們只需要 Servlet-api 來保證我們編寫代碼不出現編譯錯誤即可。

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

jiangbo.javaweb

02java-web-servlet

1.0.0

war

Servlet 的示例

1.8

1.8

UTF-8

javax.servlet

javax.servlet-api

3.1.0

provided

實現 Servlet 接口

package jiangbo.javaweb;

import java.io.IOException;

import javax.servlet.Servlet;

import javax.servlet.ServletConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

public class Servlet01 implements Servlet {

@Override

public void init(ServletConfig config) throws ServletException {

System.out.println("init...");

}

@Override

public ServletConfig getServletConfig() {

return null;

}

@Override

public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {

System.out.println("service...");

}

@Override

public String getServletInfo() {

return null;

}

@Override

public void destroy() {

System.out.println("destroy...");

}

}

配置 web.xml

xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee

http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">

servlet01

jiangbo.javaweb.Servlet01

servlet01

/servlet01

其中的 servlet-name 必須一樣,它們才能關聯起來。其中的邏輯是:

訪問 /servlet01 路徑時,找到其 servlet-name 為 servelt01。

根據 servlet01 找到對應的 servlet,得到 class 為:jiangbo.javaweb.Servlet01。

調用 jiangbo.javaweb.Servlet01 類的 service 方法。

映射路徑的注意事項:

可以使用 * 作為通配符,但精確匹配優先。

必須以 / 或者 * 開頭。

模糊匹配可以是 /test/* 或者 .do,但不能是 /test/.do。

可以將多個路徑映射到同一個 Servlet 上,但是不能同一個路徑映射多個 Servlet 。

瀏覽器訪問

控制臺輸出

查看控制臺輸出, init 方法執行了一次,而 service 訪問被調用了三次。

init...

service...

service...

service...

destroy...

總結

以上是生活随笔為你收集整理的java servlet是接口_JavaWeb:Servlet 接口的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。