1 什麼是Servlet?
Java Servlet是運行在Web服務器或應用服務器上的程序,它是作爲來自Web瀏覽器或其他HTTP客戶端的請求和HTTP服務器上的數據庫或應用程序之間的中間層。
使用Servlet我們可以做到如下的功能:
(1)可以收集來自網頁表單的用戶輸入;
(2)呈現來自數據庫或者其他源的記錄;
(3)動態的創建網頁。
Java Servlet通常情況下與使用CGI(Common Gateway Interface,公共網關接口)實現的程序可以達到異曲同工之妙。但是相比於CGI,Servlet有以下幾點優勢:
(1)性能明顯更好;
(2)Servlet在Web服務器的地址空間內執行。這樣它就沒有必要在創建一個單獨的進程來處理每個客戶端的請求;
(3)Servlet是獨立於平臺的,因爲它們是Java編寫的。
(4)服務器上的Java安全管理器執行了一系列限制,以保護服務器計算機上的資源。因此,Servlet是可信的。
(5)Java類庫的全部功能對Servlet來說都是可用的。它可以通過sockets和RMI機制與applets、數據庫或其他軟件進行交互。
2 Servlet架構
3 Servlet任務
Servlet主要執行以下任務:
(1)讀取客戶端(瀏覽器)發送的顯式數據。這包括網頁上的HTML表單,或者也可以是來自applet或自定義的HTTP客戶端程序的表單。
(2)讀取客戶端(瀏覽器)發送的隱式的HTTP請求數據。這包括Cookies、媒體類型和瀏覽器能理解的壓縮格式等等。
(3)處理數據並生成結果。這個過程可能需要訪問數據庫,執行RMI或者CORBA調用,調用Web服務,或者直接計算得出對應的響應。
(4)發送顯式的數據(即文檔)到客戶端(瀏覽器)。該文檔格式可以是多種多樣的,包括文本文件(HTML或XML)、二進制文件(GIF圖像)、Excel等。
(5)發送隱式的HTTP響應到客戶端(瀏覽器)。這包括告訴瀏覽器或者其他客戶端被返回的文檔類型(例如HTML),設置cookies和緩存參數,以及其他類似的任務。
4 Servlet包
Java Servlet是運行在帶有支持Java Servlet規範的解釋器web服務器上的Java類。
Servlet可以使用javax.servlet和javax.servlet.http包創建,它是Java企業版的標準組成部分,Java企業版是支持大型開發項目的Java類庫的擴展版本。要使用這兩個包需要導入servlet-api.jar
包。
這些類實現Java Servlet和JSP規範。
Java Servlet就像其他任何的Java類一樣已經被創建和編譯。在我們安裝Servlet包並把它們添加到計算機上的Classpath路徑中之後,就可以通過JDK的Java編譯器來編譯Servlet。
import java.io.IOException;
import javax.servlet.http.HttpServlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.annotation.WebServlet;
@WebServlet(name="/AServlet",urlPatterns={"/AServlet"})
public class AServlet extends HttpServlet{
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{
response.getWriter().print("hello");
}
}
之後通過cmd命令行使用命令javac編譯即可,編譯命令格式如下:
# javac爲編譯命令,-cp代表附加classpath路徑,後面緊跟jar包路徑,最後是.java文件
javac -cp "D:\Program Files\Tomcat\apache-tomcat-9.0.13\lib\servlet-api.jar" AServlet.java