1. gzyueqian
      18529173453
      首頁 > 新聞中心 > > 正文

      Servlet開發(fā)初步

      更新時間: 2007-05-08 11:34:26來源: 粵嵌教育瀏覽量:944


        Servlet是Java語言在WEB服務(wù)器端的一種應(yīng)用技術(shù),未來Servlet將可能徹底取代CGI。本講座將具體介紹Servlet的概念、開發(fā)、調(diào)試以及相應(yīng)的應(yīng)用實例。

        一、什么是Servlet?

        ·Servlet是一種獨立于平臺和協(xié)議的服務(wù)器端的Java應(yīng)用程序,可以生成動態(tài)的Web頁面。

        ·Servlet是位于Web 服務(wù)器內(nèi)部的服務(wù)器端的Java應(yīng)用程序,與傳統(tǒng)的從命令行啟動的Java應(yīng)用程序不同,Servlet由Web服務(wù)器進行加載,該Web服務(wù)器必須包含支持Servlet的Java虛擬機。

        ·Servlet與Web服務(wù)器的關(guān)系類似于Applet與Web瀏覽器的關(guān)系(這也是為什么Servlet技術(shù)被稱為Servlet的原因),我們可以將Servlet想象成沒有前端界面(faceless)的Applet。與Applet不同的是,由于Servlet運行在Web服務(wù)器端,因此它是一個可信賴的程序,不受到Java安全性的限制,擁有和普通Java應(yīng)用程序一樣的權(quán)限。

        ·Servlet是CGI Script的一種替代技術(shù),由于Servlet在性能、可移植性、代碼重用等方面比CGI具有顯著的優(yōu)勢,因此在未來的技術(shù)發(fā)展過程中,Servlet有可能徹底取代CGI。

        二、編寫Servlet所需要的開發(fā)環(huán)境

        進行Servlet開發(fā)所需要的基本環(huán)境是JSDK以及一個支持Servlet的Web服務(wù)器。

        1.JSDK(Java Servlet Development Kit)

        JSDK包含了編譯Servlet應(yīng)用程序所需要的Java類庫以及相關(guān)的文檔。對于利用Java 1.1進行開發(fā)的用戶,必須安裝JSDK。JSDK已經(jīng)被集成進Java 1.2 Beta版中,因此如果利用Java 1.2進行開發(fā),則不必安裝JSDK。

        JSDK可以在Javasoft公司的站點免費下載,其地址是   http://jserv.javasoft.com/products/java-server/downloads/index.html

        2.支持Servlet的Web服務(wù)器

        Servlet需要運行在支持Servlet的Web服務(wù)器上。目前支持Servlet的Web服務(wù)器首推SUN公司的Java Web Server。如果現(xiàn)有的Web服務(wù)器不支持Servlet,則可以利用一些第三方廠商的服務(wù)器增加件(add-ons)來使Web服務(wù)器支持Servlet,這其中Live Software公司(http://www.livesoftware.com)提供了一種稱為JRun的產(chǎn)品,通過安裝JRun的相應(yīng)版本,可以使Microsoft IIS和Netscape Web Server支持Servlet。

        三、開發(fā)Servlet的過程

        本文將以編寫一個簡單的Servlet(我們稱之為HelloServlet)為例說明開發(fā)Servlet的過程。

        1.編寫Servlet代碼

        Java Servlet API是一個標準的Java擴展程序包,包含兩個Package∶javax.servlet和javax.servlet.http。對于想開發(fā)基于客戶自定義協(xié)議的開發(fā)者,應(yīng)該使用javax.servlet包中的類與界面;對于僅利用HTTP協(xié)議與客戶端進行交互的開發(fā)者,則只需要使用javax.servlet.http包中的類與界面進行開發(fā)即可。

        下面是一個典型的servlet的程序代碼∶

        import javax.servlet.*;

        import javax.servlet.http.*;

        import java.io.*;

        import java.util.*;

        public class HelloServlet extends HttpServlet {

         public void init(ServletConfig config) throws ServletException {

          super.init(config);

         }

         public void service(HttpServletRequest req, HttpServletResponse res)

        throws ServletException, IOException {

        String clientIPAddress = req.getRemoteAddr();

           res.setContentType(″text/html″);

         ServletOutputStream out = res.getOutputStream();

         out.println(″〈html〉″);

         out.println(″〈head〉〈title〉Hello World〈/title〉〈/head〉″);

         out.println(″〈body〉″);

         out.println(″〈h1〉Hello,You come from ″+clientIPAddress+″〈/h1〉″);

         out.println(″〈/body〉〈/html〉″);

         }

        }

        該servlet實現(xiàn)如下功能∶當用戶通過瀏覽器訪問該servlet時,該servlet向客戶端瀏覽器返回一個HTML頁面∶

        Hello, You come from 192.168.0.11

        其中192.168.0.11是客戶端IP地址。程序代碼的要點如下∶

        ·基于HTTP協(xié)議的servlet必須引入javax.servlet和javax.servlet.http包;

        ·HelloServlet從類HttpServlet派生,HttpServlet是GenericServlet的一個派生類,通過GenericServlet實現(xiàn)了Servlet界面。HttpServlet為基于HTTP協(xié)議的servlet提供了基本的支持;

        ·service()方法是servlet程序的入口點,當用戶從瀏覽器調(diào)用servlet時,servlet將進入該方法。service()包含兩個參數(shù),HttpServletRequest對象包含了客戶端請求的信息,可以通過該參數(shù)取得客戶端的一些信息(例如IP地址、瀏覽器類型等)以及HTTP請求類型(例如GET、HEAD、POST、PUT等);HttpServletResponse對象用于完成Servlet與客戶端的交互,通過調(diào)用HttpServletResponse.getOutputStream()客戶取得向客戶端進行輸出的輸出流,向客戶端發(fā)送HTML頁面。

        2.編譯Servlet代碼

        利用JDK 1.1對Servlet代碼進行編譯(假設(shè)Web服務(wù)器采用Java Web Server),其命令行為:

        c:\> javac -d c:\JavaWebServer\servlets HelloServlet.java

        進行編譯時必須保證JSDK的Java Servlet類已經(jīng)包含在CLASSPTH中,上述命令將編譯后的.class代碼放置在Java Web Server的Servlets目錄下(如果你使用其他的Web Server,需要將.class代碼放置在該Web Server指定的目錄下)。

        3.將Servlet添加進Web Server

        由于Servlet是通過Web Server進行調(diào)用的,因此必須將其在Web Server中進行注冊,以便Web Server能夠正確的找到Servlet代碼。對于Java Web Server來說,它提供了一個系統(tǒng)管理Applet,通過該Applet對我們的HelloServlet進行注冊(在這里,我們將HelloServlet命名為firstServelt)。

        3.測試Servlet

        現(xiàn)在可以對HelloServlet進行測試了,打開瀏覽器,鍵入

        http://192.168.0.9/servlet/firstServlet

        其中192.168.0.9是安裝有Java Web Server的機器IP地址。

        如果一切正常,在瀏覽器中將返回一個頁面,輸出“Hello,You come from 192.168.0.11”。其中192.168.0.11是運行瀏覽器的機器IP地址。

      免費預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 亚洲欧美中文字幕乱码在线 | 亚洲伊人五月丁香激情 | 香蕉亚洲欧洲在线一区 | 婷婷中文字幕一区二区三区 | 五月婷婷亚洲综合视频 | 亚另类在线观看 |