Servlet學習筆記之一


一、Servlet簡介

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

Servlet的主要作用以及功能:

  • 讀取客戶端(瀏覽器)發送的顯式的數據。這包括網頁上的 HTML 表單,或者也可以是來自 applet 或自定義的 HTTP 客戶端程序的表單。
  • 讀取客戶端(瀏覽器)發送的隱式的 HTTP 請求數據。這包括 cookies、媒體類型和瀏覽器能理解的壓縮格式等等。
  • 處理數據並生成結果。這個過程可能需要訪問數據庫,執行 RMI 或 CORBA 調用,調用 Web 服務,或者直接計算得出對應的響應。
  • 發送顯式的數據(即文檔)到客戶端(瀏覽器)。該文檔的格式可以是多種多樣的,包括文本文件(HTML 或 XML)、二進制文件(GIF 圖像)、Excel 等。
  • 發送隱式的 HTTP 響應到客戶端(瀏覽器)。這包括告訴瀏覽器或其他客戶端被返回的文檔類型(例如 HTML),設置 cookies 和緩存參數,以及其他類似的任務。

二、Servlet開發環境的配置

  • JDK
  • 服務器,我使用的是tomcat
  • Servlet編寫工具,使用MyEclipse

使用創建Servlet開發項目:

1、創建Web Project ==> MyServlet

2、創建包名稱 ==>com.servlet.basic

3、創建Java類(初期推薦創建Java類,熟悉項目中的web.xml的配置)

    若想要使用MyEclipse來直接解析Servlet項目,則需要在WebRoot中WEB-INF下的web.xml中對servlet項目進行部署和添加:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <servlet>
    <servlet-name>AServlet</servlet-name>
    <servlet-class>com.servlet.basic.AServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>AServlet</servlet-name>
    <url-pattern>/AServlet</url-pattern>
  </servlet-mapping>

</web-app>

4、將創建好的項目部署到MyEclipse的Tomcat中

三、Servlet的生命周期

Servlet的生命周期是從該servlet創建到注銷的整個過程,整個過程中servlet會執行以下的過程:

  • 調用init () 方法進行初始化。
  • 調用service() 方法來處理客戶端的請求。
  • 調用 destroy() 方法終止(結束)。
  • 最后由 JVM 的垃圾回收器進行垃圾回收。

1、Init()方法:

該方法只在創建servlet時候調僅調用一次,以后不再調用該方法,當用戶調用一個 Servlet 時,就會創建一個 Servlet 實例,每一個用戶請求都會產生一個新的線程,適當的時候移交給 doGet 或 doPost 方法。init() 方法簡單地創建或加載一些數據,這些數據將被用於 Servlet 的整個生命周期。

2、Service()方法:

service() 方法是執行實際任務的主要方法。Servlet 容器(即 Web 服務器)調用 service() 方法來處理來自客戶端(瀏覽器)的請求,並把格式化的響應寫回給客戶端。

每次服務器接收到一個 Servlet 請求時,服務器會產生一個新的線程並調用服務。service() 方法檢查 HTTP 請求類型(GET、POST、PUT、DELETE 等),並在適當的時候調用 doGet、doPost、doPut,doDelete 等方法。

3、destroy()方法:

該方法只在該servlet注銷之前調用一次,且在servlet的生命周期中只會調用一次

實例:

package com.servlet.basic;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class AServlet extends HttpServlet{
    
    public void init() throws ServletException {
        System.out.println("init()初始化了呀。。。。。。");
    }
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        System.out.println("Hello Servlet");
        System.out.println("This Is My First Servlet Example!");
        
//        將文本在頁面上輸出
//        PrintWriter out = response.getWriter();
//        out.println("Hello Servlet");
//        out.println("This Is My First Servlet Example!");

    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM