練功房推薦書單

  • 猛虎出柙雙劍合璧版--最新 OCA / OCP Java SE 7 Programmer 專業認證 (電子書)
  • 流浪教師存零股存到3000萬(全新增修版)(書+DVD)
  • 開始在關西自助旅行(京都‧大阪‧神戶‧奈良)(全新增訂版)
  • 不敗教主的300張股票存股術

[分享]JSP線上水球 0.0.2版 RSS feed
Forum Index » 成果發表會 Code Sharing
Author Message
andowson

七段學員
[Avatar]

Joined: 2007/1/2
Messages: 714
Location: 台北
Offline
這個程式是修改自我2004.12.22所寫的0.0.1版,修正了一些Bug及使用者介面。大體上來說功能還是一樣。

License: 本版採用Apache License Version 2授權,個人或商業均可免費使用。

開發環境:Tomcat 5.5.x + JDK 5.0(用到了Generic Collection及Concurrent)

安裝方式:將下載後的onlinemsg.war上傳到Tomcat/webapp下,如果Tomcat沒有自動解壓縮,請自行手動解開即可

解開後的程式目錄結構大致如下
onlinemsg
........./icq
........./.../message.au
........./.../online.wav
........./.../send.wav
........./msn
........./.../type.wma
........./.../online.wav
........./.../send.wav
........./WEB-INF
........./......./classes
........./......./......./com
........./......./......./.../andowson
........./......./......./.../......../onlineuser
........./......./......./.../......../........../UserList.class
........./......./......./.../......../........../UserMessage.class
........./......./......./.../......../........../UserMessageQueue.class
........./......./......./.../......../........../UserTrace.class
........./......./......./.../......../........../UserTraceFilter.class
........./......./......./.../......../........../UserTraceListener.class
........./......./lib/cos.jar
........./......./web.xml
........./errorpage.jsp
........./index.jsp
........./proc_sendmsg.jsp
........./sendmsg.jsp
........./sendok.html
........./showmsg.jsp
........./userlist.jsp
........./util.js

主要的邏輯如下:
index.jsp,用來處理登入
userlist.jsp,記錄登入的使用者代號並記錄到session去
sendmsg.jsp,傳送水球編輯畫面
proc_sendmsg.jsp,將水球內容寫到session去
sendok.html,顯示水球傳送完成畫面
showmsg.jsp,顯示收到的水球內容
errorpage.jsp,錯誤訊息頁
util.js,開啟視窗的JavaScript

UserList,用來記錄所有線上使用者的singleton的類別
UserTrace,用來追蹤單一使用者狀態的類別
UserMessage,水球內容
UserMessageQueue,用來記錄所有線上使用者的訊息佇列的singleton類別,每個使用者都有一個MessageQueue
UserTraceFilter,第一次進來的session的Filter
UserTraceListener,對session attribute有無異動的Listener

每個使用者的UserTrace是以sessionID當作key記錄到一個Map去
每個使用者的MessageQueue是以sessionID當作key記錄到一個Map去
當UserA對UserB發出水球時,先將水球設定到msg這個session屬性去,透過UserTraceListener去將該水球寫入到UserB專屬的MessageQueue。
當UserB的userlist.jsp每隔10秒refresh檢查到有屬於他的水球時,便啟動showmsg.jsp來顯示水球內容,並將該水球設為已讀過。
UserTraceListener將已讀過的水球由UserB的Queue中移出以避免重複顯示。

有關聲音檔方面,目前sendok.html和showmsg.jsp均有配音,用的是msn目錄下的send.wav和type.wma,如果想換成icq版可自行修改這兩個檔案中有關聲音檔的來源路徑即可。
 Filename onlinemsg.war [Disk] Download
 Description onlinemsg.war
 Filesize 107 Kbytes
 Downloaded:  93 time(s)


分享經驗 累積智慧
[WWW]
shwj888

十級學員

Joined: 2007/7/10
Messages: 2
Offline
我是用TOMCAT 5.5.15來跑這個程式
功能都可以用也很OK
但我想把它加上MYSQL的資料庫就會出現錯誤
我想在使用者登入的地方使用與資料庫比對的功能
如果是會員才能使用線上水球
但不是會員就不行
但只要我連上資料庫就會出現錯誤
我的編輯網頁軟體是用DREAMWEAVER
網頁語言是JSP
因為畢專的構想有用到類似線上水球的功能
想把它加到我們的網站上
但不知為什麼
只要更改到一點程式就會出錯
想請問是跟使用TOMCAT 5.5.15有關嗎?
還是這個程式無法跟資料庫聯結?
謝謝
andowson

七段學員
[Avatar]

Joined: 2007/1/2
Messages: 714
Location: 台北
Offline
有關加上後端會員資料庫部分,可以參考以下的想法:
1.建立或使用網站既有的一個會員資料表。
2.修改index.jsp,在表單上面加上一個密碼型態的輸入欄位,並將表單的action屬性從userlist.jsp改成proc_login.jsp。
3.新增proc_login.jsp程式:接收由index.jsp傳來的帳號及密碼參數,然後連到資料庫去進行帳號密碼認證,如果認證成功,將loginok的session變數設定為true,然後將畫面導到userlist.jsp?user_id=帳號;如果失敗,跳出一個alert,顯示認證失敗,請重新登入,當使用者按下確認時,導回index.jsp。
4.修改userlist.jsp,加上檢查loginok的session變數是否存在,如果不存在則將使用者導回index.jsp。

分享經驗 累積智慧
[WWW]
shwj888

十級學員

Joined: 2007/7/10
Messages: 2
Offline
這是已經加入會員資料表判斷的onlinemsg
環境是TOMCAT5.5.X+JDK5.0
解壓縮後放在TOMCAT/webapps下即可

解壓縮後會看到裡面有一個資料夾"Connections"裡面放的就是資料庫連結的訊息
driver="org.gjt.mm.mysql.Driver"(不必更改)
username,password需改成自己資料庫的名稱和密碼
STRING="jdbc:mysql://[資料庫IP位址]/[資料庫名稱]"
欄位是CUSTO_ID VARCHAR(20) (帳號)
CUSTO_PW VARCHAR(10) (密碼)
我的資料庫用的是MYSQL
所以要將mysql-connector-java-5.0.6-bin.jar放在TOMCAT/common/lib

在程式運作方面比之前多增加了proc_login.jsp和errorsign.jsp
proc_login.jsp是收到index.jsp傳來的變數,然後與資料庫裡的
資料做驗證,如果驗證成功就會到userlist.jsp,失敗就會到
errorsign.jsp,按下按鈕即可回到index.jsp登入畫面
 Filename onlinemsg.rar [Disk] Download
 Description onlinemsg.rar
 Filesize 111 Kbytes
 Downloaded:  50 time(s)

 
Forum Index » 成果發表會 Code Sharing
Go to:   
Mobile view