Servlet學習筆記

Servlet簡介

Servlet是什么

Java Servlet 是運行在 Web 服務器或應用服務器上的程序,它是作為來自 Web 瀏覽器或其他 HTTP 客戶端的請求和 HTTP 服務器上的數據庫或應用程序之間的中間層。

Servlet架構
Paste_Image.png

Servlet生命周期

Servlet 生命周期可被定義為從創建直到毀滅的整個過程。以下是 Servlet 遵循的過程:
創建Servlet有兩個時機:1)客戶端第一次請求一個Servlet的時候 2)Web應用啟動的時候立即創建,load-on-startup Servlet
Servlet 通過調用 init () 方法進行初始化。
Servlet 調用 service() 或者doGet和doPost方法來處理客戶端的請求。
Servlet 通過調用 destroy() 方法終止(結束)。
最后,Servlet 是由 JVM 的垃圾回收器進行垃圾回收的。

Hello World

// 導入必需的 java 庫import java.io.*;
import javax.servlet.*;import javax.servlet.http.*;
// 擴展 HttpServlet 類
public class HelloWorld extends HttpServlet { 
    private String message; public void init() throws ServletException {
    // 執行必需的初始化 
    message = "Hello World"; 
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
// 設置響應內容類型
 response.setContentType("text/html"); 
// 實際的邏輯是在這里 
 PrintWriter out = response.getWriter(); 
out.println("<h1>" + message + "</h1>"); 
} 
public void destroy() { 
// 什么也不做
 }
}

Servlet的配置

從Servlet3.0開始,配置Servlet有兩種方式:

  • 在Servlet中使用@WebServlet注解進行配置
@WebServlet(name="firstServlet", urlPatterns={"/firstServlet"})
  • 在web.xml文件中進行配置
<servlet>
    <servlet-name>name</servlet-name>
    <servlet-class>class</servlet-class>
<servlet>
<servlet-mapping>
    <servlet-name>name</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

load-on-startup Servlet

有兩種方式:
方式一:

@WebServlet(loadOnStartUp=1)

方式二:

<servlet>
    <servlet-name>name</servlet-name>
    <servlet-class>class</servlet-class>
    <load-on-startup>1</load-on-startup>
<servlet>

這個整數值越小,表面優先級越高。

訪問Servlet的配置參數

同樣有兩種方式:
方式一:

@WebServlet(name="testServlet",urlPattern="/testServlet",initParams={@WebInitParam(name="a",value="b")})
public class TestServlet extends HttpServlet{
  public void service(HttpServletRequest request,HttpServletResponse, response) throws ServletException, java.io.IOException{
    ServletConfig config = getServletConfig();
    String a = config.getInitParameter("a");
  }
}

方式二:

<servlet>
    <servlet-name>name</servlet-name>
    <servlet-class>class</servlet-class>
    <init-param>
        <param-name></param-name>
        <param-value></param-value>
    </init-param>
<servlet>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • servlet 簡介 1.servlet叫什么 Servlet(Server Applet)是Java Servl...
    維乾閱讀 664評論 0 1
  • Servlet 學習筆記 一、動態網頁技術發展 靜態網頁技術HTML: 無法進行用戶交互 動態網頁技術CGI: 效...
    Jane_Static閱讀 447評論 0 0
  • 從三月份找實習到現在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發崗...
    時芥藍閱讀 42,374評論 11 349
  • 什么是servlet servlet是服務器上運行的小程序,一個servlet就是一個java類,通過“請求-響應...
    情鬼下凡閱讀 321評論 0 0