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

首頁(yè) > 服務(wù)器 > Win服務(wù)器 > 正文

基于Jave的Web服務(wù)工作機(jī)制(7)

2024-09-10 00:02:39
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
sendStaticResource 方法是非常簡(jiǎn)單的。它首先傳遞父路徑和子路徑給File類(lèi)的構(gòu)造器,從而對(duì)java.io.File類(lèi)進(jìn)行了實(shí)例化。

  File file = new File(HttpServer.WEB_ROOT, request.getUri());
  然后它檢查文件是否存在。如果存在,sendStaticResource 方法通過(guò)傳遞File對(duì)象來(lái)構(gòu)造一個(gè)java.io.FileInputStream對(duì)象。然后調(diào)用FileInputStream 的read方法,將字節(jié)流寫(xiě)如到OutputStream輸出。注意這種情況下, 靜態(tài)資源的內(nèi)容也被作為原始數(shù)據(jù)被發(fā)送給了瀏覽器。

if (file.exists()) {
  fis  = new FileInputStream(file);
  int ch = fis.read(bytes, 0, BUFFER_SIZE);

  while (ch != -1) {
    output.write(bytes, 0, ch);
    ch = fis.read(bytes, 0, BUFFER_SIZE);
  }
}

  如果這個(gè)文件不存在,sendStaticResource 方法發(fā)送一個(gè)錯(cuò)誤消息給瀏覽器。

String errorMessage = "HTTP/1.1 404 File Not Found/r/n" +
  "Content-Type: text/html/r/n" +
  "Content-Length: 23/r/n" +
  "/r/n" +
  "<h1>File Not Found</h1>";
  output.write(errorMessage.getBytes());

  編譯和運(yùn)行應(yīng)用程序

  為了編譯和運(yùn)行應(yīng)用,你首先需要解壓包含本文應(yīng)用程序的.zip文件。你解壓的目錄成為工作目錄(working directory),它有三個(gè)子目錄: src/, classes/, 和 lib/。 要編譯應(yīng)用程序需要在工作目錄輸入如下語(yǔ)句:

  javac -d . src/ex01/pyrmont/*.java
  這個(gè)-d 選項(xiàng)參數(shù)將結(jié)果寫(xiě)到當(dāng)前目錄,而不是src/ 目錄。

  要運(yùn)行應(yīng)用程序,在工作目錄中輸入如下語(yǔ)句:

  java ex01.pyrmont.HttpServer
  要測(cè)試你的應(yīng)用程序,打開(kāi)瀏覽器,在地址欄中輸入如下URL:

  http://localhost:8080/index.html
  你將可以看到瀏覽器中顯示的index.html 頁(yè)面。

  Figure 1. The output from the web server

  在控制臺(tái)(Console),你能看到如下內(nèi)容:

  GET /index.html HTTP/1.1
  Accept: */*
  Accept-Language: en-us
  Accept-Encoding: gzip, deflate
  User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; windows 98)
  Host: localhost:8080
  Connection: Keep-Alive

  GET /images/logo.gif HTTP/1.1
  Accept: */*
  Referer: http://localhost:8080/index.html
  Accept-Language: en-us
  Accept-Encoding: gzip, deflate
  User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; windows 98)
  Host: localhost:8080
  Connection: Keep-Alive

  概要總結(jié)

  在本文中,你了解了一個(gè)簡(jiǎn)單的Web服務(wù)器的工作機(jī)制。本文附帶的應(yīng)用程序源代碼只包含三個(gè)類(lèi),但并不是所有的都有用。盡管如此,它還是能被作為一種很好的學(xué)習(xí)工具為我們服務(wù)。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 游戏| 兰溪市| 汕头市| 镇雄县| 保定市| 阿尔山市| 苏尼特右旗| 武安市| 哈密市| 曲松县| 东乡县| 拜泉县| 大丰市| 平泉县| 棋牌| 大兴区| 泰来县| 遂川县| 阿坝县| 新沂市| 阜阳市| 龙山县| 吉林省| 峨山| 新和县| 股票| 镇远县| 诸暨市| 依兰县| 赤水市| 莱芜市| 云梦县| 永平县| 蒙山县| 白银市| 高雄县| 曲水县| 德化县| 天气| 九龙城区| 峨山|