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地址。
推薦閱讀
- ·Linux字符設(shè)備驅(qū)動框架解析:file_operations的核心作用與實現(xiàn)
- ·廣東朝歌數(shù)碼科技股份有限公司專場招聘會
- ·深化產(chǎn)教融合,共筑技能人才培養(yǎng)新生態(tài) —— 廣州華立學院到訪粵嵌從化校區(qū)為深化產(chǎn)教
- ·校企合作新突破 | 粵嵌科技與三亞學院共探產(chǎn)教融合新路徑
- ·粵嵌科技入選國家級職業(yè)數(shù)字展館聯(lián)合建設(shè)單位,賦能計算機程序設(shè)計員高技能人才培養(yǎng)
- ·嵌入式實時操作系統(tǒng)的性能優(yōu)化與實現(xiàn)路徑
- ·校企攜手賦能教育!粵嵌科技助力海南科技職業(yè)大學探索 AGI 時代教學新范式
- ·嵌入式系統(tǒng)中的低功耗設(shè)計策略與實現(xiàn)路徑
- ·深圳市軒宇軟件開發(fā)有限公司專場招聘會
- ·嵌入式系統(tǒng)中的代碼空間優(yōu)化:策略與實踐