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 接口的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单的二人扑克牌玩法有哪些
- 下一篇: amd r5 2400g性能怎么样(to