亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Netscape服務器端編程技術

2019-11-18 12:44:50
字體:
來源:轉載
供稿:網友

  到 目 前 為 止, 相 信 大 家 對 客 戶 端java 已 經 比 較 熟 悉 了, 甚 至 可 能 已 經
  寫 過 許 多 出 色 的Applets 小 程 序。 但 是, 大 家 可 能 不 太 熟 悉 服 務 器 端Java,也 沒 寫 過 服 務 器 端Applet。 本 文 將 帶 領 讀 者 初 窺 服 務 器 端Java 的 門 徑。
  
  服 務 器 端Java(SSJ,Server Side Java) 是 公 共 網 關 接 口(CGI) 和 低 級 服 務 器API
  程 序 設 計( 例 如Netscape 的NSAPI 與Microsoft 的ISAPI) 的 混 合 體。 有 時 我 們 稱SSJ
  為Servlets 或 服 務 器 端Applet。
  
  本 文 向 大 家 介 紹 服 務 器 端Java 及 引 導 大 家 一 步 步 實 現 服 務 器 端Java 的
  執 行 程 序,Netscape 稱 之 為 服 務 器 端Applets(SSA,Server Side Applet)。
  
  SSA 像CGI 的 腳 本 程 序 一 樣, 接 收“get” 和“post” 請 求, 并 返 回 一個Web 頁 面( 通 常 以Html 形 式)。 但 是SSJ 如 同NSAPI/ISAPI 一 樣 是 動 態 地 裝 入服 務 器 的, 這 就 消 除 了CGI 啟 動 時 的 延 遲, 也 使SSJ 能 在 兩 次 執 行 中 維 持它 自 身 的 狀 態, 例 如 保 持 與 數 據 庫 開 放 的 連 接。
  
  SSA 在 他 們 自 己 的“ 沙 箱”(“sandbox”) 中 執 行, 這 樣 可 以 保 證 安 全。
  例 如, 一 個 毀 滅 性 的Applet 不 會 像NSAPI/ISAPI 程 序 設 計 那 樣 摧 毀 整 個 服 務器, 這 種 安 全 性 允 許 上 載 執 行Applet, 就 像 客 戶 機 端Java 的 下 載 執 行Applet一 樣。SSA 最 重 要 的 優 點 是Java 的 平 臺 無 關 性 和 面 向 對 象 的 特 性。
  
  本 文 以Netscape 服 務 器EnterPRise 2.0 和Fast Track 2.0 為 例 來 介 紹 服 務 器
  端Java 應 用 的 開 發。 準 備 服 務 器 在 編 寫 服 務 器 端Applet 前, 需 要 準 備 相 應
  的 服 務 器。 首 先 打 開 服 務 器 的Java 解 釋 器。 在 服 務 器 管 理 器 的“Programs
  ->Java” 欄 下 點 擊“yes” 按 鈕 啟 動Java 解 釋 器, 服 務 器 管 理 器 就 會 提 示 輸
  入“Java applet Directory”, 以 存 放SSA 類 文 件。 服 務 器 提 供 有 缺 省 地 址。
  在Unix 機 上, 缺 省 值 是/usr/ns home/plugins/java/applets。 在Windows 機 上, 缺 省
  值 為c:/Program Files/Netscape/Server/plugins/Java/applets( 注: 在 這 個 輸 入欄,Netscape 常 常 對 其/ 和 / 不 加 區 別。 不 必 擔 心,Netscape 對 這 兩 種 類 型 斜 杠的 處 理 方 式 是 相 同 的。) 可 能 的 話 最 好 使 用 缺 省 目 錄。 如 果 習 慣 于 自 己 的目 錄, 只 要 該 目 錄 是 在 服 務 器 的 根 目 錄 下 面, 就 可 把 缺 省 目 錄 下 的 所 有文 件 拷 貝 到 自 己 的 工 作 目 錄 下, 保 存 這 些 改 動, 關 閉 服 務 器, 再 重 新 啟動 該 服 務 器。
  實 驗
  
  下 面, 我 們 利 用Netscape 提 供 的Applet 進 行 實 驗。 把 瀏 覽 器 指
  向http://servername/server java/Connect, 它 加 載 并 顯
  示http://www.meer.net/barn/index.html。Connect applet 為 取 出 此 頁 面 建 立 一 個socket
  通 訊, 如 果 服 務 器 在 一 個 防 火 墻 后 面, 這 可 能 會 導 致 服 務 器 錯 誤。 下
  面, 讓 我 們 假 定 防 火 墻 阻 塞 了socket, 我 們 將 編 輯Connect applet 代 碼, 使 它
  能 在 不 同 的Web 服 務 器 中 訪 問 不 同 頁 面。
  
  在“Java applet 目 錄” 中 可 得 到Connect.java 文 件。 它 包 含 開 發 服 務 器
  端Applet 的 基 本 類, 其 中 最 重 要 的 類 是HttpApplet, 這 是 所 有 服 務 器 端Applet
  的 超 級 類。 實 現 服 務 器 端Applet 所 需 的 唯 一 方 法 是run 方 法,Applet 每 接 收 一次“hit” 就 要 執 行 一 次 該 方 法。 在 使 輸 出 轉 到 客 戶 機 之 前,Connect 的run 方法 向“host” 打 開 一 個socket 并 取 出“request”。 通 過 設 置 變 量“host”, 可 以訪 問 任 一 臺 機 器; 同 樣 設 置 變 量“request”, 可 以 訪 問 某“host” 上 的 任 一個 頁 面。
  
  import netscape.server.applet. *;
  import java.io.PrintStream;
  import java.io.InputStream;
  import java.io.OutputStream;
  import java.io.DataInputStream;
  import java.net.Socket;
  class Connect extends HttpApplet {
  public void run() throws Exception {
  String host = “www.meer.net";
  //讀者可以根據自己的環境修改此主機名
  int port = 80;
  String request = “GET /barn/index.html HTTP/1.0/n";
  //同樣可以修改
  Socket s = new Socket(host, port);
  OutputStream os = s.getOutputStream();
  PrintStream op = new PrintStream(os);
  op.println(request);
  InputStream is = sam();
  DataInputStream di = new DataInputStream(is);
  String line;
  if (returnNormalResponse(“text/html")) {
  PrintStream out = getOutputStream();
  out.println(“&lth1&gtData on "+host+“port "+port +“</h1>");
  out.println(“request: "+request+“<hr>");
  while ((line = di.readLine()) != null)
  out.println(line);
  }
  }
  }
  
  設 置 變 量“host” 或“request” 后, 下 一 步 就 是 重 新 編 譯Connect。
  
  在Windows 系 統 下, 把 標 準javac 編 譯 器 的classpath 設 置 成 包 括serv2
  0.zip.javac classpath  /classes/serv2 0.zip Connect.java。
  
  在Unix 系 統 下,Netscape 在Java applet 目 錄 的 上 級 目 錄 中 提 供 一 個Java 編
  譯 器(javac)。 這 個javac 用 來 編 譯 的 實 際 上 是 一 個 叫 做java sun.tools.javac.Main 的
  腳 本 程 序。 在 某 些 系 統 中,sun.tools.javac.Main 編 譯 器 使 用 新 版JDK11 中 的 方法, 例 如java.lang.Character.isJavaLetterOrDigit(), 如 果 沒 有JDK11, 可 能 會 遇 到 很
  多 麻 煩。 最 好 選 擇 常 用 的 標 準javac 編 譯 器, 如javac classpath. /classes/serv2
  0.zip Connect.java。 如 果 要 使 用 服 務 器 提 供 的javac 腳 本 程 序, 只 需
  用“../javac” 來 替 換“javac”。
  
  在 這 個 編 譯 過 程 中, 可 能 會 出 現 這 樣 一 個 錯 誤:
  
  Connect.java:1:Package netscape.server.applet not found in import.
  import netscape.server.applet. *;
  ^
  1 error
  
  在import 語 句 中 刪 掉wildcards, 就 可 避 免 這 個 錯 誤。
  
  在Unix 系 統 下,Netscape 在Java applet 目 錄 中 提 供 一 個makefile 文 件, 以 控
  制Applet 的 編 譯。 可 惜, 這 個makefile 文 件 使 用‘ %’wildcard, 它 是mk/nmake 的擴 展, 有 時 不 可 獲 取 其 代 碼。 問 題 代 碼 如 下:
  
 ?。?class; %.java
  ../javac classpath ../classes/serv2 0.zip $ *.java
  
  解 決 辦 法 是 使 用suffixes 規 則, 編 輯makefile 文 件 的 第 一 行, 如:SUFFIXES
  :java.class 然 后 執 行:
  
  javac classpath ../classes/serv2 0 zip $ <
  
  即 刪 去 了../, 這 樣makefile 文 件 就 可 調 用 標 準 的javac 編 譯 器。 測 試 這 個新 的makefile 文 件, 重 新 保 存Connect.java 文 件, 然 后 執 行“make”。
  
  Methods
  
  下 面 介 紹 幾 個 有 用 的 方 法(Methods)。
  
  1.PrintStream getOutputStream() throws IOException;
  
  返 回 一 個PrintStream, 把 響 應 輸 出 到 客 戶 機 上, 此 方 法 代 替了System.out。
  
  2.Hashtable getFormData() throws IOException;
  
  返 回 一 個Hashtable( 哈 希 表), 其 中 存 儲 有HTPP 請 求 的name value
  對,value 串 是 從 加 密 的URL 形 式 解 密 后 得 到 的。 若 沒 有form data, 則 顯 示I/O
  異 常。
  
  3.String getFormField(String fieldName)throws IOException;
  
  利 用getFormField 方 法 能 找 到 一 個field, 且 僅 僅 一 個。 若 沒 有form data, 也
  顯 示I/O 異 常。
  
  4.boolean retrunNormalResponse(String contentType)throws IOException;
  
  根 據 在 參 數 中 指 定 的 內 容 類 型 啟 動HTTP 響 應。 若 是“get” 或“post” 請
  求 則 返 回 值 為true, 若 是“head” 請 求 則 返 回false。
  
  5.public boolean returnErrorResponse(String contentType,int status,String reason) throws
  IOException;
  
  啟 動 響 應 報 錯 。 它 帶 有 三 個 參 數: 內 容 類 型、 狀 態( 例 如HttpApplet
  BAD REQUEST, 其 標 準 錯 誤 代 碼 號 為400), 以 及 可 缺 省 的 用 來 說 明 錯 誤
  原 因 的 字 符 串。
  
  Netscape 在 它 的 服 務 器 中 安 裝 了 一 個API 入 門 手 冊, 其 中 有 許 多 開 發 服
  務 器 端Java 經 常 調 用 的 方 法。 在Unix 系 統 下, 通 過/usr/ns
  home/bin/httpd/admin/html/manual/pg/javapi.htm, 可

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久99久久久久久久噜噜| 亚洲香蕉av在线一区二区三区| 国产一区在线播放| 亚洲系列中文字幕| 国产美女直播视频一区| 亚洲精品资源美女情侣酒店| 亚洲欧美精品一区| 亚洲精品suv精品一区二区| 国产成人精品一区二区在线| 国产精品久久久久久av福利软件| 在线观看国产精品日韩av| 国产va免费精品高清在线观看| 亚洲成人av片在线观看| 91久久精品美女高潮| 久久久亚洲精品视频| 久久99久久久久久久噜噜| 精品国产一区二区三区久久久狼| 中文字幕亚洲一区二区三区五十路| 欧美激情欧美激情在线五月| 91午夜理伦私人影院| 成人精品视频在线| 国产精品色悠悠| 久久精品国产一区二区三区| 久久久久99精品久久久久| 欧美国产日韩中文字幕在线| 亚洲精品av在线| 国产精品白嫩初高中害羞小美女| 福利二区91精品bt7086| 成人a在线观看| 久久精品人人爽| 精品香蕉一区二区三区| 色yeye香蕉凹凸一区二区av| 欧美高清视频在线观看| 国产精品白嫩初高中害羞小美女| 欧美影院成年免费版| 富二代精品短视频| 懂色av影视一区二区三区| 一二美女精品欧洲| 欧洲亚洲免费视频| 国产美女91呻吟求| 国产一区二区三区久久精品| 亚洲视频在线免费观看| 成人欧美一区二区三区黑人孕妇| 精品一区二区三区三区| 久久精品国产综合| 亚洲成人动漫在线播放| 亚洲第一中文字幕在线观看| 国产欧美 在线欧美| 国产亚洲精品高潮| 国产亚洲人成网站在线观看| 国产精品久久一| 国产精品免费电影| 欧美日韩一区二区精品| 狠狠躁夜夜躁人人躁婷婷91| 国产一区二区三区在线播放免费观看| 亚洲欧美国产一本综合首页| 日韩精品视频在线免费观看| 欧美一级片免费在线| 色爱av美腿丝袜综合粉嫩av| 亚洲女人天堂色在线7777| 欧美一区亚洲一区| 欧美成人精品xxx| 精品久久久久久亚洲精品| 亚洲小视频在线| 亚洲午夜性刺激影院| 国产精品v日韩精品| 亚洲成在人线av| 日韩av电影国产| 97视频在线观看视频免费视频| 国产精品人人做人人爽| 日本久久中文字幕| 国产精品美女久久久免费| 国产视频一区在线| 亚洲xxx自由成熟| 色综合导航网站| 韩国美女主播一区| 欧美日韩性视频在线| 亚洲精品久久久久| 中文字幕精品视频| 国产精品aaa| 国产精品激情自拍| 庆余年2免费日韩剧观看大牛| 日韩久久精品成人| 久久久久久久久国产| 91影院在线免费观看视频| 色噜噜狠狠狠综合曰曰曰88av| 久久久久国产视频| 韩剧1988免费观看全集| 久久天天躁夜夜躁狠狠躁2022| 国产在线精品播放| 国产一区二区丝袜高跟鞋图片| 亚洲v日韩v综合v精品v| 国产精品综合不卡av| 精品动漫一区二区| 亚洲天堂av女优| 欧美午夜宅男影院在线观看| 午夜剧场成人观在线视频免费观看| 中文字幕精品www乱入免费视频| 日本电影亚洲天堂| 日韩av在线免费播放| 久久色精品视频| 欧亚精品中文字幕| 中文字幕一区电影| 91av中文字幕| 国产在线精品一区免费香蕉| 97av在线视频| 欧美电影免费在线观看| 亚洲精品日韩久久久| 搡老女人一区二区三区视频tv| 欧美日韩在线第一页| 日产日韩在线亚洲欧美| 中文字幕欧美精品在线| 久久成人在线视频| 精品国产31久久久久久| 久久久久国产一区二区三区| 亚洲成人激情在线观看| 久久国产天堂福利天堂| 欧美国产乱视频| 国产精品户外野外| 日韩理论片久久| 欧美一区二三区| 欧美自拍视频在线观看| 一区二区三区日韩在线| 亚洲一区www| 色99之美女主播在线视频| 久久久久亚洲精品成人网小说| 国产精品久久久久久久久久久不卡| 精品丝袜一区二区三区| 精品亚洲一区二区三区| 色与欲影视天天看综合网| 视频在线一区二区| 国语自产精品视频在线看抢先版图片| 91精品91久久久久久| 亚洲无亚洲人成网站77777| 最新69国产成人精品视频免费| 国产婷婷成人久久av免费高清| 日本欧美爱爱爱| 日韩福利视频在线观看| 久青草国产97香蕉在线视频| 国产欧美一区二区| 日韩av在线免费| 亚洲va国产va天堂va久久| 国产小视频91| www欧美日韩| 97在线精品国自产拍中文| 亚洲国产欧美一区二区三区久久| 欧美黑人性生活视频| 国产精品一区二区三区在线播放| 欲色天天网综合久久| 中文日韩电影网站| 欧美日韩一区免费| 色播久久人人爽人人爽人人片视av| 97在线精品视频| 亚洲精品资源美女情侣酒店| 日韩av在线网| 久久成人免费视频| 91在线视频一区| 欧美成人精品影院| 久久久国产精品亚洲一区| 九九热r在线视频精品| 精品国产欧美一区二区三区成人| 日韩欧美在线网址| 欧美美最猛性xxxxxx| 欧美激情视频给我|