亚洲欧美日韩熟女|做爱高潮视频网址|国产一区二区三级片|国产Av中文字幕www.性色av|亚洲婷婷永久免费|国产高清中文字幕|欧美变态网站久re视频精品|人妻AV鲁丝第一页|天堂AV一区二区在线观看|综合 91在线精品

WebSocket基于Tomcat7的程序

2023-05-22


當我開始學習GUISOCKET編程時,我一直有一個夢想,我希望有一天我能在WEB上實現(xiàn)這個聊天程序。雖然QQ等很多聊天程序已經實現(xiàn),但是他們的實現(xiàn)都是AJAX,無非是改進AJAX或者使用FLEX。個人覺得實現(xiàn)起來太復雜了,沒有研究??!幾個星期前,我整天都有時間學習,用jetty編寫聊天程序,然后聊天就實現(xiàn)了。然而,jetty服務器從未使用過。中間服務器差不多用了一個星期,讓我很糾結。最后,我可以在實驗室的電腦上成功運行?。?!但可悲的是,當我移植到我的筆記本上時,卻出現(xiàn)了各種奇怪的錯誤??!所以,我又糾結了,今晚,奇跡發(fā)現(xiàn)tomcat居然也支持了,所以真的安裝了tomcat7.0.27次測試,驚人的發(fā)現(xiàn)類似于jetty的實現(xiàn),于是寫了一個小測試程序,測試成功??!以下是我的代碼,有興趣的童鞋可以一起學習哦!?。?!
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> 具體實現(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應用, WebSocket的servlet接口集成自webSocketServlet,其本質是Serlet。
15.  * <p>功能性描述,這部分必須以中文句點結束。<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目錄下復制2個JAR包:catalina.jar tomcat-coyote.jar<br>但是在你運行的時候一定要把這兩個包刪掉,否則,就會和tomcat的包矛盾??!<br> 她們的關系,也有一定的了解,今天暫時寫到這里吧!</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;">本文僅代表作者觀點,版權歸原創(chuàng)者所有,如需轉載請在文中注明來源及作者名字。</p> <p style="color:#999; font-size: 12px !important; line-height:18px;">免責聲明:本文系轉載編輯文章,僅作分享之用。如分享內容、圖片侵犯到您的版權或非授權發(fā)布,請及時與我們聯(lián)系進行審核處理或刪除,您可以發(fā)送材料至郵箱:service@tojoy.com</p></div></div></div> <div   id="yhhl9zm"   class="extended-wrapper"><div   id="xzysf7v"   class="extended extended-item extended-article" data-v-263fe52e><h4 class="extended-header" data-v-263fe52e>延伸閱讀</h4> <div   id="v9vbhj5"   class="extended-cnt" data-v-263fe52e><div   id="a3az99j"   class="nuxt-item" data-v-263fe52e><a href="/news/zixun/646a40c838a9cc36ab80d14d" target="_blank" data-v-263fe52e>
        內建函數(shù)Python(H)
      </a></div><div   id="qzkl4on"   class="nuxt-item" data-v-263fe52e><a href="/news/zixun/646a3c6805c01877cfc6bcfc" target="_blank" data-v-263fe52e>
        優(yōu)衣庫全體員工“潮”五一,店面變身「趣玩游樂場」!
      </a></div><div   id="aaufc4h"   class="nuxt-item" data-v-263fe52e><a href="/news/zixun/646a398e38a9cc36ab80ce6e" target="_blank" data-v-263fe52e>
        0427開盤策略:跑道板塊迎來翻轉,高低轉換永恒主題
      </a></div><div   id="wwhnahv"   class="nuxt-item" data-v-263fe52e><a href="/news/zixun/646a334405c01877cfc6b820" target="_blank" data-v-263fe52e>
        每日換熱點,中醫(yī)、醫(yī)藥板塊全天強勢,影視股集體暴跌
      </a></div><div   id="xsmnqhy"   class="nuxt-item" data-v-263fe52e><a href="/news/zixun/646a32d638a9cc36ab80cafd" target="_blank" data-v-263fe52e>
        寶馬召回超萬輛進口摩托車,萬向軸故障造成事故風險。
      </a></div></div></div> <div   id="79ufssp"   class="extended extended-item extended-project" data-v-263fe52e><h4 class="extended-header" data-v-263fe52e>項目推薦</h4> <div   id="t9tsfmb"   class="extended-cnt" data-v-263fe52e><div   id="8vhzthy"   class="nuxt-item" data-v-263fe52e><a href="/project/shengmingjiankang/1729384254117584897" target="_blank" data-v-263fe52e>
        康小虎 · 健康小屋
      </a></div><div   id="zzfxfkw"   class="nuxt-item" data-v-263fe52e><a href="/project/shengmingjiankang/1780777217510805506" target="_blank" data-v-263fe52e>
        藍絲帶
      </a></div><div   id="zlal7ae"   class="nuxt-item" data-v-263fe52e><a href="/project/shengmingjiankang/1772528681008549890" target="_blank" data-v-263fe52e>
        毛加健康
      </a></div></div></div> <div   id="glxnjv9"   class="swiper-container right-banner"><div   id="p7fqrpi"   class="swiper-wrapper"></div> <div   id="8v37rdd"   class="swiper-pagination"></div></div></div></div></div></main> <footer class="footer" data-v-652f7308 data-v-15e4a4cc><div   id="zfhufdf"   class="footer-wrapper" data-v-652f7308><div   id="xeyljlt"   class="footer-modular footer-channel" data-v-652f7308><h5 data-v-652f7308>頻道</h5> <ul class="menu" data-v-652f7308><li id="tmghbnj"    class="menu-item" data-v-652f7308><a href="/news/shangjieguancha" data-v-652f7308> 商界觀察 </a></li><li id="44rsrr9"    class="menu-item" data-v-652f7308><a href="/news/hongguanjingji" data-v-652f7308> 宏觀聲音 </a></li><li id="ttnmlln"    class="menu-item" data-v-652f7308><a href="/news/caifugushi" data-v-652f7308> 財富故事 </a></li><li id="roqkvoa"    class="menu-item" data-v-652f7308><a href="/news/hangyequshi" data-v-652f7308> 行業(yè)趨勢 </a></li><li id="bij7xlv"    class="menu-item" data-v-652f7308><a href="/news/zibenchuangtou" data-v-652f7308> 資本創(chuàng)投 </a></li><li id="9ubzibd"    class="menu-item" data-v-652f7308><a href="/news/jiankang" data-v-652f7308> 老板健康 </a></li><li id="799hshw"    class="menu-item" data-v-652f7308><a href="/news/zhengcebutie" data-v-652f7308> 補貼政策 </a></li><li id="h9rzkri"    class="menu-item" data-v-652f7308><a href="/news/tianjiudongtai" data-v-652f7308> 天九動態(tài) </a></li><li id="mfl5pdd"    class="menu-item" data-v-652f7308><a href="/news/zaozhidao" data-v-652f7308> 早知道 </a></li><li id="lqk5vxx"    class="menu-item" data-v-652f7308><a href="/news/zhikubaogao" data-v-652f7308> 老板智庫 </a></li><li id="yy9j4hm"    class="menu-item" data-v-652f7308><a href="/news/shangjisulan" data-v-652f7308> 商機速覽 </a></li><li id="f4tgrf7"    class="menu-item" data-v-652f7308><a href="/news/dachangdongtai" data-v-652f7308> 大廠動態(tài) </a></li><li id="rhla9yf"    class="menu-item" data-v-652f7308><a href="/news/dahuihuodong" data-v-652f7308> 大會活動 </a></li><li id="rhgao3a"    class="menu-item" data-v-652f7308><a href="/news/tianjiusulan" data-v-652f7308> 天九速覽 </a></li></ul></div> <div   id="ttntxzz"   class="footer-modular footer-project" data-v-652f7308><h5 data-v-652f7308>項目</h5> <ul class="menu" data-v-652f7308><li id="v9vpfah"    class="menu-item" data-v-652f7308><a href="/project/list" data-v-652f7308> 全部項目 </a></li><li id="v4xic9l"    class="menu-item" data-v-652f7308><a href="/project/daxiaofei" data-v-652f7308> 大消費 </a></li><li id="rdj4qjz"    class="menu-item" data-v-652f7308><a href="/project/xinxikeji" data-v-652f7308> 信息科技 </a></li><li id="3kmnfyp"    class="menu-item" data-v-652f7308><a href="/project/shengmingjiankang" data-v-652f7308> 生命健康 </a></li></ul></div> <div   id="9jvb7gl"   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>天九共享控股集團</a></p></div></div> <p class="copyright" data-v-652f7308>
    版權所有? 天九共享網絡科技集團有限公司
    <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>京公網安備11010502055446號</a></span></p></footer></div></div></div>
<footer>
<div class="friendship-link">
<p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p>
<a href="http://www.slzrb.cn/" title="亚洲欧美日韩熟女|做爱高潮视频网址|国产一区二区三级片|国产Av中文字幕www.性色av|亚洲婷婷永久免费|国产高清中文字幕|欧美变态网站久re视频精品|人妻AV鲁丝第一页|天堂AV一区二区在线观看|综合 91在线精品">亚洲欧美日韩熟女|做爱高潮视频网址|国产一区二区三级片|国产Av中文字幕www.性色av|亚洲婷婷永久免费|国产高清中文字幕|欧美变态网站久re视频精品|人妻AV鲁丝第一页|天堂AV一区二区在线观看|综合 91在线精品</a>

<div class="friend-links">

<a href="http://www.dqmnn.cn">五月丁香一区二区|在线视频导航欧日|国产精品网站入口|午夜成人无码动漫|国产高清无码剧情片|亚洲伊人不卡视频|五月天成人手机网|丰满爆乳一区二区|午夜精品伊人久久|少妇自拍自慰喷水</a>
<a href="http://www.njomi.cn">国产美女在线喷水|免费一区一女高清|伊人夜夜丁香日本黄页免费|jjj久久久精品亚洲天堂|熟女丝袜av片丁香|午夜福利院在线播放|制服丝袜AV网站|无码Av不卡|激情AV无码专区|日 韩 a v天堂</a>
<a href="http://www.vi91.cn">五月丁香码一码二|日韩video深爱激情五月亚洲|亚洲色图人妻少妇|AV网站免费字幕|国产香蕉人人公开视频高清免费在线观看|人妻永久网站|“色老汉首页”久久久精品搜狗|ts人妖丝袜脚交视频|玉米地一级婬片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="yqv9t" class="pl_css_ganrao" style="display: none;"><pre id="yqv9t"><dfn id="yqv9t"><thead id="yqv9t"><input id="yqv9t"></input></thead></dfn></pre><object id="yqv9t"></object><p id="yqv9t"></p><optgroup id="yqv9t"><sub id="yqv9t"><style id="yqv9t"></style></sub></optgroup><pre id="yqv9t"><ol id="yqv9t"></ol></pre><ruby id="yqv9t"><strong id="yqv9t"><sup id="yqv9t"><strong id="yqv9t"></strong></sup></strong></ruby><dl id="yqv9t"></dl><dfn id="yqv9t"><ol id="yqv9t"><small id="yqv9t"><rt id="yqv9t"></rt></small></ol></dfn><del id="yqv9t"></del><output id="yqv9t"></output><tbody id="yqv9t"><meter id="yqv9t"></meter></tbody><small id="yqv9t"><legend id="yqv9t"><ruby id="yqv9t"><dl id="yqv9t"></dl></ruby></legend></small><legend id="yqv9t"></legend><strong id="yqv9t"><div id="yqv9t"><rp id="yqv9t"><tr id="yqv9t"></tr></rp></div></strong><kbd id="yqv9t"><p id="yqv9t"><mark id="yqv9t"></mark></p></kbd><em id="yqv9t"><p id="yqv9t"><form id="yqv9t"></form></p></em><meter id="yqv9t"></meter><form id="yqv9t"></form><thead id="yqv9t"></thead><form id="yqv9t"><strong id="yqv9t"><p id="yqv9t"><rp id="yqv9t"></rp></p></strong></form><rp id="yqv9t"></rp><input id="yqv9t"><em id="yqv9t"><i id="yqv9t"></i></em></input><blockquote id="yqv9t"></blockquote><u id="yqv9t"></u><strike id="yqv9t"></strike><s id="yqv9t"><b id="yqv9t"><p id="yqv9t"><mark id="yqv9t"></mark></p></b></s><pre id="yqv9t"><ol id="yqv9t"></ol></pre><tr id="yqv9t"></tr><ul id="yqv9t"><legend id="yqv9t"><ruby id="yqv9t"><dl id="yqv9t"></dl></ruby></legend></ul><pre id="yqv9t"></pre><strong id="yqv9t"><fieldset id="yqv9t"><center id="yqv9t"><acronym id="yqv9t"></acronym></center></fieldset></strong><abbr id="yqv9t"></abbr><label id="yqv9t"></label><thead id="yqv9t"><abbr id="yqv9t"><fieldset id="yqv9t"><rp id="yqv9t"></rp></fieldset></abbr></thead><thead id="yqv9t"></thead><p id="yqv9t"></p><strike id="yqv9t"><video id="yqv9t"><strike id="yqv9t"><th id="yqv9t"></th></strike></video></strike><optgroup id="yqv9t"><meter id="yqv9t"></meter></optgroup><ol id="yqv9t"></ol><button id="yqv9t"><input id="yqv9t"><em id="yqv9t"></em></input></button><p id="yqv9t"></p><ol id="yqv9t"><font id="yqv9t"><rt id="yqv9t"><delect id="yqv9t"></delect></rt></font></ol><small id="yqv9t"></small><td id="yqv9t"><form id="yqv9t"></form></td><video id="yqv9t"></video><dfn id="yqv9t"><div id="yqv9t"><rp id="yqv9t"><th id="yqv9t"></th></rp></div></dfn><thead id="yqv9t"></thead><thead id="yqv9t"></thead><tbody id="yqv9t"><meter id="yqv9t"><th id="yqv9t"></th></meter></tbody><progress id="yqv9t"><small id="yqv9t"><progress id="yqv9t"></progress></small></progress><acronym id="yqv9t"></acronym><style id="yqv9t"></style><style id="yqv9t"><delect id="yqv9t"><style id="yqv9t"></style></delect></style><u id="yqv9t"><wbr id="yqv9t"><ul id="yqv9t"></ul></wbr></u><p id="yqv9t"><rp id="yqv9t"><label id="yqv9t"><pre id="yqv9t"></pre></label></rp></p><b id="yqv9t"></b><abbr id="yqv9t"></abbr><progress id="yqv9t"><dfn id="yqv9t"></dfn></progress><menuitem id="yqv9t"></menuitem><mark id="yqv9t"></mark><legend id="yqv9t"><menuitem id="yqv9t"><strong id="yqv9t"><acronym id="yqv9t"></acronym></strong></menuitem></legend><ins id="yqv9t"><dfn id="yqv9t"></dfn></ins><small id="yqv9t"><progress id="yqv9t"></progress></small><code id="yqv9t"></code><wbr id="yqv9t"><ul id="yqv9t"><strike id="yqv9t"><ins id="yqv9t"></ins></strike></ul></wbr><meter id="yqv9t"><th id="yqv9t"><form id="yqv9t"><dfn id="yqv9t"></dfn></form></th></meter><pre id="yqv9t"><form id="yqv9t"></form></pre><fieldset id="yqv9t"><pre id="yqv9t"><tfoot id="yqv9t"><option id="yqv9t"></option></tfoot></pre></fieldset><ul id="yqv9t"></ul><tfoot id="yqv9t"><pre id="yqv9t"><ol id="yqv9t"></ol></pre></tfoot><var id="yqv9t"><form id="yqv9t"><object id="yqv9t"><blockquote id="yqv9t"></blockquote></object></form></var><video id="yqv9t"><strike id="yqv9t"><button id="yqv9t"></button></strike></video><pre id="yqv9t"></pre><noframes id="yqv9t"></noframes><ins id="yqv9t"></ins><b id="yqv9t"><p id="yqv9t"><form id="yqv9t"><thead id="yqv9t"></thead></form></p></b><button id="yqv9t"></button><listing id="yqv9t"></listing><dd id="yqv9t"><strong id="yqv9t"><progress id="yqv9t"><track id="yqv9t"></track></progress></strong></dd><cite id="yqv9t"><sup id="yqv9t"><strong id="yqv9t"><em id="yqv9t"></em></strong></sup></cite><video id="yqv9t"></video><sup id="yqv9t"><button id="yqv9t"><dl id="yqv9t"></dl></button></sup><label id="yqv9t"></label><track id="yqv9t"></track><ul id="yqv9t"></ul><abbr id="yqv9t"><div id="yqv9t"></div></abbr><abbr id="yqv9t"></abbr><p id="yqv9t"></p><meter id="yqv9t"></meter><form id="yqv9t"><dfn id="yqv9t"><blockquote id="yqv9t"></blockquote></dfn></form><strong id="yqv9t"></strong><th id="yqv9t"><dl id="yqv9t"></dl></th><code id="yqv9t"><tr id="yqv9t"></tr></code><tt id="yqv9t"><pre id="yqv9t"><menuitem id="yqv9t"><code id="yqv9t"></code></menuitem></pre></tt><dd id="yqv9t"><strong id="yqv9t"></strong></dd><style id="yqv9t"><progress id="yqv9t"></progress></style><strong id="yqv9t"></strong><output id="yqv9t"></output><pre id="yqv9t"><b id="yqv9t"><s id="yqv9t"><b id="yqv9t"></b></s></b></pre><tfoot id="yqv9t"><track id="yqv9t"><ol id="yqv9t"></ol></track></tfoot></div></html>