一、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!"); } }

