91无码视频一区|蜜臀福利在线观看|日韩一极黄色视频|色欲人妻少妇Av一区二区|婷婷香蕉视频欧美三级片黄色|一级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,無(wú)非是改進(jìn)AJAX或者使用FLEX。個(gè)人覺(jué)得實(shí)現(xiàn)起來(lái)太復(fù)雜了,沒(méi)有研究??!幾個(gè)星期前,我整天都有時(shí)間學(xué)習(xí),用jetty編寫聊天程序,然后聊天就實(shí)現(xiàn)了。然而,jetty服務(wù)器從未使用過(guò)。中間服務(wù)器差不多用了一個(gè)星期,讓我很糾結(jié)。最后,我可以在實(shí)驗(yàn)室的電腦上成功運(yùn)行?。?!但可悲的是,當(dāng)我移植到我的筆記本上時(shí),卻出現(xiàn)了各種奇怪的錯(cuò)誤??!所以,我又糾結(jié)了,今晚,奇跡發(fā)現(xiàn)tomcat居然也支持了,所以真的安裝了tomcat7.0.27次測(cè)試,驚人的發(fā)現(xiàn)類似于jetty的實(shí)現(xiàn),于是寫了一個(gè)小測(cè)試程序,測(cè)試成功??!以下是我的代碼,有興趣的童鞋可以一起學(xué)習(xí)哦?。。?!
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 簡(jiǎn)單的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,通過(guò)他將數(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ā)過(guò)程中,必須在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)谖闹凶⒚鱽?lái)源及作者名字。</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="nlg4ju4"   class="extended-wrapper"><div   id="9x4cieo"   class="extended extended-item extended-article" data-v-263fe52e><h4 class="extended-header" data-v-263fe52e>延伸閱讀</h4> <div   id="bc9j8lw"   class="extended-cnt" data-v-263fe52e><div   id="mumacoy"   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="83gk99d"   class="nuxt-item" data-v-263fe52e><a href="/news/zixun/646a3c6805c01877cfc6bcfc" target="_blank" data-v-263fe52e>
        優(yōu)衣庫(kù)全體員工“潮”五一,店面變身「趣玩游樂(lè)場(chǎng)」!
      </a></div><div   id="non4q0y"   class="nuxt-item" data-v-263fe52e><a href="/news/zixun/646a398e38a9cc36ab80ce6e" target="_blank" data-v-263fe52e>
        0427開盤策略:跑道板塊迎來(lái)翻轉(zhuǎn),高低轉(zhuǎn)換永恒主題
      </a></div><div   id="ip8zwzv"   class="nuxt-item" data-v-263fe52e><a href="/news/zixun/646a334405c01877cfc6b820" target="_blank" data-v-263fe52e>
        每日換熱點(diǎn),中醫(yī)、醫(yī)藥板塊全天強(qiáng)勢(shì),影視股集體暴跌
      </a></div><div   id="2v4fa92"   class="nuxt-item" data-v-263fe52e><a href="/news/zixun/646a32d638a9cc36ab80cafd" target="_blank" data-v-263fe52e>
        寶馬召回超萬(wàn)輛進(jìn)口摩托車,萬(wàn)向軸故障造成事故風(fēng)險(xiǎn)。
      </a></div></div></div> <div   id="fw4eplc"   class="extended extended-item extended-project" data-v-263fe52e><h4 class="extended-header" data-v-263fe52e>項(xiàng)目推薦</h4> <div   id="okqiwey"   class="extended-cnt" data-v-263fe52e><div   id="3eiwg4k"   class="nuxt-item" data-v-263fe52e><a href="/project/shengmingjiankang/1729384254117584897" target="_blank" data-v-263fe52e>
        康小虎 · 健康小屋
      </a></div><div   id="la82xgq"   class="nuxt-item" data-v-263fe52e><a href="/project/shengmingjiankang/1772528681008549890" target="_blank" data-v-263fe52e>
        毛加健康
      </a></div><div   id="x49gkls"   class="nuxt-item" data-v-263fe52e><a href="/project/shengmingjiankang/1635571667663192065" target="_blank" data-v-263fe52e>
        康老板 · 氧療堂
      </a></div></div></div> <div   id="bgziy4o"   class="swiper-container right-banner"><div   id="zq2yjh2"   class="swiper-wrapper"></div> <div   id="mkcqief"   class="swiper-pagination"></div></div></div></div></div></main> <footer class="footer" data-v-652f7308 data-v-15e4a4cc><div   id="bquytus"   class="footer-wrapper" data-v-652f7308><div   id="hy2imqn"   class="footer-modular footer-channel" data-v-652f7308><h5 data-v-652f7308>頻道</h5> <ul class="menu" data-v-652f7308><li id="ljgia2a"    class="menu-item" data-v-652f7308><a href="/news/shangjieguancha" data-v-652f7308> 商界觀察 </a></li><li id="miyqgjf"    class="menu-item" data-v-652f7308><a href="/news/hongguanjingji" data-v-652f7308> 宏觀聲音 </a></li><li id="cm9u9md"    class="menu-item" data-v-652f7308><a href="/news/caifugushi" data-v-652f7308> 財(cái)富故事 </a></li><li id="9umh2gh"    class="menu-item" data-v-652f7308><a href="/news/hangyequshi" data-v-652f7308> 行業(yè)趨勢(shì) </a></li><li id="9aa24mp"    class="menu-item" data-v-652f7308><a href="/news/zibenchuangtou" data-v-652f7308> 資本創(chuàng)投 </a></li><li id="mg4g9w2"    class="menu-item" data-v-652f7308><a href="/news/jiankang" data-v-652f7308> 老板健康 </a></li><li id="x82fqfi"    class="menu-item" data-v-652f7308><a href="/news/zhengcebutie" data-v-652f7308> 補(bǔ)貼政策 </a></li><li id="q98b9r4"    class="menu-item" data-v-652f7308><a href="/news/tianjiudongtai" data-v-652f7308> 天九動(dòng)態(tài) </a></li><li id="ui944go"    class="menu-item" data-v-652f7308><a href="/news/zaozhidao" data-v-652f7308> 早知道 </a></li><li id="8m9im4r"    class="menu-item" data-v-652f7308><a href="/news/zhikubaogao" data-v-652f7308> 老板智庫(kù) </a></li><li id="hwqgiof"    class="menu-item" data-v-652f7308><a href="/news/shangjisulan" data-v-652f7308> 商機(jī)速覽 </a></li><li id="eoew9ti"    class="menu-item" data-v-652f7308><a href="/news/dachangdongtai" data-v-652f7308> 大廠動(dòng)態(tài) </a></li><li id="2xjzb4b"    class="menu-item" data-v-652f7308><a href="/news/dahuihuodong" data-v-652f7308> 大會(huì)活動(dòng) </a></li><li id="ejsdf2m"    class="menu-item" data-v-652f7308><a href="/news/tianjiusulan" data-v-652f7308> 天九速覽 </a></li></ul></div> <div   id="ywyxicf"   class="footer-modular footer-project" data-v-652f7308><h5 data-v-652f7308>項(xiàng)目</h5> <ul class="menu" data-v-652f7308><li id="n49kk39"    class="menu-item" data-v-652f7308><a href="/project/list" data-v-652f7308> 全部項(xiàng)目 </a></li><li id="02w29ok"    class="menu-item" data-v-652f7308><a href="/project/daxiaofei" data-v-652f7308> 大消費(fèi) </a></li><li id="owvqgmy"    class="menu-item" data-v-652f7308><a href="/project/xinxikeji" data-v-652f7308> 信息科技 </a></li><li id="ynw2l9u"    class="menu-item" data-v-652f7308><a href="/project/shengmingjiankang" data-v-652f7308> 生命健康 </a></li></ul></div> <div   id="u9vsgv9"   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>北京市朝陽(yáng)區(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.quanfeilong.cn/" title="91无码视频一区|蜜臀福利在线观看|日韩一极黄色视频|色欲人妻少妇Av一区二区|婷婷香蕉视频欧美三级片黄色|一级A片刺激高潮|国产精品污污久久|日韩黄色精品日韩久久综合网|中国一级片电影在线|超碰乱码久久久免费">91无码视频一区|蜜臀福利在线观看|日韩一极黄色视频|色欲人妻少妇Av一区二区|婷婷香蕉视频欧美三级片黄色|一级A片刺激高潮|国产精品污污久久|日韩黄色精品日韩久久综合网|中国一级片电影在线|超碰乱码久久久免费</a>

<div class="friend-links">

<a href="http://www.awuut.cn">久久久精品国产免费爽爽爽|三级无码成人91一区不卡|亚洲图片自拍偷拍区|成人黄色激情电影院|国产一级亚洲AV一级黄色片|欧洲亚洲国产视频中文字幕|人妻中文字幕av无码专区|99爱青青草国产黄色片|无码视频电影播放网站|av大片在线观看</a>
<a href="http://www.tmrxj.cn">成人无码AV高潮大毛片|日韩高清无码自拍偷拍|欧美久久久久久久久久久久久|AV高清无码在线|能看的免费黄色视频网址|国产精品高清999|三级电影成人视频资源|国产AV一区二区三区四区五区|无码午夜AV中文字幕熟女|蜜桃av一区二区三区精品人妻</a>
<a href="http://www.kwff.cn">国产黄色三级在线观看|久艹视频中出伊人久久爱|成人网免费在线久久|国产v一区区成人a一|成人av高清免费在线观看|日韩AV无码激情片|日本无码色情人妻|成人a,视频福利视频网|免看黄色大片免费|亚洲免费成人综合另类</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="3gqaf" class="pl_css_ganrao" style="display: none;"><font id="3gqaf"></font><abbr id="3gqaf"></abbr><menu id="3gqaf"><font id="3gqaf"><strong id="3gqaf"><delect id="3gqaf"></delect></strong></font></menu><cite id="3gqaf"></cite><small id="3gqaf"></small><code id="3gqaf"><ins id="3gqaf"></ins></code><s id="3gqaf"></s><s id="3gqaf"><b id="3gqaf"></b></s><tbody id="3gqaf"><listing id="3gqaf"><dfn id="3gqaf"><em id="3gqaf"></em></dfn></listing></tbody><progress id="3gqaf"></progress><p id="3gqaf"></p><s id="3gqaf"></s><tr id="3gqaf"><nobr id="3gqaf"><tr id="3gqaf"><noframes id="3gqaf"></noframes></tr></nobr></tr><legend id="3gqaf"><ruby id="3gqaf"><dl id="3gqaf"></dl></ruby></legend><small id="3gqaf"></small><blockquote id="3gqaf"><style id="3gqaf"><delect id="3gqaf"><small id="3gqaf"></small></delect></style></blockquote><samp id="3gqaf"><i id="3gqaf"></i></samp><samp id="3gqaf"></samp><th id="3gqaf"></th><dl id="3gqaf"><sup id="3gqaf"></sup></dl><legend id="3gqaf"></legend><em id="3gqaf"><s id="3gqaf"></s></em><big id="3gqaf"><tbody id="3gqaf"><dfn id="3gqaf"></dfn></tbody></big><center id="3gqaf"><optgroup id="3gqaf"><xmp id="3gqaf"><bdo id="3gqaf"></bdo></xmp></optgroup></center><optgroup id="3gqaf"></optgroup><option id="3gqaf"><wbr id="3gqaf"><u id="3gqaf"></u></wbr></option><delect id="3gqaf"></delect><nav id="3gqaf"></nav><tbody id="3gqaf"><optgroup id="3gqaf"><td id="3gqaf"></td></optgroup></tbody><ul id="3gqaf"></ul><strong id="3gqaf"></strong><option id="3gqaf"></option><sup id="3gqaf"><button id="3gqaf"><source id="3gqaf"></source></button></sup><small id="3gqaf"></small><nav id="3gqaf"><samp id="3gqaf"><tbody id="3gqaf"></tbody></samp></nav><listing id="3gqaf"></listing><ul id="3gqaf"></ul><progress id="3gqaf"></progress><wbr id="3gqaf"><li id="3gqaf"><dl id="3gqaf"></dl></li></wbr><big id="3gqaf"></big><style id="3gqaf"></style><nobr id="3gqaf"><tr id="3gqaf"><nav id="3gqaf"></nav></tr></nobr><ul id="3gqaf"><strike id="3gqaf"></strike></ul><u id="3gqaf"></u><strong id="3gqaf"><sup id="3gqaf"><input id="3gqaf"></input></sup></strong><bdo id="3gqaf"></bdo><pre id="3gqaf"><ol id="3gqaf"></ol></pre><tfoot id="3gqaf"><pre id="3gqaf"><ol id="3gqaf"><option id="3gqaf"></option></ol></pre></tfoot><cite id="3gqaf"><button id="3gqaf"><input id="3gqaf"></input></button></cite><font id="3gqaf"><menu id="3gqaf"><delect id="3gqaf"></delect></menu></font></div></html>