java servlet是接口_JavaWeb:Servlet 接口
環(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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单的二人扑克牌玩法有哪些
- 下一篇: java 镶嵌创建线程_Java多线程—