无码色色,久久久久久免费精品喷水,美女把胸罩解开让男生摸,欧美一级在线观看视频,色亚洲天堂,色综合天天综合给合国产

咨詢電話:023-88959644    24小時服務(wù)熱線:400-023-8809
NEWS CENTER ·
新聞動態(tài)
關(guān)注中技互聯(lián) 關(guān)注前沿

怎樣運(yùn)用Java來實(shí)現(xiàn)Web服務(wù)器?

發(fā)表日期:2012-04-30    文章編輯:山城阿修    瀏覽次數(shù):83    標(biāo)簽:重慶網(wǎng)站建設(shè);重慶網(wǎng)頁制作

重慶網(wǎng)頁制作 提供

  首先,HTTP和談,真理的效果

       萬維網(wǎng)是互聯(lián)網(wǎng)作為傳輸系統(tǒng)的序言中,最基本的傳輸單位的WWW互聯(lián)網(wǎng)網(wǎng)頁。基于WWW的客戶端的任務(wù)/服務(wù)網(wǎng)絡(luò)讀者(客戶端)和Web服務(wù)(服務(wù)),超文本傳輸​​和談(HTTP)的設(shè)備占模具兩者之間的溝通。 HTTP和談是TCP / IP為基礎(chǔ)的和平談判,和談上,使用層之間的網(wǎng)絡(luò)讀者和網(wǎng)絡(luò)服務(wù)和談,是一種常見的形式面向?qū)ο蟮暮驼劇?HTTP和談,真理的影響包括四個步伐:

鏈接:(1)的Web網(wǎng)頁服務(wù)建立銜接,打開一個虛擬的文件被稱為一個socket(套接字),這個文件的建設(shè),標(biāo)志著寄養(yǎng)成功的銜接。

(2)懇求:網(wǎng)絡(luò)讀者是一個套接字設(shè)備的Web服務(wù)的懇求。 HTTP的請求一般是GET或者POST敕令(POST表單參數(shù)傳遞)。獲取過關(guān)敕令:

獲取途徑/文件名HTTP/1.0的

那次訪問文件,文件名的HTTP/1.0指出,網(wǎng)絡(luò)讀者使用的HTTP版本。

(3)款:提交通過HTTP和談的懇求和發(fā)送到網(wǎng)絡(luò)服務(wù)的網(wǎng)絡(luò)讀者。 Web服務(wù)收到的事務(wù)處理,處理后的HTTP返回網(wǎng)站讀者頁面懇求的后果,然后顯示在網(wǎng)絡(luò)上的讀者。

例如:假設(shè)客戶端和www.mycompany.com:8080/mydir/index.html建立銜接,它會發(fā)送一個GET敕令:GET / mydir的/的index.html HTTP/1.0的。主機(jī)名www.mycompany.com MYDIR內(nèi)容從找到的文件空間的文件index.html子表的Web服務(wù)。如果您找到該文件,該文件內(nèi)容的Web服務(wù)發(fā)送到Web的讀者反應(yīng)。

為了通知您傳輸?shù)膬?nèi)容類型,Web服務(wù)的設(shè)備起首網(wǎng)絡(luò)讀者發(fā)送的HTTP頭信息,然后發(fā)送的細(xì)節(jié)(例如,HTTP正文中的信息)的HTTP之間的空白行隔開頭和HTTP。
HTTP頭信息:

:①HTTP 1.0 200 OK“

這是Web服務(wù)的響應(yīng)的第一行,列表發(fā)球正在運(yùn)行的HTTP版本號和響應(yīng)代碼。代碼“200 OK”的公開懇求完成性能。

②在MIME_Version:1.0

它指示MIME類型的版本。

(3)CONTENT_TYPE:類型

這個頭信息是一個非常重大,這表明MIME類型的信息的HTTP正文。如:“CONTENT_TYPE:text / html的指示數(shù)據(jù)發(fā)送到一個HTML文檔。

④CONTENT_LENGTH:長度值

這表明信息的HTTP身體的長度(字節(jié))。

(4)封閉的銜接:網(wǎng)絡(luò)讀者與Web服務(wù)的必要處理后斷開,以保證其他網(wǎng)站讀者可以建立與設(shè)備的Web服務(wù)的融合。

第二,Java Web服務(wù)的設(shè)備的功能設(shè)計(jì),為了完成

基于上述HTTP和談?wù)胬淼男Ч?,得到承認(rèn)的Web服務(wù)方法的順序如下:

(1)創(chuàng)建ServerSocket類對象,監(jiān)聽端口8080。這是HTTP規(guī)范的TCP / IP端口80,以區(qū)別于它,并采取;

(2)等待承受收斂到8080端口,與客戶端的套接字接口的客戶端;

(3)創(chuàng)建一個輸入流套接字字河道和輸出流outstream之間的關(guān)聯(lián);

(4)從輸入流inStream讀取與客戶端的插座觸點(diǎn)提交懇求線的關(guān)系,懇求信息模式:獲取途徑/文件名HTTP/1.0的

(5)獲得懇求懇求信息類型。如果承認(rèn)類型GET,懇求信息獲取訪問的HTML文件名。沒有HTML文件名作為文件名,地方的index.html;

(6)如果HTML文件,打開該HTML文件,返回的HTTP頭和HTML內(nèi)容的文件后插座讀者到Web,然后關(guān)閉該文件。 Web或發(fā)送錯誤信息的讀者;

(7)封閉和響應(yīng)Web閱讀器接口插座字。

下列順序準(zhǔn)備按照上面的方法可以完成多線程的Web發(fā)球局,以保證多個客戶端的功能與Web服務(wù)的銜接。

1為了:WebServer.java文件
/ / WebServer.java使用設(shè)備的Java Web服務(wù)
進(jìn)口java.io. *;
導(dǎo)入java.net。 *;
公共類WebServer的{
公共靜態(tài)無效的主要(字符串作為參數(shù)[]){
I = 1端口= 8080;
ServerSocket的服務(wù)器= NULL;
Socket的客戶端= NULL;
嘗試{
服務(wù)器=新的ServerSocket(PORT);
(\ + server.getLocalPort()“Web服務(wù)器監(jiān)聽端口\”);
(; ;) {
客戶端= server.accept(); / /下的懇求客戶端的收斂
新ConnectionThread(客戶端)。啟動();
I + +;
}
}趕上(例外五){(E);}
}
}

/ * ConnnectionThread類,通信與網(wǎng)絡(luò)讀者完成* /
類ConnectionThread延伸主題{
Socket的客戶端/ /收斂的網(wǎng)絡(luò)讀者插座字
INT計(jì)數(shù)器; / /計(jì)數(shù)器
公共ConnectionThread(CL插座,詮釋三){
客戶端= CL;
計(jì)數(shù)器= C;
}
公共無效的run()/ /線程體
{
嘗試{
字符串destIP = client.getInetAddress()。的ToString(); / /客戶端的IP地址
destport INT = client.getPort()/ /客戶端橫幅
(\“連接\”+計(jì)數(shù)器+ \“:\”+ destIP + \“端口\”destport + \“\”);
PrintStream的outstream =新的PrintStream(client.getOutputStream());
數(shù)據(jù)輸入流河道新的數(shù)據(jù)輸入流(client.getInputStream());
字符串聯(lián)= instream.readLine(); / /讀取由Web讀者提出認(rèn)罪
(\“的收稿日期:\”+內(nèi)聯(lián));
如果(getrequest(聯(lián))){/ /如果的GET懇求
字符串的文件名= getfilename(內(nèi)聯(lián));
文件的文件=新的文件(文件名);
(file.exists()){/ /如果文件存在,文件傳送到Web閱讀器
(文件名+ \“要求\”);
outstream.println(\“HTTP/1.0 200 OK \”);
outstream.println(\“MIME_version:1.0 \”);
outstream.println(\“內(nèi)容類型:文本/ html \”);
LEN =(INT)file.length的();
outstream.println(CONTENT_LENGTH:\“\”+ LEN);
outstream.println(\“\”);
的sendfile(outstream,文件); / /發(fā)送文件
outstream.flush();
{/ /文件不存在
字符串NOTFOUND = \“未找到


錯誤404文件未找到
\“;
outstream.println(\“的HTTP/1.0 404沒有找到\”);
outstream.println(\“內(nèi)容類型:文本/ html \”);
outstream.println(\“CONTENT_LENGTH:\”+ notfound.length()+ 2);
outstream.println(\“\”);
outstream.println(NOTFOUND);
outstream.flush();
}
}
長M1 = 1;
(M1是1110萬美元)<{M1 + +;} / /延時
client.close();
}捕獲的(IOException e)條{
system.out.println(\“異常:\”+ E);
}
}

/ *獲取懇求型的能力,“GET”* /
布爾getrequest(弦樂){
(s.length()> 0)
{
((0,3)。s.substring equalsIgnoreCase(\“\”)),如果返回true;
}
返回false;
}

/ *要訪問的文件名* /
在的字符串getfilename(字符串){
字符串F = s.substring(s.indexOf(\'\')+1);
F = f.substring(0 f.indexOf(\'\'));
嘗試{
(f.charAt(0)== \'/ \')
F = f.substring(1);
}捕捉(StringIndexOutOfBoundsException E){
system.out.println(\“異常:\”+ E);
}
如果(f.equals(\“\”))= \“的index.html \”;
返回f;
}

/ *指定的文件發(fā)送到Web瀏覽器* /
無效的sendfile(PrintStream的是出局,檔案文件){
嘗試{
數(shù)據(jù)輸入流中的新的數(shù)據(jù)輸入流=(新FileInputStream中(文件));
LEN =(INT)file.length的();
字節(jié)緩沖區(qū)[] =新的字節(jié)[LEN];
in.readFully(BUF);
outs.write(BUF,0,LEN);
outs.flush();
in.close();
}趕上(例外五){
system.out.println(\“錯誤檢索文件\”);
system.exit(1);
}
}
}

子類為了ConnectionThread線程,用于解析一個Web讀取設(shè)備提交的呼吁,并應(yīng)對信息返回到Web的讀者。在中學(xué),getrequest()方法用來檢測客戶的請求是否在“的GET”getfilename(S)的方法獲得的的HTML文件名您要訪問客戶乞求的信息小號;“的sendfile()指定后套接字文件的內(nèi)容返回到Web的讀者。

上述順序getrequest()方法和當(dāng)?shù)氐南嚓P(guān)修正案,發(fā)表懇求處置。

三,操作實(shí)例

為了測試的準(zhǔn)確性上面的命令,編譯WebServer.class,ConnectionThread.class和index.html文件放置在收集統(tǒng)一的目錄表(主機(jī):主機(jī)NT40SRV:\ \的JWEB表的內(nèi)容)。

為了2:index.html文件

Java Web服務(wù)的設(shè)備

這是書面與Java Web服務(wù)主頁

起首上運(yùn)行的主機(jī)與Java敕令WebServer.class:
C:\ \ jweb> Java的Web服務(wù)器

Reader軟件,然后運(yùn)行在客戶端輸入的WebServer序列屬于讀者窗口中顯示指定的HTML文件中的URL網(wǎng)址:(http://nt40srv:8080/index.html)。

注意,不是默認(rèn)的一面旗幟默認(rèn)情況下,如8080,操作主機(jī)的正常的Web服務(wù)。

不具有收集長度單機(jī)安裝Windows 95的測試方法的前提是當(dāng)?shù)氐奶娲鶸RL地址的域名localhost或127.0.0.1,URL地址的訪問http://localhost:8080 。

如沒特殊注明,文章均為中技互聯(lián)原創(chuàng),轉(zhuǎn)載請注明來自www.tmsmall666.cn
相關(guān)新聞

CopyrightZJCOO technology Co., LTD. All Rights Reserved.    

渝ICP 備11003429號

  • qq客服
  • 公眾號
  • 手機(jī)版
  • 新浪微博