Java網路學習(二) Servlet開胃酒

來源:互聯網
上載者:User

在Tomcat初次嘗試中,我們搭建了用於測試Servlet和JSP的基本環境。我們現在要轉向網路應用的具體開發。

廚師

Web伺服器的基本工作方式是請求-處理-回複。請求和回複是在網路上,以HTTP協議為基礎的通訊(參考HTTP協議)。請求是客戶點菜,回複像是服務員上菜,而處理則是在後廚中,廚師根據請求的菜單,準備菜品的過程。

廚師通常是伺服器上的一個應用程式。這個應用程式可以提取請求中的資訊,並根據這些資訊準備回複。這樣的應用程式可以是許多中語言寫成的,比如C, C++, Perl, Ruby, Python, Ruby, PHP等等。由於不同語言的設計理念和編譯器特徵的不同,這些語言寫成的應用程式也有不同的特點(各種各樣的廚師)。比如C和C++語言會有比較高的運行效率,PHP的Web應用廣泛,Ruby和Python開發方便等等。

(在語言之爭中,Web伺服器的“後廚”是一塊兵家必爭之地)

Servlet是Java語言提供的的“廚師”。在Java中,“一切皆對象”。Servlet是一類特殊的Java對象。Java語言利用Servlet對象,來實現對HTTP請求的處理。

範例

下面是一個簡單的Servlet例子,源檔案為TestPage.java:

package foo;          import javax.servlet.*;   import javax.servlet.http.*;   import java.io.*;          public class TestPage extends HttpServlet {              public void doGet(HttpServletRequest request,                        HttpServletResponse response)                   throws IOException, ServletException       {           PrintWriter out = response.getWriter();           out.println("<html><body>" +              "<p>Hello World!</p>" + "</body></html>");       }   }

這個Servlet的功能是回複字串"<html><body><p>Hello World!</p></body></html>"。這一段字串實際上是一個HTML文本。它將作為HTTP回複的主體部分,發回給用戶端。

這裡定義了一個TestPage類,該類繼承HttpServlet抽象類別(參考HttpServlet)。我們覆蓋了doGet()方法。doGet()方法處理GET方法的HTTP請求。如果HTTP請求的方法為POST,則應該覆蓋doPost()方法。每個Servlet都應該覆蓋doGet()和doPost()之一。doGet()和doPost()方法接收兩個參數request和response,分別為HttpServletRequest類型和HttpServletResponse類型。這兩個參數分別代表該次HTTP通訊的請求和回複。

HttpServletRequest和HttpServletResponse為兩個介面。在方法的內部,我們可以操作request和response對象。比如,通過response的getWriter方法,來獲得Writer,從而寫入HTML文本。這些寫入的文本將作為HTTP回複的主體傳遞迴用戶端。再比如,我們可以使用request的getMethod()方法來獲知HTTP請求的方法。可以參考下面的官方文檔:

HttpServletRequest的更多方法

HttpServletResponse的更多方法

此外,PrintWriter類來自java.io包。參考Java IO

查看本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/Java/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.