最近在做一個21點
游戲時,發現經常會引起503錯誤,經過不段設計,終于發現了問題的所在.
在要調試的頁面game21.jsp頭部加上一條輸出語句,用于調試System.out.繼續要牌
一.進入游戲后
url地址:http://localhost:8080/wap/fee/game21.jsp?uId=13312345678&t=0&ante=1
控制臺輸入出信息:調試信息-------------- 頁面正常
二,點擊繼續要牌
url地址:http://localhost:8080/wap/fee/game21.jsp?uId=13312345678&t=0&ante=1&p=2
p=2為表示繼續要牌
控制臺輸入出信息:調試信息-------------- 頁面正常
三,點擊繼續要牌
url地址:http://localhost:8080/wap/fee/game21.jsp?uId=13312345678&t=0&ante=1&p=2
控制臺輸入出信息:
調試信息--------------
調試信息--------------
調試信息--------------
調試信息--------------
調試信息--------------
調試信息--------------
調試信息--------------
頁面出現錯誤
分析:
為什么第一次點繼續要牌的時候,頁面能正常,第二次就會出現不停的刷新頁面?通過url地址的觀察,
發現第一步進來 的時候與第一次點繼續要牌,url的內容不同,而兩次重新要牌的時候,url內容相同,
所以造成這個問題的原因當url相同時,頁面從瀏覽器的緩沖中讀取信息,但如果把頁面的緩沖時間設置過長,用戶再要牌的時候會要不到,要等過了緩沖時間,因此不能通過緩沖時間來實現。應該讓瀏覽器識別這個頁面是一個新頁面,從而從服務器重新取。通過在頁面參數中參加一個隨時變化的參數,瀏覽器識別為未請求過的頁面,所以重新從服務器得到,問題得解決。
在頁面中加一條得到時間的變量 String time = Long.toString(System.currentTimeMillis());
同樣的操作
繼續要牌
一.進入游戲后
url地址:http://localhost:8080/wap/fee/game21.jsp?uId=13312345678&t=0&ante=1
控制臺輸入出信息:調試信息-------------- 頁面正常
二,點擊繼續要牌
url地址:http://localhost:8080/wap/fee/game21.jspuId=13312345678&t=0&ante=1&p=2&time=1116213947531
控制臺輸入出信息:調試信息-------------- 頁面正常
三,點擊繼續要牌
url地址:http://localhost:8080/wap/fee/game21.jspuId=13312345678&t=0&ante=1&p=2&time=1116214023421
控制臺輸入出信息:調試信息-------------- 頁面正常
以上是上Openwave SDK 5.1調試出現問題我解決的
(出處:http://www.49028c.com)