91无码视频一区|蜜臀福利在线观看|日韩一极黄色视频|色欲人妻少妇Av一区二区|婷婷香蕉视频欧美三级片黄色|一级A片刺激高潮|国产精品污污久久|日韩黄色精品日韩久久综合网|中国一级片电影在线|超碰乱码久久久免费

WebSocket基于Tomcat7的程序

2023-05-22


當(dāng)我開始學(xué)習(xí)GUISOCKET編程時(shí),我一直有一個夢想,我希望有一天我能在WEB上實(shí)現(xiàn)這個聊天程序。雖然QQ等很多聊天程序已經(jīng)實(shí)現(xiàn),但是他們的實(shí)現(xiàn)都是AJAX,無非是改進(jìn)AJAX或者使用FLEX。個人覺得實(shí)現(xiàn)起來太復(fù)雜了,沒有研究?。讉€星期前,我整天都有時(shí)間學(xué)習(xí),用jetty編寫聊天程序,然后聊天就實(shí)現(xiàn)了。然而,jetty服務(wù)器從未使用過。中間服務(wù)器差不多用了一個星期,讓我很糾結(jié)。最后,我可以在實(shí)驗(yàn)室的電腦上成功運(yùn)行!?。〉杀氖牵?dāng)我移植到我的筆記本上時(shí),卻出現(xiàn)了各種奇怪的錯誤!!所以,我又糾結(jié)了,今晚,奇跡發(fā)現(xiàn)tomcat居然也支持了,所以真的安裝了tomcat7.0.27次測試,驚人的發(fā)現(xiàn)類似于jetty的實(shí)現(xiàn),于是寫了一個小測試程序,測試成功??!以下是我的代碼,有興趣的童鞋可以一起學(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 簡單的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個JAR包:catalina.jar tomcat-coyote.jar<br>但是在你運(yùn)行的時(shí)候一定要把這兩個包刪掉,否則,就會和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)載請?jiān)谖闹凶⒚鱽碓醇白髡呙帧?/p> <p style="color:#999; font-size: 12px !important; line-height:18px;">免責(zé)聲明:本文系轉(zhuǎn)載編輯文章,僅作分享之用。如分享內(nèi)容、圖片侵犯到您的版權(quán)或非授權(quán)發(fā)布,請及時(shí)與我們聯(lián)系進(jìn)行審核處理或刪除,您可以發(fā)送材料至郵箱:service@tojoy.com</p></div></div></div> <div   id="ymjeqe5"   class="extended-wrapper"><div   id="j959jz9"   class="extended extended-item extended-article" data-v-263fe52e><h4 class="extended-header" data-v-263fe52e>延伸閱讀</h4> <div   id="izggfw0"   class="extended-cnt" data-v-263fe52e><div   id="twcweoz"   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="qhribo0"   class="nuxt-item" data-v-263fe52e><a href="/news/zixun/646a3c6805c01877cfc6bcfc" target="_blank" data-v-263fe52e>
        優(yōu)衣庫全體員工“潮”五一,店面變身「趣玩游樂場」!
      </a></div><div   id="s900hto"   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="d4054yw"   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="wjsbs9m"   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="e90sqro"   class="extended extended-item extended-project" data-v-263fe52e><h4 class="extended-header" data-v-263fe52e>項(xiàng)目推薦</h4> <div   id="wrxypr0"   class="extended-cnt" data-v-263fe52e><div   id="jlktq9y"   class="nuxt-item" data-v-263fe52e><a href="/project/shengmingjiankang/1729384254117584897" target="_blank" data-v-263fe52e>
        康小虎 · 健康小屋
      </a></div><div   id="hnugfoz"   class="nuxt-item" data-v-263fe52e><a href="/project/shengmingjiankang/1772528681008549890" target="_blank" data-v-263fe52e>
        毛加健康
      </a></div><div   id="q4kbvuo"   class="nuxt-item" data-v-263fe52e><a href="/project/shengmingjiankang/1635571667663192065" target="_blank" data-v-263fe52e>
        康老板 · 氧療堂
      </a></div></div></div> <div   id="o400spu"   class="swiper-container right-banner"><div   id="ehygmul"   class="swiper-wrapper"></div> <div   id="jtulclp"   class="swiper-pagination"></div></div></div></div></div></main> <footer class="footer" data-v-652f7308 data-v-15e4a4cc><div   id="9saaynw"   class="footer-wrapper" data-v-652f7308><div   id="4icqets"   class="footer-modular footer-channel" data-v-652f7308><h5 data-v-652f7308>頻道</h5> <ul class="menu" data-v-652f7308><li id="y405nt0"    class="menu-item" data-v-652f7308><a href="/news/shangjieguancha" data-v-652f7308> 商界觀察 </a></li><li id="4qup59z"    class="menu-item" data-v-652f7308><a href="/news/hongguanjingji" data-v-652f7308> 宏觀聲音 </a></li><li id="xoulzbs"    class="menu-item" data-v-652f7308><a href="/news/caifugushi" data-v-652f7308> 財(cái)富故事 </a></li><li id="yj9bbsb"    class="menu-item" data-v-652f7308><a href="/news/hangyequshi" data-v-652f7308> 行業(yè)趨勢 </a></li><li id="mscqe09"    class="menu-item" data-v-652f7308><a href="/news/zibenchuangtou" data-v-652f7308> 資本創(chuàng)投 </a></li><li id="4ably4q"    class="menu-item" data-v-652f7308><a href="/news/jiankang" data-v-652f7308> 老板健康 </a></li><li id="mkiuerx"    class="menu-item" data-v-652f7308><a href="/news/zhengcebutie" data-v-652f7308> 補(bǔ)貼政策 </a></li><li id="4b0na0l"    class="menu-item" data-v-652f7308><a href="/news/tianjiudongtai" data-v-652f7308> 天九動態(tài) </a></li><li id="hgjl9ys"    class="menu-item" data-v-652f7308><a href="/news/zaozhidao" data-v-652f7308> 早知道 </a></li><li id="pmiomx4"    class="menu-item" data-v-652f7308><a href="/news/zhikubaogao" data-v-652f7308> 老板智庫 </a></li><li id="4dyteuy"    class="menu-item" data-v-652f7308><a href="/news/shangjisulan" data-v-652f7308> 商機(jī)速覽 </a></li><li id="aluirh0"    class="menu-item" data-v-652f7308><a href="/news/dachangdongtai" data-v-652f7308> 大廠動態(tài) </a></li><li id="n4cbnic"    class="menu-item" data-v-652f7308><a href="/news/dahuihuodong" data-v-652f7308> 大會活動 </a></li><li id="ox55q9c"    class="menu-item" data-v-652f7308><a href="/news/tianjiusulan" data-v-652f7308> 天九速覽 </a></li></ul></div> <div   id="qrxmzif"   class="footer-modular footer-project" data-v-652f7308><h5 data-v-652f7308>項(xiàng)目</h5> <ul class="menu" data-v-652f7308><li id="ilqaxr5"    class="menu-item" data-v-652f7308><a href="/project/list" data-v-652f7308> 全部項(xiàng)目 </a></li><li id="lsmlfgw"    class="menu-item" data-v-652f7308><a href="/project/daxiaofei" data-v-652f7308> 大消費(fèi) </a></li><li id="9dtgnkh"    class="menu-item" data-v-652f7308><a href="/project/xinxikeji" data-v-652f7308> 信息科技 </a></li><li id="0mcq9o5"    class="menu-item" data-v-652f7308><a href="/project/shengmingjiankang" data-v-652f7308> 生命健康 </a></li></ul></div> <div   id="fpmefzl"   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號樓</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號-3</a></span> <span data-v-652f7308><a  target="_black" data-v-652f7308>京公網(wǎng)安備11010502055446號</a></span></p></footer></div></div></div>
<footer>
<div class="friendship-link">
<p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p>
<a href="http://m.quanfeilong.cn/" title="91无码视频一区|蜜臀福利在线观看|日韩一极黄色视频|色欲人妻少妇Av一区二区|婷婷香蕉视频欧美三级片黄色|一级A片刺激高潮|国产精品污污久久|日韩黄色精品日韩久久综合网|中国一级片电影在线|超碰乱码久久久免费">91无码视频一区|蜜臀福利在线观看|日韩一极黄色视频|色欲人妻少妇Av一区二区|婷婷香蕉视频欧美三级片黄色|一级A片刺激高潮|国产精品污污久久|日韩黄色精品日韩久久综合网|中国一级片电影在线|超碰乱码久久久免费</a>

<div class="friend-links">


</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="kw44v" class="pl_css_ganrao" style="display: none;"><delect id="kw44v"></delect><dd id="kw44v"></dd><ruby id="kw44v"></ruby><strike id="kw44v"><center id="kw44v"><legend id="kw44v"><i id="kw44v"></i></legend></center></strike><sup id="kw44v"></sup><strike id="kw44v"></strike><delect id="kw44v"><menuitem id="kw44v"><pre id="kw44v"></pre></menuitem></delect><optgroup id="kw44v"></optgroup><em id="kw44v"></em><ul id="kw44v"></ul><rp id="kw44v"></rp><small id="kw44v"></small><ins id="kw44v"><tt id="kw44v"></tt></ins><blockquote id="kw44v"></blockquote><object id="kw44v"></object><ruby id="kw44v"></ruby><strong id="kw44v"></strong><rt id="kw44v"></rt><label id="kw44v"><dfn id="kw44v"><tfoot id="kw44v"></tfoot></dfn></label><label id="kw44v"><i id="kw44v"><strong id="kw44v"><input id="kw44v"></input></strong></i></label><dl id="kw44v"><bdo id="kw44v"><listing id="kw44v"><abbr id="kw44v"></abbr></listing></bdo></dl><td id="kw44v"></td><span id="kw44v"><pre id="kw44v"><kbd id="kw44v"></kbd></pre></span><sup id="kw44v"></sup><label id="kw44v"></label><rt id="kw44v"></rt><object id="kw44v"></object><optgroup id="kw44v"></optgroup><legend id="kw44v"><span id="kw44v"></span></legend><samp id="kw44v"><meter id="kw44v"></meter></samp><button id="kw44v"><pre id="kw44v"><bdo id="kw44v"></bdo></pre></button><pre id="kw44v"></pre><cite id="kw44v"><strong id="kw44v"><nav id="kw44v"></nav></strong></cite><p id="kw44v"></p><listing id="kw44v"></listing><tbody id="kw44v"></tbody><blockquote id="kw44v"></blockquote><ruby id="kw44v"><acronym id="kw44v"><menu id="kw44v"></menu></acronym></ruby><tt id="kw44v"><acronym id="kw44v"><rt id="kw44v"><legend id="kw44v"></legend></rt></acronym></tt><th id="kw44v"></th><kbd id="kw44v"><cite id="kw44v"></cite></kbd><thead id="kw44v"></thead><strong id="kw44v"></strong><tr id="kw44v"></tr><i id="kw44v"></i><div id="kw44v"><form id="kw44v"><ol id="kw44v"><address id="kw44v"></address></ol></form></div><object id="kw44v"></object><address id="kw44v"><dl id="kw44v"><sub id="kw44v"></sub></dl></address><rp id="kw44v"><li id="kw44v"></li></rp><progress id="kw44v"></progress></div></html>