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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java servlet是接口_JavaWeb:Servlet 接口

發(fā)布時(shí)間:2023/12/19 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java servlet是接口_JavaWeb:Servlet 接口 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

環(huán)境

JDK 8

Spring Tool Suite 4.6.1

Servlet 3.1

Tomcat 8.5

Maven 3.6.3

Servlet 說明

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

作為頂級(jí)接口,我們可以選擇直接實(shí)現(xiàn)它。它包含五個(gè)需要被實(shí)現(xiàn)的方法,下面將依次介紹。

Servlet 的生命周期方法調(diào)用:

在 Servlet 創(chuàng)建后,調(diào)用 init 方法。

所有客戶端的請(qǐng)求都會(huì)由 service 方法來處理。

Servlet 被銷毀時(shí),調(diào)用 destroy 方法,然后被 GC 回收。

init

init 方法會(huì)在 Servlet 被實(shí)例化后被調(diào)用,且只被調(diào)用一次。

public void init(ServletConfig config) throws ServletException;

getServletConfig

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

public ServletConfig getServletConfig();

service

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

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

getServletInfo

獲取 Servlet 的信息。

public String getServletInfo();

destroy

該方法在 Servlet 被銷毀時(shí)調(diào)用。

public void destroy();

Servlet 示例

提供 Servlet-api

Servlet 的實(shí)現(xiàn)和接口在 Servlet 容器中都有,不需要自己提供。

所以我們只需要 Servlet-api 來保證我們編寫代碼不出現(xiàn)編譯錯(cuò)誤即可。

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

實(shí)現(xiàn) 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 必須一樣,它們才能關(guān)聯(lián)起來。其中的邏輯是:

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

根據(jù) servlet01 找到對(duì)應(yīng)的 servlet,得到 class 為:jiangbo.javaweb.Servlet01。

調(diào)用 jiangbo.javaweb.Servlet01 類的 service 方法。

映射路徑的注意事項(xiàng):

可以使用 * 作為通配符,但精確匹配優(yōu)先。

必須以 / 或者 * 開頭。

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

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

瀏覽器訪問

控制臺(tái)輸出

查看控制臺(tái)輸出, init 方法執(zhí)行了一次,而 service 訪問被調(diào)用了三次。

init...

service...

service...

service...

destroy...

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。