国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Servlet開發(fā)初步

2019-11-18 15:10:46
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

  一、什么是Servlet? 

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

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

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

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

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

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

  1.JSDK(Java Servlet Development Kit) 

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

  JSDK可以在Javasoft公司的站點(diǎn)免費(fèi)下載,其地址是 

  http://jserv.javasoft.com/PRodUCts/java-server/downloads/index.Html 

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

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

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

  本文將以編寫一個(gè)簡(jiǎn)單的Servlet(我們稱之為HelloServlet)為例說(shuō)明開發(fā)Servlet的過(guò)程。 

  1.編寫Servlet代碼 

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

  下面是一個(gè)典型的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實(shí)現(xiàn)如下功能∶當(dāng)用戶通過(guò)瀏覽器訪問(wèn)該servlet時(shí),該servlet向客戶端瀏覽器返回一個(gè)HTML頁(yè)面∶ 

  Hello, You come from 192.168.0.11 

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

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

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

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

  2.編譯Servlet代碼 

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

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

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

  3.將Servlet添加進(jìn)Web Server 

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

  3.測(cè)試Servlet 

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

  http://192.168.0.9/servlet/firstServlet 

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

  假如一切正常,在瀏覽器中將返回一個(gè)頁(yè)面,輸出“Hello,You come from 192.168.0.11”。其中192.168.0.11是運(yùn)行瀏覽器的機(jī)器IP地址。 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 英吉沙县| 柘城县| 武安市| 弋阳县| 泸水县| 视频| 白银市| 五家渠市| 沂水县| 岫岩| 尤溪县| 白朗县| 佛教| 邢台市| 新建县| 乌拉特中旗| 磐安县| 尉犁县| 黎平县| 武陟县| 铜山县| 赤水市| 舒兰市| 永顺县| 贡嘎县| 乡宁县| 新宁县| 吉林市| 宿松县| 五河县| 安吉县| 同江市| 和政县| 平罗县| 遂平县| 延庆县| 卓资县| 迁安市| 黄浦区| 朝阳市| 嘉荫县|