基于Jave的Web服務(wù)工作機(jī)制3_JSP教程
推薦:基于Jave的Web服務(wù)工作機(jī)制4在下面的段落中,讓我們來看看這三個(gè)類吧。 HttpServer 類 HttpServer類表示一個(gè)web服務(wù)器,且在公共靜態(tài)目錄WEB_ROOT及它的子目錄中能為找到的那些靜態(tài)資源
ServerSocket 類
Socket 類表示的是客戶端的socket。無論什么時(shí)候,只要你想連接到一個(gè)遠(yuǎn)程服務(wù)器的應(yīng)用,你都要構(gòu)建一個(gè)socket。如果你想執(zhí)行一個(gè)服務(wù)器應(yīng)用程序,比如HTTP服務(wù)或者FTP服務(wù)的程序,那么你需要使用不同的途徑。因?yàn)槟愕姆⻊?wù)器必須一直是開機(jī)閑置,所以它不知道什么時(shí)候客戶機(jī)試圖來連接它。
這個(gè)時(shí)候,需要使用java.net.ServerSocket 類。它會(huì)實(shí)現(xiàn)一個(gè)服務(wù)器socket。一個(gè)服務(wù)器socket會(huì)等待來自客戶端的連接。一旦它接收到一個(gè)連接請(qǐng)求,它就會(huì)創(chuàng)建一個(gè) Socket 實(shí)例來處理和客戶端通訊的問題。
要?jiǎng)?chuàng)建一個(gè)服務(wù)器socket,可以使用四種ServerSocket類構(gòu)造方法中的一種來實(shí)現(xiàn)。你需要制定服務(wù)器socket監(jiān)聽的IP地址和端口。 典型的,IP地址如果是127.0.0.1,意味著服務(wù)器socket將監(jiān)聽本地機(jī)器。這個(gè)被監(jiān)聽的IP地址被認(rèn)為是一種綁定地址。server socket的另一個(gè)重要屬性是它的 backlog屬性,它是在server socket拒絕連接請(qǐng)求前,能夠接受的連接請(qǐng)求的最大隊(duì)列長(zhǎng)度。
ServerSocket類的構(gòu)造函數(shù)之一如下:
public ServerSocket(int port, int backLog, InetAddress bindingAddress);
對(duì)于這個(gè)構(gòu)造函數(shù)而言,綁定地址必須是java.net.InetAddress 的一個(gè)實(shí)例。一個(gè)簡(jiǎn)單的辦法是通過調(diào)用它的靜態(tài)方法getByName來構(gòu)造一個(gè)InetAddres對(duì)象。該方法來一個(gè)包含主機(jī)名的字符串參數(shù):
InetAddress.getByName("127.0.0.1");
下面一行代碼構(gòu)造一個(gè)ServerSocket ,它監(jiān)聽本地機(jī)器的8080端口,backlog設(shè)置為1。
new ServerSocket(8080, 1, InetAddress.getByName("127.0.0.1"));
一旦有了一個(gè) ServerSocket 實(shí)例,可以通過調(diào)用accept方法來告訴它等待進(jìn)來的連接請(qǐng)求。這個(gè)方法只有在有一個(gè)連接請(qǐng)求時(shí)才返回。它返回的是Socket類的實(shí)例。這個(gè)Socket對(duì)象能夠發(fā)送和接受來自客戶端應(yīng)用的字節(jié)流,就是第一節(jié)所講到的socket類。實(shí)際上,accept 是本文提及的唯一一個(gè)在應(yīng)用中使用的方法。
Application應(yīng)用
我們的web服務(wù)器應(yīng)用是ex01.pyrmont包的一部分,包含三個(gè)類:
HttpServer
Request
Response
這個(gè)應(yīng)用的入口(靜態(tài)main方法)是HttpServer類。它創(chuàng)建了一個(gè)HttpServer 實(shí)例來調(diào)用它的await方法。 就象這個(gè)方法名所暗示的,await 方法在一個(gè)指定的端口等待一個(gè)HTTP請(qǐng)求,并處理它們,然后發(fā)送回應(yīng)給客戶端。它保持等待狀態(tài),直到收到一個(gè)shutdown命令。 (命令名await來代替wait的原因是wait是System.Object類中的一個(gè)用于線程方面的重要方法)
應(yīng)用僅僅只發(fā)送靜態(tài)資源,比如來自特定目錄的HTML和圖片文件。不支持動(dòng)態(tài)包頭 (比如日期或者cookie) 。
分享:基于Jave的Web服務(wù)工作機(jī)制5input = socket.getInputStream(); output = socket.getOutputStream(); await于是就創(chuàng)建一個(gè)Request對(duì)象并調(diào)用它的 p
- jsp response.sendRedirect不跳轉(zhuǎn)的原因分析及解決
- JSP指令元素(page指令/include指令/taglib指令)復(fù)習(xí)整理
- JSP腳本元素和注釋復(fù)習(xí)總結(jié)示例
- JSP FusionCharts Free顯示圖表 具體實(shí)現(xiàn)
- 網(wǎng)頁(yè)模板:關(guān)于jsp頁(yè)面使用jstl的異常分析
- JSP頁(yè)面中文傳遞參數(shù)使用escape編碼
- 基于jsp:included的使用與jsp:param亂碼的解決方法
- Java Web項(xiàng)目中連接Access數(shù)據(jù)庫(kù)的配置方法
- JDBC連接Access數(shù)據(jù)庫(kù)的幾種方式介紹
- 網(wǎng)站圖片路徑的問題:絕對(duì)路徑/虛擬路徑
- (jsp/html)網(wǎng)頁(yè)上嵌入播放器(常用播放器代碼整理)
- jsp下顯示中文文件名及絕對(duì)路徑下的圖片解決方法
JSP教程Rss訂閱編程教程搜索
JSP教程推薦
猜你也喜歡看這些
- JSP虛擬主機(jī)使用中出現(xiàn)亂碼怎么辦
- Servlet和Filter的url匹配url-pattern
- 解讀JSP中文字符亂碼處理的2種方法
- 用J2ME在移動(dòng)設(shè)備上實(shí)現(xiàn)動(dòng)畫1
- JSP技巧:JSP腳本編程中的Session的用法
- struts+spring實(shí)現(xiàn)的登陸實(shí)例源碼
- JavaBean 在jsp和serlvle中傳遞技術(shù)要點(diǎn)
- JSP腳本元素和注釋復(fù)習(xí)總結(jié)示例
- CNET JSP BASIC建立一個(gè)JSP網(wǎng)站
- 網(wǎng)頁(yè)模板:關(guān)于jsp頁(yè)面使用jstl的異常分析
- 相關(guān)鏈接:
- 教程說明:
JSP教程-基于Jave的Web服務(wù)工作機(jī)制3
。