欧美三级电影完整|亚洲一二三四久久|性爱视频精品一区二区免费在线观看|国产精品啪啪视频|婷婷六月综合操人妻视频网站|99爱免费视频在线观看|美女一级片在线观看|北京熟女88av|免费看黄色A级电影|欧美黄色毛片儿

WebSocket基于Tomcat7的程序

2023-05-22


當(dāng)我開始學(xué)習(xí)GUISOCKET編程時(shí),我一直有一個(gè)夢(mèng)想,我希望有一天我能在WEB上實(shí)現(xiàn)這個(gè)聊天程序。雖然QQ等很多聊天程序已經(jīng)實(shí)現(xiàn),但是他們的實(shí)現(xiàn)都是AJAX,無非是改進(jìn)AJAX或者使用FLEX。個(gè)人覺得實(shí)現(xiàn)起來太復(fù)雜了,沒有研究??!幾個(gè)星期前,我整天都有時(shí)間學(xué)習(xí),用jetty編寫聊天程序,然后聊天就實(shí)現(xiàn)了。然而,jetty服務(wù)器從未使用過。中間服務(wù)器差不多用了一個(gè)星期,讓我很糾結(jié)。最后,我可以在實(shí)驗(yàn)室的電腦上成功運(yùn)行?。?!但可悲的是,當(dāng)我移植到我的筆記本上時(shí),卻出現(xiàn)了各種奇怪的錯(cuò)誤!!所以,我又糾結(jié)了,今晚,奇跡發(fā)現(xiàn)tomcat居然也支持了,所以真的安裝了tomcat7.0.27次測試,驚人的發(fā)現(xiàn)類似于jetty的實(shí)現(xiàn),于是寫了一個(gè)小測試程序,測試成功!!以下是我的代碼,有興趣的童鞋可以一起學(xué)習(xí)哦?。。。?br>index.jsp







1. <%@ page language='java' import='java.util.*' pageEncoding='UTF-8'%>   
2. <%   
3.     String path = request.getContextPath();   
4. "://"
5. ":"
6. "/";   
7. %>   
8.   
9.    
10.    
11.    
12. ">   
13.   
14. My JSP 'index.jsp'
15. <meta http-equiv='pragma' content='no-cache'>   
16. <meta http-equiv='cache-control' content='no-cache'>   
17. <meta http-equiv='expires' content='0'>   
18. <meta http-equiv='keywords' content='keyword1,keyword2,keyword3'>   
19. <meta http-equiv='description' content='This is my page'>   
20.    
50. </head>   
51.   
52. <body οnlοad='startServer()'>   
53. "text" id="msg" value="" size="20"
54. "button" οnclick="sendMessage();" value="發(fā)送"
55. </body>   
56. </html></code></pre> 
   </div> 
   <p> 具體實(shí)現(xiàn)servlet:</p><p><br></p> 
   <p> <br></p><p><br></p> 
   <p> <br></p><p><br></p> 
   <p> </p><p><br></p> 
   <div> 
    <pre><code>1. import
2. import
3. import
4. import
5.   
6. import
7. import
8.   
9. import
10. import
11. import
12.   
13. /**
14.  * Tomcat7 簡單的WebSocket應(yīng)用, WebSocket的servlet接口集成自webSocketServlet,其本質(zhì)是Serlet。
15.  * <p>功能性描述,這部分必須以中文句點(diǎn)結(jié)束。<p>
16.  *
17.  * 創(chuàng)建日期  2013-7-21<br>
18.  * @author  longgangbai <br>
19.  * @version $Revision$ $Date$
20.  * @since   3.0.0
21.  */
22. public class WebSocketExtServlet extends
23.         org.apache.catalina.websocket.WebSocketServlet {   
24. //
25. private Logger logger=Logger.getLogger(WebSocketExtServlet.class.getSimpleName());  
26.       
27. private static final long
28.   
29.       
30. @Override
31. protected
32. ";request ws servelt");  
33.           
34. return  new
35. @Override
36. protected void onClose(int
37. ";web socket closed :" status);  
38.             }  
39. @Override
40. protected void
41. ";web socket onOpen !");  
42.             }  
43. @Override
44. protected void onBinaryMessage(ByteBuffer buff) throws
45. // TODO Auto-generated method stub
46. ";web socket Received : !" buff.remaining());  
47.             }  
48.   
49. @Override
50. protected void onTextMessage(CharBuffer buff) throws
51. ";web socket Received : !" buff.remaining());  
52. //getWsOutbound可以回到目前的WsOutbound,通過他將數(shù)據(jù)返回到客戶端,以下是nio的CharBuffer
53. for (int j = 0; j < 50; j  ) {  
54. try
55. 2000);  
56. this.getWsOutbound().writeTextMessage(CharBuffer.wrap(String.valueOf(j)));  
57. catch
58. // TODO Auto-generated catch block
59.                         e.printStackTrace();  
60.                     }  
61.                 }  
62.                   
63.             }  
64.               
65.         };   
66.     }   
67.   
68. }</code></pre> 
   </div> 
   <p> </p><p><br></p> 
   <p> </p><p><br></p> 
   <p> <br></p><p><br></p> 
   <p> <br></p><p><br></p> 
   <p> <br></p><p><br></p> 
   <ol> 
    <li></li> 
   </ol> 
   <div> 
    <pre><code>1. <?xml version='1.0' encoding='UTF-8'?>  
2. <web-app xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns='http://java.sun.com/xml/ns/javaee' xmlns:web='http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd' xsi:schemaLocation='http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd' id='WebApp_ID' version='2.5'>  
3.   <display-name>Tomcat7WebSocket</display-name>  
4.   <servlet>  
5.    <servlet-name>websocket</servlet-name>  
6. class>com.easyway.websocket.WebSocketExtServlet</servlet-class>  
7.   </servlet>  
8.   <servlet-mapping>  
9.      <servlet-name>websocket</servlet-name>  
10.      <url-pattern>/echo.ws</url-pattern>  
11.   </servlet-mapping>  
12.   <welcome-file-list>  
13.     <welcome-file>index.html</welcome-file>  
14.     <welcome-file>index.htm</welcome-file>  
15.     <welcome-file>index.jsp</welcome-file>  
16. default.html</welcome-file>  
17. default.htm</welcome-file>  
18. default.jsp</welcome-file>  
19.   </welcome-file-list>  
20. </web-app></code></pre> 
   </div> 
   <p> <br></p><p><br></p> 
   <p> <br> 需要注意的是,在研發(fā)過程中,必須在tomcatlib目錄下復(fù)制2個(gè)JAR包:catalina.jar tomcat-coyote.jar<br>但是在你運(yùn)行的時(shí)候一定要把這兩個(gè)包刪掉,否則,就會(huì)和tomcat的包矛盾!!<br> 她們的關(guān)系,也有一定的了解,今天暫時(shí)寫到這里吧!</p><p><br></p> 
  </div> 
 </div> 
</div> 
<div></div> 
<div>    
</div><p style="color:#999; font-size: 12px !important; line-height:18px;margin: 16px 0;">本文僅代表作者觀點(diǎn),版權(quán)歸原創(chuàng)者所有,如需轉(zhuǎn)載請(qǐng)?jiān)谖闹凶⒚鱽碓醇白髡呙帧?/p> <p style="color:#999; font-size: 12px !important; line-height:18px;">免責(zé)聲明:本文系轉(zhuǎn)載編輯文章,僅作分享之用。如分享內(nèi)容、圖片侵犯到您的版權(quán)或非授權(quán)發(fā)布,請(qǐng)及時(shí)與我們聯(lián)系進(jìn)行審核處理或刪除,您可以發(fā)送材料至郵箱:service@tojoy.com</p></div></div></div> <div   id="etn9re8"   class="extended-wrapper"><div   id="rouvjky"   class="extended extended-item extended-article" data-v-263fe52e><h4 class="extended-header" data-v-263fe52e>延伸閱讀</h4> <div   id="3o2y2dq"   class="extended-cnt" data-v-263fe52e><div   id="9xuy93u"   class="nuxt-item" data-v-263fe52e><a href="/news/zixun/646a40c838a9cc36ab80d14d" target="_blank" data-v-263fe52e>
        內(nèi)建函數(shù)Python(H)
      </a></div><div   id="ecowfu9"   class="nuxt-item" data-v-263fe52e><a href="/news/zixun/646a3c6805c01877cfc6bcfc" target="_blank" data-v-263fe52e>
        優(yōu)衣庫全體員工“潮”五一,店面變身「趣玩游樂場」!
      </a></div><div   id="czmosnj"   class="nuxt-item" data-v-263fe52e><a href="/news/zixun/646a398e38a9cc36ab80ce6e" target="_blank" data-v-263fe52e>
        0427開盤策略:跑道板塊迎來翻轉(zhuǎn),高低轉(zhuǎn)換永恒主題
      </a></div><div   id="9as3bkx"   class="nuxt-item" data-v-263fe52e><a href="/news/zixun/646a334405c01877cfc6b820" target="_blank" data-v-263fe52e>
        每日換熱點(diǎn),中醫(yī)、醫(yī)藥板塊全天強(qiáng)勢,影視股集體暴跌
      </a></div><div   id="r3caguc"   class="nuxt-item" data-v-263fe52e><a href="/news/zixun/646a32d638a9cc36ab80cafd" target="_blank" data-v-263fe52e>
        寶馬召回超萬輛進(jìn)口摩托車,萬向軸故障造成事故風(fēng)險(xiǎn)。
      </a></div></div></div> <div   id="nsqe9eq"   class="extended extended-item extended-project" data-v-263fe52e><h4 class="extended-header" data-v-263fe52e>項(xiàng)目推薦</h4> <div   id="glyr4cw"   class="extended-cnt" data-v-263fe52e><div   id="4ognwwe"   class="nuxt-item" data-v-263fe52e><a href="/project/shengmingjiankang/1729384254117584897" target="_blank" data-v-263fe52e>
        康小虎 · 健康小屋
      </a></div><div   id="83u3ibv"   class="nuxt-item" data-v-263fe52e><a href="/project/shengmingjiankang/1772528681008549890" target="_blank" data-v-263fe52e>
        毛加健康
      </a></div><div   id="s8bwvol"   class="nuxt-item" data-v-263fe52e><a href="/project/shengmingjiankang/1635571667663192065" target="_blank" data-v-263fe52e>
        康老板 · 氧療堂
      </a></div></div></div> <div   id="yqrxzmm"   class="swiper-container right-banner"><div   id="3dy3pex"   class="swiper-wrapper"></div> <div   id="mwoa4qi"   class="swiper-pagination"></div></div></div></div></div></main> <footer class="footer" data-v-652f7308 data-v-15e4a4cc><div   id="oobkxx8"   class="footer-wrapper" data-v-652f7308><div   id="j832wha"   class="footer-modular footer-channel" data-v-652f7308><h5 data-v-652f7308>頻道</h5> <ul class="menu" data-v-652f7308><li id="jzraszm"    class="menu-item" data-v-652f7308><a href="/news/shangjieguancha" data-v-652f7308> 商界觀察 </a></li><li id="iqk8wws"    class="menu-item" data-v-652f7308><a href="/news/hongguanjingji" data-v-652f7308> 宏觀聲音 </a></li><li id="jogzayg"    class="menu-item" data-v-652f7308><a href="/news/caifugushi" data-v-652f7308> 財(cái)富故事 </a></li><li id="everx4q"    class="menu-item" data-v-652f7308><a href="/news/hangyequshi" data-v-652f7308> 行業(yè)趨勢 </a></li><li id="4sryaqi"    class="menu-item" data-v-652f7308><a href="/news/zibenchuangtou" data-v-652f7308> 資本創(chuàng)投 </a></li><li id="anguvo9"    class="menu-item" data-v-652f7308><a href="/news/jiankang" data-v-652f7308> 老板健康 </a></li><li id="sickq83"    class="menu-item" data-v-652f7308><a href="/news/zhengcebutie" data-v-652f7308> 補(bǔ)貼政策 </a></li><li id="tiweago"    class="menu-item" data-v-652f7308><a href="/news/tianjiudongtai" data-v-652f7308> 天九動(dòng)態(tài) </a></li><li id="hwrefa3"    class="menu-item" data-v-652f7308><a href="/news/zaozhidao" data-v-652f7308> 早知道 </a></li><li id="evjidqz"    class="menu-item" data-v-652f7308><a href="/news/zhikubaogao" data-v-652f7308> 老板智庫 </a></li><li id="o2zshx9"    class="menu-item" data-v-652f7308><a href="/news/shangjisulan" data-v-652f7308> 商機(jī)速覽 </a></li><li id="38l938j"    class="menu-item" data-v-652f7308><a href="/news/dachangdongtai" data-v-652f7308> 大廠動(dòng)態(tài) </a></li><li id="9dvsyw9"    class="menu-item" data-v-652f7308><a href="/news/dahuihuodong" data-v-652f7308> 大會(huì)活動(dòng) </a></li><li id="8faeucv"    class="menu-item" data-v-652f7308><a href="/news/tianjiusulan" data-v-652f7308> 天九速覽 </a></li></ul></div> <div   id="oykgsac"   class="footer-modular footer-project" data-v-652f7308><h5 data-v-652f7308>項(xiàng)目</h5> <ul class="menu" data-v-652f7308><li id="8v4lccp"    class="menu-item" data-v-652f7308><a href="/project/list" data-v-652f7308> 全部項(xiàng)目 </a></li><li id="wiyosiv"    class="menu-item" data-v-652f7308><a href="/project/daxiaofei" data-v-652f7308> 大消費(fèi) </a></li><li id="z8pijlm"    class="menu-item" data-v-652f7308><a href="/project/xinxikeji" data-v-652f7308> 信息科技 </a></li><li id="mi3ua23"    class="menu-item" data-v-652f7308><a href="/project/shengmingjiankang" data-v-652f7308> 生命健康 </a></li></ul></div> <div   id="i3vydni"   class="footer-info" data-v-652f7308><a href="/" class="footer-logo nuxt-link-active" data-v-652f7308><img src="/_nuxt/img/footer-logo.2947ec4.png" alt="logo" data-v-652f7308></a> <address class="address" data-v-652f7308>北京市朝陽區(qū)仰山公園8號(hào)樓</address> <p class="tel" data-v-652f7308><a href="javascript:void(0)" data-v-652f7308>(010)53118800</a></p> <p class="links-title" data-v-652f7308>友情鏈接</p> <p class="links-item" data-v-652f7308><a href="javascript:void(0)" data-v-652f7308>天九共享控股集團(tuán)</a></p></div></div> <p class="copyright" data-v-652f7308>
    版權(quán)所有? 天九共享網(wǎng)絡(luò)科技集團(tuán)有限公司
    <span data-v-652f7308><a  target="_black" data-v-652f7308>京ICP備17023147號(hào)-3</a></span> <span data-v-652f7308><a  target="_black" data-v-652f7308>京公網(wǎng)安備11010502055446號(hào)</a></span></p></footer></div></div></div>
<footer>
<div class="friendship-link">
<p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p>
<a href="http://www.tbpl000603.cn/" title="欧美三级电影完整|亚洲一二三四久久|性爱视频精品一区二区免费在线观看|国产精品啪啪视频|婷婷六月综合操人妻视频网站|99爱免费视频在线观看|美女一级片在线观看|北京熟女88av|免费看黄色A级电影|欧美黄色毛片儿">欧美三级电影完整|亚洲一二三四久久|性爱视频精品一区二区免费在线观看|国产精品啪啪视频|婷婷六月综合操人妻视频网站|99爱免费视频在线观看|美女一级片在线观看|北京熟女88av|免费看黄色A级电影|欧美黄色毛片儿</a>

<div class="friend-links">

<a href="http://www.utrobot.cn">免费日韩在线观看视频一区二区|欧美a韩国a日本a|亚洲人成人在线观看无码人|国产 在线 无码|久久欧美伊人亚洲密AV|超碰人妻日韩女人一缎片|中文无码艹逼激情|找一下国产黄色A片|超碰中国婷婷国产无玛|国产欧美日韩久久伊人</a>
<a href="http://www.jsjsdq.cn">婷婷五月中文国产高清自拍|天堂网2014一区二区三区|亚洲无码文字天海翼一区二区|欧美激情日韩无码|可以免费看黄的网站|看黄片大AA精品视频网址|伊人AV综合欧美一级片播放|高潮毛片无遮挡高清在线|五月丁香伊人色色99热|亚洲 无码 欧美 另类</a>
<a href="http://www.jingyunshop.cn">黄色特级电影特级片网页|欧美一级黄在线观看|综合亚洲日韩av|制服丝袜国产在线|吴码av在线观看|少妇高潮中文字幕|不用播放日本黄色|思思热在线观看视频|一区二区三区四区中日韩欧美有码|亚州AV.COM</a>

</div>
</div>

</footer>


<script>
(function(){
    var bp = document.createElement('script');
    var curProtocol = window.location.protocol.split(':')[0];
    if (curProtocol === 'https') {
        bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
    }
    else {
        bp.src = 'http://push.zhanzhang.baidu.com/push.js';
    }
    var s = document.getElementsByTagName("script")[0];
    s.parentNode.insertBefore(bp, s);
})();
</script>
</body><div id="qa9qg" class="pl_css_ganrao" style="display: none;"><li id="qa9qg"><code id="qa9qg"><tr id="qa9qg"></tr></code></li><dfn id="qa9qg"></dfn><delect id="qa9qg"><abbr id="qa9qg"><progress id="qa9qg"><pre id="qa9qg"></pre></progress></abbr></delect><source id="qa9qg"><meter id="qa9qg"></meter></source><input id="qa9qg"></input><abbr id="qa9qg"><input id="qa9qg"><del id="qa9qg"><ruby id="qa9qg"></ruby></del></input></abbr><option id="qa9qg"></option><samp id="qa9qg"><tbody id="qa9qg"><strike id="qa9qg"></strike></tbody></samp><s id="qa9qg"><big id="qa9qg"><video id="qa9qg"></video></big></s><abbr id="qa9qg"><fieldset id="qa9qg"></fieldset></abbr><acronym id="qa9qg"><nav id="qa9qg"><strike id="qa9qg"></strike></nav></acronym><dfn id="qa9qg"><bdo id="qa9qg"><tbody id="qa9qg"></tbody></bdo></dfn><font id="qa9qg"></font><table id="qa9qg"><object id="qa9qg"><div id="qa9qg"></div></object></table><delect id="qa9qg"></delect><abbr id="qa9qg"><bdo id="qa9qg"><tbody id="qa9qg"></tbody></bdo></abbr><option id="qa9qg"></option><pre id="qa9qg"><dd id="qa9qg"></dd></pre><abbr id="qa9qg"><input id="qa9qg"><xmp id="qa9qg"></xmp></input></abbr><option id="qa9qg"><wbr id="qa9qg"><div id="qa9qg"></div></wbr></option><abbr id="qa9qg"><i id="qa9qg"><del id="qa9qg"><button id="qa9qg"></button></del></i></abbr><small id="qa9qg"><small id="qa9qg"><tfoot id="qa9qg"><center id="qa9qg"></center></tfoot></small></small><th id="qa9qg"></th><var id="qa9qg"></var><ul id="qa9qg"></ul><em id="qa9qg"></em><del id="qa9qg"><th id="qa9qg"><dl id="qa9qg"><em id="qa9qg"></em></dl></th></del><button id="qa9qg"></button><ul id="qa9qg"></ul><sup id="qa9qg"></sup><input id="qa9qg"></input><form id="qa9qg"></form><dl id="qa9qg"></dl><samp id="qa9qg"><tr id="qa9qg"></tr></samp><input id="qa9qg"></input><tbody id="qa9qg"></tbody><form id="qa9qg"></form><wbr id="qa9qg"></wbr><li id="qa9qg"></li><dl id="qa9qg"></dl><acronym id="qa9qg"></acronym><center id="qa9qg"></center><th id="qa9qg"><dfn id="qa9qg"><abbr id="qa9qg"><i id="qa9qg"></i></abbr></dfn></th><optgroup id="qa9qg"></optgroup><bdo id="qa9qg"><dl id="qa9qg"><acronym id="qa9qg"></acronym></dl></bdo><del id="qa9qg"></del><fieldset id="qa9qg"></fieldset><nobr id="qa9qg"><optgroup id="qa9qg"><blockquote id="qa9qg"><mark id="qa9qg"></mark></blockquote></optgroup></nobr><rt id="qa9qg"></rt><pre id="qa9qg"></pre></div></html>