WEB - Servlet基礎,編寫第一個Servlet

來源:互聯網
上載者:User

標籤:電腦   header   ams   http   資源   簡單   技術分享   char   應用   

原文地址: http://blog.codingme.net/post/java-web-01-first-servlet

什麼是Servlet?

Java Servlet 是運行在 Web 服務器或應用伺服器上的程式,它是作為來自 網頁瀏覽器或其他 HTTP 用戶端的請求和 HTTP 伺服器上的資料庫或應用程式之間的中介層。
使用 Servlet,您可以收集來自網頁表單的使用者輸入,呈現來自資料庫或者其他源的記錄,還可以動態建立網頁。
Java Servlet 通常情況下與使用 CGI(Common Gateway Interface,公用網關介面)實現的程式可以達到異曲同工的效果。但是相比於 CGI,Servlet 有以下幾點優勢:

  • 效能明顯更好。
  • Servlet 在 Web 服務器的地址空間內執行。這樣它就沒有必要再建立一個單獨的進程來處理每個用戶端請求。
  • Servlet 是獨立於平台的,因為它們是用 Java 編寫的。
  • 伺服器上的 Java 安全管理器執行了一系列限制,以保護伺服器電腦上的資源。因此,Servlet 是可信的。
  • Java 類庫的全部功能對 Servlet 來說都是可用的。它可以通過 sockets 和 RMI 機制與 applets、資料庫或其他軟體進行互動。
編寫Servlet

Servlet本質上是一個Java類,建立一個Servlet很簡單,就是定義一個Java類,這個類繼承自javax.servlet.http.HttpServlet類,覆蓋其中的doGet和doPost方法,在doGet和doPost中編寫處理請求的代碼。
由於 Servlet 不是 Java 平台標準版的組成部分,所以必須添加jar包:servlet-api.jar
可以在Tomcat下lib目錄下找到,也可自行下載添加。

樣本:FirstServlet.java(注意看代碼注釋)

package net.codingme.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * 第一個servlet測試 *  */// @WebServlet("/firstServlet") public class FirstServlet extends HttpServlet {    private static final long serialVersionUID = 1L;    public FirstServlet() {        super();    }    // get請求處理    protected void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        //設定響應的文本類型和字元編碼        response.setContentType("text/html;charset=UTF-8");        //通過輸出資料流向用戶端做出響應        PrintWriter out = response.getWriter();        out.println("<html><body>");        out.println("<h3>firest servlet</h3>");        out.println("</body></html>");        out.close();    }    protected void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        doGet(request, response);    }}

Web請求方式除了GET和POST其實還有很多中,例如PUT、DELETE等,GET和POST則最為常用,所以通常只覆蓋doGet和doPost方法。response.setContentType(“text/html;charset=UTF-8”);用於設定響應的文本類型和編碼方式,通過響應對象獲得輸出資料流對象out,用於向用戶端瀏覽器輸出響應內容,代碼中輸出的HTML標記,這實際上是一個動態Web的頁面。

配置Servlet

Servlet編寫完成之後,需要在工程WEBROOT/WEB-INF/web.xml中進行配置才可以生效,web.xml是Web應用的主設定檔,包含Web應用配置的主要資訊。

在web.xml中根項目<web-app>中配置Servlet,代碼如下:

<servlet>    <servlet-name>first</servlet-name>    <servlet-class>net.codingme.servlet.FirstServlet</servlet-class></servlet><servlet-mapping>    <servlet-name>first</servlet-name>    <url-pattern>/firstServlet</url-pattern></servlet-mapping>

配置解釋:

<servlet>    <servlet-name>servlet名</servlet-name>    <servlet-class>servlet的class的全名</servlet-class></servlet><servlet-mapping>    <servlet-name>servlet名</servlet-name>    <url-pattern>servlet的訪問路徑</url-pattern></servlet-mapping>

如果Servlet版本是3.0及以上的,可以使用註解進行配置,省去web.xml中的配置。配置方式如:

package net.codingme.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * 第一個servlet測試 * 使用註解 */@WebServlet("/firstServlet") public class FirstServlet extends HttpServlet {    private static final long serialVersionUID = 1L;    public FirstServlet() {        super();    }    .    .    .
運行Servlet

Servlet配置完成之後,把Servlet所在工程項目部署到Web伺服器上並啟動Web伺服器,此時Servlet將可以被訪問到,訪問地址格式為
協議://伺服器位址:連接埠號碼/WEB應用程式名稱/Servlet的訪問路徑
Web Server可以定位到訪問具體哪一個Servlet:

  1. 尋找web.xml中Servlet配置資訊中的<url-pattern>值與請求路徑相匹配的項
  2. 通過尋找結果,訪問到對應的(<servlet-mapping><servlet-name><servlet><servlet-name>值相等,)<servlet-class>,可以訪問到指定的Servlet類,Web伺服器將在第一次訪問Servlet時執行個體化Servlet一個對象,為用戶端提供響應服務。
訪問Servlet

訪問Servlet有三種方式

  • 直接在瀏覽器地址中輸入訪問路徑來訪問
  • 通過超連結來訪問
  • 通過提交表單來訪問

訪問測試

總結:Servlet開發步驟,執行流程

Servlet開發步驟:

  1. 編寫Servlet,編寫一個Java類,繼承HttpServlet類並覆蓋doGet和doPost方法
  2. 在設定檔web.xml中配置Servlet(Servlet3.0以上版本可以使用註解)
  3. 將Servlet所在Java Web項目部署到Web伺服器上,例如Tomcat
  4. 啟動Web伺服器
  5. 請求訪問Servlet

Servlet執行流程:

  1. 用戶端瀏覽器向Web伺服器發送請求訪問某一個Servlet
  2. Web伺服器根據配置資訊定位到具體的Servlet
  3. 如果這個Servlet是第一次被訪問,此時Servlet對象在記憶體中不存在,則建立這個Servlet對象,如果這個Servlet已經被訪問過,則Servlet的對象已經存在記憶體中,然後建立一個線程操作這個Servlet對象,完成具體功能。
  4. 獲得運行結果,通過響應對象(response)設定響應參數並將結果返回到用戶端。
  5. 用戶端將相應結果顯示在瀏覽器中。

 

WEB - Servlet基礎,編寫第一個Servlet

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.