寰俏鍏紬甯愬彿寮€鍙戞暀绋嬬2绡?娑堟伅鍙婃秷鎭鐞嗗伐鍏风殑灏佽
宸ユ鍠勫叾浜嬪繀鍏堝埄鍏跺櫒锛佹湰绡囧唴瀹逛富瑕佽瑙e浣曞皢寰俊鍏紬骞冲彴瀹氫箟鐨勬秷鎭強娑堟伅鐩稿叧鐨勬搷浣滃皝瑁呮垚宸ュ叿绫伙紝鏂归潰鍚庢湡鐨勪娇鐢ㄣ€傝繖閲岄渶瑕佹槑纭殑鏄秷鎭叾瀹炴槸鐢辩敤鎴峰彂缁欎綘鐨勫叕浼楀笎鍙风殑锛屾秷鎭厛琚井淇″钩鍙版帴鏀跺埌锛岀劧鍚庡井淇″钩鍙颁細灏嗚娑堟伅杞粰浣犲湪寮€鍙戞ā寮忔帴鍙i厤缃腑鎸囧畾鐨刄RL鍦板潃銆?/p>
聽
寰俊鍏紬骞冲彴娑堟伅鎺ュ彛
瑕佹帴鏀跺井淇″钩鍙板彂閫佺殑娑堟伅锛屾垜浠渶瑕佸厛鐔熸倝寰俊鍏紬骞冲彴API涓秷鎭帴鍙i儴鍒嗭紝鐐规杩涘叆锛岀偣鍑诲悗灏嗚繘鍏ュ埌娑堟伅鎺ュ彛鎸囧崡閮ㄥ垎锛屽涓嬪浘鎵€绀猴細
鍦ㄤ笂鍥惧乏渚у彲浠ョ湅鍒板井淇″叕浼楀钩鍙扮洰鍓嶅紑鏀剧殑鎺ュ彛鏈変笁绉嶏細娑堟伅鎺ュ彛銆侀€氱敤鎺ュ彛鍜岃嚜瀹氫箟鑿滃崟鎺ュ彛銆傞€氱敤鎺ュ彛鍜岃嚜瀹氫箟鑿滃崟鎺ュ彛鍙湁鎷垮埌鍐呮祴璧勬牸鎵嶈兘璋冪敤锛岃€屽唴娴嬭祫鏍肩殑鐢宠涔熷凡缁忓叧闂簡锛屾垜浠彧鏈夋湡寰呭皢鏉ユ煇涓€澶╁井淇′細瀵瑰ぇ浼楃敤鎴峰紑鏀惧惂锛屾墍浠ユ病鏈夊唴娴嬭祫鏍肩殑鐢ㄦ埛灏变笉瑕佸啀娴垂鏃堕棿鍦ㄨ繖涓や釜鎺ュ彛涓婏紝鍙渶瑕佺敤濂芥秷鎭帴鍙e氨鍙互浜嗐€?/p>
聽
娑堟伅鎺ㄩ€佸拰娑堟伅鍥炲
涓嬮潰灏嗕富瑕佷粙缁嶆秷鎭帴鍙c€傚浜庢秷鎭殑鎺ユ敹銆佸搷搴旀垜浠彧闇€瑕佸叧娉ㄤ笂鍥句腑鐨勨€? 娑堟伅鎺ㄩ€佲€濆拰鈥? 娑堟伅鍥炲鈥濆氨瓒冲浜嗐€?/p>
鎴戜滑鍏堟潵浜嗚В鎺ュ彛涓殑鈥滄秷鎭帹閫佲€濇寚鐨勬槸浠€涔堬紝鐐瑰嚮鈥? 娑堟伅鎺ㄩ€佲€濓紝鍙互鐪嬪埌鎺ュ彛涓殑鈥滄秷鎭帹閫佲€濇寚鐨勬槸鈥滃綋鏅€氱敤鎴峰悜鍏紬甯愬彿鍙戞秷鎭椂锛屽井淇℃湇鍔″櫒灏哖OST璇ユ秷鎭埌濉啓鐨刄RL涓娾€濓紝鍗宠繖閲屽畾涔夌殑鏄敤鎴疯兘澶熷彂閫佸摢浜涚被鍨嬬殑娑堟伅銆佹秷鎭湁鍝簺瀛楁銆佹秷鎭寰俊鏈嶅姟鍣ㄤ互浠€涔堟柟寮忚浆鍙戠粰鎴戜滑鐨勫叕浼楀笎鍙峰悗鍙般€?/p>
娑堟伅鎺ㄩ€佷腑瀹氫箟浜嗘垜浠皢浼氭帴鏀跺埌鐨勬秷鎭被鍨嬫湁5绉嶏細鏂囨湰娑堟伅銆佸浘鐗囨秷鎭€佸湴鐞嗕綅缃秷鎭€侀摼鎺ユ秷鎭拰浜嬩欢鎺ㄩ€侊紝鍏跺疄璇煶娑堟伅鎴戜滑涔熻兘澶熸帴鏀跺埌鐨勶紝鍙笉杩囨嬁涓嶅埌鍏蜂綋鐨勮闊虫枃浠惰€屼互锛堥渶瑕佸唴娴嬭祫鏍兼墠鑳藉鑾峰彇璇煶鏂囦欢锛夈€?/p>
聽
鎺ュ彛涓殑鈥滄秷鎭洖澶嶁€濆畾涔変簡鎴戜滑鑳藉洖澶嶇粰鐢ㄦ埛鐨勬秷鎭被鍨嬨€佹秷鎭瓧娈靛拰娑堟伅鏍煎紡锛屽井淇″叕浼楀钩鍙扮殑鎺ュ彛鎸囧崡涓槸杩欐牱鎻忚堪鐨勶細
涓婇潰璇村埌鎴戜滑鑳藉洖澶嶇粰鐢ㄦ埛鐨勬秷鎭湁5绉嶏紝浣嗙洰鍓嶅湪寮€鍙戞ā寮忎笅鑳藉洖澶嶇殑娑堟伅鍙湁3绉嶏細鏂囨湰娑堟伅銆侀煶涔愭秷鎭拰鍥炬枃娑堟伅锛岃€岃闊虫秷鎭拰瑙嗛娑堟伅鐩墠鍙兘鍦ㄧ紪杈戞ā寮忎笅浣跨敤銆?/p>
聽
娑堟伅鐨勫皝瑁?/span>
鎺ヤ笅鏉ヨ鍋氱殑灏辨槸灏嗘秷鎭帹閫侊紙璇锋眰锛夈€佹秷鎭洖澶嶏紙鍝嶅簲锛変腑瀹氫箟鐨勬秷鎭繘琛屽皝瑁咃紝寤虹珛涓庝箣瀵瑰簲鐨凧ava绫伙紙Java鏄竴闂ㄩ潰鍚戝璞$殑缂栫▼璇█锛屽皝瑁呭悗浣跨敤璧锋潵鏇存柟渚匡級锛屼笅闈㈢殑璇锋眰娑堟伅鏄寚娑堟伅鎺ㄩ€佷腑瀹氫箟鐨勬秷鎭紝鍝嶅簲娑堟伅鎸囨秷鎭洖澶嶄腑瀹氫箟鐨勬秷鎭€?/p>
璇锋眰娑堟伅鐨勫熀绫?/span>
鎶婃秷鎭帹閫?/span>涓畾涔夌殑鎵€鏈夋秷鎭兘鏈夌殑瀛楁鎻愬彇鍑烘潵锛屽皝瑁呮垚涓€涓熀绫伙紝杩欎簺鍏湁鐨勫瓧娈靛寘鎷細ToUserName锛堝紑鍙戣€呭井淇″彿锛夈€丗romUserName锛堝彂閫佹柟甯愬彿锛孫PEN_ID锛夈€丆reateTime锛堟秷鎭殑鍒涘缓鏃堕棿锛夈€丮sgType锛堟秷鎭被鍨嬶級銆丮sgId锛堟秷鎭疘D锛夛紝灏佽鍚庡熀绫籵rg.liufeng.course.message.req.BaseMessage鐨勪唬鐮佸涓嬶細
聽
- package聽org.liufeng.course.message.req;聽聽
- 聽聽
- /**聽
- 聽*聽娑堟伅鍩虹被锛堟櫘閫氱敤鎴仿?>聽鍏紬甯愬彿锛?/span>聽
- 聽*聽聽
- 聽*聽@author聽liufeng聽
- 聽*聽@date聽2013-05-19聽
- 聽*/聽聽
- public聽class聽BaseMessage聽{聽聽
- 聽聽聽聽//聽寮€鍙戣€呭井淇″彿聽聽
- 聽聽聽聽private聽String聽ToUserName;聽聽
- 聽聽聽聽//聽鍙戦€佹柟甯愬彿锛堜竴涓狾penID锛?/span>聽聽
- 聽聽聽聽private聽String聽FromUserName;聽聽
- 聽聽聽聽//聽娑堟伅鍒涘缓鏃堕棿聽锛堟暣鍨嬶級聽聽
- 聽聽聽聽private聽long聽CreateTime;聽聽
- 聽聽聽聽//聽娑堟伅绫诲瀷锛坱ext/image/location/link锛?/span>聽聽
- 聽聽聽聽private聽String聽MsgType;聽聽
- 聽聽聽聽//聽娑堟伅id锛?4浣嶆暣鍨?/span>聽聽
- 聽聽聽聽private聽long聽MsgId;聽聽
- 聽聽
- 聽聽聽聽public聽String聽getToUserName()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽ToUserName;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setToUserName(String聽toUserName)聽{聽聽
- 聽聽聽聽聽聽聽聽ToUserName聽=聽toUserName;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽String聽getFromUserName()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽FromUserName;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setFromUserName(String聽fromUserName)聽{聽聽
- 聽聽聽聽聽聽聽聽FromUserName聽=聽fromUserName;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽long聽getCreateTime()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽CreateTime;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setCreateTime(long聽createTime)聽{聽聽
- 聽聽聽聽聽聽聽聽CreateTime聽=聽createTime;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽String聽getMsgType()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽MsgType;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setMsgType(String聽msgType)聽{聽聽
- 聽聽聽聽聽聽聽聽MsgType聽=聽msgType;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽long聽getMsgId()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽MsgId;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setMsgId(long聽msgId)聽{聽聽
- 聽聽聽聽聽聽聽聽MsgId聽=聽msgId;聽聽
- 聽聽聽聽}聽聽
- }聽聽
璇锋眰娑堟伅涔嬫枃鏈秷鎭?/span>
- package聽org.liufeng.course.message.req;聽聽
- 聽聽
- /**聽
- 聽*聽鏂囨湰娑堟伅聽
- 聽*聽聽
- 聽*聽@author聽liufeng聽
- 聽*聽@date聽2013-05-19聽
- 聽*/聽聽
- public聽class聽TextMessage聽extends聽BaseMessage聽{聽聽
- 聽聽聽聽//聽娑堟伅鍐呭聽聽
- 聽聽聽聽private聽String聽Content;聽聽
- 聽聽
- 聽聽聽聽public聽String聽getContent()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽Content;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setContent(String聽content)聽{聽聽
- 聽聽聽聽聽聽聽聽Content聽=聽content;聽聽
- 聽聽聽聽}聽聽
- }聽聽
璇锋眰娑堟伅涔嬪浘鐗囨秷鎭?br>
聽
- package聽org.liufeng.course.message.req;聽聽
- 聽聽
- /**聽
- 聽*聽鍥剧墖娑堟伅聽
- 聽*聽聽
- 聽*聽@author聽liufeng聽
- 聽*聽@date聽2013-05-19聽
- 聽*/聽聽
- public聽class聽ImageMessage聽extends聽BaseMessage聽{聽聽
- 聽聽聽聽//聽鍥剧墖閾炬帴聽聽
- 聽聽聽聽private聽String聽PicUrl;聽聽
- 聽聽
- 聽聽聽聽public聽String聽getPicUrl()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽PicUrl;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setPicUrl(String聽picUrl)聽{聽聽
- 聽聽聽聽聽聽聽聽PicUrl聽=聽picUrl;聽聽
- 聽聽聽聽}聽聽
- }聽聽
璇锋眰娑堟伅涔嬪湴鐞嗕綅缃秷鎭?/span>
- package聽org.liufeng.course.message.req;聽聽
- 聽聽
- /**聽
- 聽*聽鍦扮悊浣嶇疆娑堟伅聽
- 聽*聽聽
- 聽*聽@author聽liufeng聽
- 聽*聽@date聽2013-05-19聽
- 聽*/聽聽
- public聽class聽LocationMessage聽extends聽BaseMessage聽{聽聽
- 聽聽聽聽//聽鍦扮悊浣嶇疆缁村害聽聽
- 聽聽聽聽private聽String聽Location_X;聽聽
- 聽聽聽聽//聽鍦扮悊浣嶇疆缁忓害聽聽
- 聽聽聽聽private聽String聽Location_Y;聽聽
- 聽聽聽聽//聽鍦板浘缂╂斁澶у皬聽聽
- 聽聽聽聽private聽String聽Scale;聽聽
- 聽聽聽聽//聽鍦扮悊浣嶇疆淇℃伅聽聽
- 聽聽聽聽private聽String聽Label;聽聽
- 聽聽
- 聽聽聽聽public聽String聽getLocation_X()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽Location_X;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setLocation_X(String聽location_X)聽{聽聽
- 聽聽聽聽聽聽聽聽Location_X聽=聽location_X;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽String聽getLocation_Y()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽Location_Y;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setLocation_Y(String聽location_Y)聽{聽聽
- 聽聽聽聽聽聽聽聽Location_Y聽=聽location_Y;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽String聽getScale()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽Scale;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setScale(String聽scale)聽{聽聽
- 聽聽聽聽聽聽聽聽Scale聽=聽scale;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽String聽getLabel()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽Label;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setLabel(String聽label)聽{聽聽
- 聽聽聽聽聽聽聽聽Label聽=聽label;聽聽
- 聽聽聽聽}聽聽
- }聽聽
璇锋眰娑堟伅涔嬮摼鎺ユ秷鎭?/span>
- package聽org.liufeng.course.message.req;聽聽
- 聽聽
- /**聽
- 聽*聽閾炬帴娑堟伅聽
- 聽*聽聽
- 聽*聽@author聽liufeng聽
- 聽*聽@date聽2013-05-19聽
- 聽*/聽聽
- public聽class聽LinkMessage聽extends聽BaseMessage聽{聽聽
- 聽聽聽聽//聽娑堟伅鏍囬聽聽
- 聽聽聽聽private聽String聽Title;聽聽
- 聽聽聽聽//聽娑堟伅鎻忚堪聽聽
- 聽聽聽聽private聽String聽Description;聽聽
- 聽聽聽聽//聽娑堟伅閾炬帴聽聽
- 聽聽聽聽private聽String聽Url;聽聽
- 聽聽
- 聽聽聽聽public聽String聽getTitle()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽Title;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setTitle(String聽title)聽{聽聽
- 聽聽聽聽聽聽聽聽Title聽=聽title;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽String聽getDescription()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽Description;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setDescription(String聽description)聽{聽聽
- 聽聽聽聽聽聽聽聽Description聽=聽description;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽String聽getUrl()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽Url;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setUrl(String聽url)聽{聽聽
- 聽聽聽聽聽聽聽聽Url聽=聽url;聽聽
- 聽聽聽聽}聽聽
- }聽聽
璇锋眰娑堟伅涔嬭闊虫秷鎭?/span>
- package聽org.liufeng.course.message.req;聽聽
- 聽聽
- /**聽
- 聽*聽闊抽娑堟伅聽
- 聽*聽聽
- 聽*聽@author聽liufeng聽
- 聽*聽@date聽2013-05-19聽
- 聽*/聽聽
- public聽class聽VoiceMessage聽extends聽BaseMessage聽{聽聽
- 聽聽聽聽//聽濯掍綋ID聽聽
- 聽聽聽聽private聽String聽MediaId;聽聽
- 聽聽聽聽//聽璇煶鏍煎紡聽聽
- 聽聽聽聽private聽String聽Format;聽聽
- 聽聽
- 聽聽聽聽public聽String聽getMediaId()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽MediaId;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setMediaId(String聽mediaId)聽{聽聽
- 聽聽聽聽聽聽聽聽MediaId聽=聽mediaId;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽String聽getFormat()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽Format;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setFormat(String聽format)聽{聽聽
- 聽聽聽聽聽聽聽聽Format聽=聽format;聽聽
- 聽聽聽聽}聽聽
- }聽聽
鍝嶅簲娑堟伅鐨勫熀绫?/span>
鍚屾牱锛屾妸娑堟伅鍥炲涓畾涔夌殑鎵€鏈夋秷鎭兘鏈夌殑瀛楁鎻愬彇鍑烘潵锛屽皝瑁呮垚涓€涓熀绫伙紝杩欎簺鍏湁鐨勫瓧娈靛寘鎷細ToUserName锛堟帴鏀舵柟甯愬彿锛岀敤鎴风殑OPEN_ID锛夈€丗romUserName锛堝紑鍙戣€呯殑寰俊鍙凤級銆丆reateTime锛堟秷鎭殑鍒涘缓鏃堕棿锛夈€丮sgType锛堟秷鎭被鍨嬶級銆丗uncFlag锛堟秷鎭殑鏄熸爣鏍囪瘑锛夛紝灏佽鍚庡熀绫籵rg.liufeng.course.message.resp.BaseMessage鐨勪唬鐮佸涓嬶細
聽
- package聽org.liufeng.course.message.resp;聽聽
- 聽聽
- /**聽
- 聽*聽娑堟伅鍩虹被锛堝叕浼楀笎鍙仿?>聽鏅€氱敤鎴凤級聽
- 聽*聽聽
- 聽*聽@author聽liufeng聽
- 聽*聽@date聽2013-05-19聽
- 聽*/聽聽
- public聽class聽BaseMessage聽{聽聽
- 聽聽聽聽//聽鎺ユ敹鏂瑰笎鍙凤紙鏀跺埌鐨凮penID锛?/span>聽聽
- 聽聽聽聽private聽String聽ToUserName;聽聽
- 聽聽聽聽//聽寮€鍙戣€呭井淇″彿聽聽
- 聽聽聽聽private聽String聽FromUserName;聽聽
- 聽聽聽聽//聽娑堟伅鍒涘缓鏃堕棿聽锛堟暣鍨嬶級聽聽
- 聽聽聽聽private聽long聽CreateTime;聽聽
- 聽聽聽聽//聽娑堟伅绫诲瀷锛坱ext/music/news锛?/span>聽聽
- 聽聽聽聽private聽String聽MsgType;聽聽
- 聽聽聽聽//聽浣?x0001琚爣蹇楁椂锛屾槦鏍囧垰鏀跺埌鐨勬秷鎭?/span>聽聽
- 聽聽聽聽private聽int聽FuncFlag;聽聽
- 聽聽
- 聽聽聽聽public聽String聽getToUserName()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽ToUserName;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setToUserName(String聽toUserName)聽{聽聽
- 聽聽聽聽聽聽聽聽ToUserName聽=聽toUserName;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽String聽getFromUserName()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽FromUserName;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setFromUserName(String聽fromUserName)聽{聽聽
- 聽聽聽聽聽聽聽聽FromUserName聽=聽fromUserName;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽long聽getCreateTime()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽CreateTime;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setCreateTime(long聽createTime)聽{聽聽
- 聽聽聽聽聽聽聽聽CreateTime聽=聽createTime;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽String聽getMsgType()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽MsgType;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setMsgType(String聽msgType)聽{聽聽
- 聽聽聽聽聽聽聽聽MsgType聽=聽msgType;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽int聽getFuncFlag()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽FuncFlag;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setFuncFlag(int聽funcFlag)聽{聽聽
- 聽聽聽聽聽聽聽聽FuncFlag聽=聽funcFlag;聽聽
- 聽聽聽聽}聽聽
- }聽聽
鍝嶅簲娑堟伅涔嬫枃鏈秷鎭?br>
聽
- package聽org.liufeng.course.message.resp;聽聽
- 聽聽
- /**聽
- 聽*聽鏂囨湰娑堟伅聽
- 聽*聽聽
- 聽*聽@author聽liufeng聽
- 聽*聽@date聽2013-05-19聽
- 聽*/聽聽
- public聽class聽TextMessage聽extends聽BaseMessage聽{聽聽
- 聽聽聽聽//聽鍥炲鐨勬秷鎭唴瀹?/span>聽聽
- 聽聽聽聽private聽String聽Content;聽聽
- 聽聽
- 聽聽聽聽public聽String聽getContent()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽Content;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setContent(String聽content)聽{聽聽
- 聽聽聽聽聽聽聽聽Content聽=聽content;聽聽
- 聽聽聽聽}聽聽
- }聽聽
鍝嶅簲娑堟伅涔嬮煶涔愭秷鎭?br>
聽
- package聽org.liufeng.course.message.resp;聽聽
- 聽聽
- /**聽
- 聽*聽闊充箰娑堟伅聽
- 聽*聽聽
- 聽*聽@author聽liufeng聽
- 聽*聽@date聽2013-05-19聽
- 聽*/聽聽
- public聽class聽MusicMessage聽extends聽BaseMessage聽{聽聽
- 聽聽聽聽//聽闊充箰聽聽
- 聽聽聽聽private聽Music聽Music;聽聽
- 聽聽
- 聽聽聽聽public聽Music聽getMusic()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽Music;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setMusic(Music聽music)聽{聽聽
- 聽聽聽聽聽聽聽聽Music聽=聽music;聽聽
- 聽聽聽聽}聽聽
- }聽聽
闊充箰娑堟伅涓璏usic绫荤殑瀹氫箟
- package聽org.liufeng.course.message.resp;聽聽
- 聽聽
- /**聽
- 聽*聽闊充箰model聽
- 聽*聽聽
- 聽*聽@author聽liufeng聽
- 聽*聽@date聽2013-05-19聽
- 聽*/聽聽
- public聽class聽Music聽{聽聽
- 聽聽聽聽//聽闊充箰鍚嶇О聽聽
- 聽聽聽聽private聽String聽Title;聽聽
- 聽聽聽聽//聽闊充箰鎻忚堪聽聽
- 聽聽聽聽private聽String聽Description;聽聽
- 聽聽聽聽//聽闊充箰閾炬帴聽聽
- 聽聽聽聽private聽String聽MusicUrl;聽聽
- 聽聽聽聽//聽楂樿川閲忛煶涔愰摼鎺ワ紝WIFI鐜浼樺厛浣跨敤璇ラ摼鎺ユ挱鏀鹃煶涔?/span>聽聽
- 聽聽聽聽private聽String聽HQMusicUrl;聽聽
- 聽聽
- 聽聽聽聽public聽String聽getTitle()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽Title;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setTitle(String聽title)聽{聽聽
- 聽聽聽聽聽聽聽聽Title聽=聽title;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽String聽getDescription()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽Description;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setDescription(String聽description)聽{聽聽
- 聽聽聽聽聽聽聽聽Description聽=聽description;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽String聽getMusicUrl()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽MusicUrl;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setMusicUrl(String聽musicUrl)聽{聽聽
- 聽聽聽聽聽聽聽聽MusicUrl聽=聽musicUrl;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽String聽getHQMusicUrl()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽HQMusicUrl;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setHQMusicUrl(String聽musicUrl)聽{聽聽
- 聽聽聽聽聽聽聽聽HQMusicUrl聽=聽musicUrl;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- }聽聽
鍝嶅簲娑堟伅涔嬪浘鏂囨秷鎭?br>
聽
- package聽org.liufeng.course.message.resp;聽聽
- 聽聽
- import聽java.util.List;聽聽
- 聽聽
- /**聽
- 聽*聽鏂囨湰娑堟伅聽
- 聽*聽聽
- 聽*聽@author聽liufeng聽
- 聽*聽@date聽2013-05-19聽
- 聽*/聽聽
- public聽class聽NewsMessage聽extends聽BaseMessage聽{聽聽
- 聽聽聽聽//聽鍥炬枃娑堟伅涓暟锛岄檺鍒朵负10鏉′互鍐?/span>聽聽
- 聽聽聽聽private聽int聽ArticleCount;聽聽
- 聽聽聽聽//聽澶氭潯鍥炬枃娑堟伅淇℃伅锛岄粯璁ょ涓€涓猧tem涓哄ぇ鍥?/span>聽聽
- 聽聽聽聽private聽List<Article>聽Articles;聽聽
- 聽聽
- 聽聽聽聽public聽int聽getArticleCount()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽ArticleCount;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setArticleCount(int聽articleCount)聽{聽聽
- 聽聽聽聽聽聽聽聽ArticleCount聽=聽articleCount;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽List<Article>聽getArticles()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽Articles;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setArticles(List<Article>聽articles)聽{聽聽
- 聽聽聽聽聽聽聽聽Articles聽=聽articles;聽聽
- 聽聽聽聽}聽聽
- }聽聽
鍥炬枃娑堟伅涓瑼rticle绫荤殑瀹氫箟
- package聽org.liufeng.course.message.resp;聽聽
- 聽聽
- /**聽
- 聽*聽鍥炬枃model聽
- 聽*聽聽
- 聽*聽@author聽liufeng聽
- 聽*聽@date聽2013-05-19聽
- 聽*/聽聽
- public聽class聽Article聽{聽聽
- 聽聽聽聽//聽鍥炬枃娑堟伅鍚嶇О聽聽
- 聽聽聽聽private聽String聽Title;聽聽
- 聽聽聽聽//聽鍥炬枃娑堟伅鎻忚堪聽聽
- 聽聽聽聽private聽String聽Description;聽聽
- 聽聽聽聽//聽鍥剧墖閾炬帴锛屾敮鎸丣PG銆丳NG鏍煎紡锛岃緝濂界殑鏁堟灉涓哄ぇ鍥?40*320锛屽皬鍥?0*80锛岄檺鍒跺浘鐗囬摼鎺ョ殑鍩熷悕闇€瑕佷笌寮€鍙戣€呭~鍐欑殑鍩烘湰璧勬枡涓殑Url涓€鑷?/span>聽聽
- 聽聽聽聽private聽String聽PicUrl;聽聽
- 聽聽聽聽//聽鐐瑰嚮鍥炬枃娑堟伅璺宠浆閾炬帴聽聽
- 聽聽聽聽private聽String聽Url;聽聽
- 聽聽
- 聽聽聽聽public聽String聽getTitle()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽Title;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setTitle(String聽title)聽{聽聽
- 聽聽聽聽聽聽聽聽Title聽=聽title;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽String聽getDescription()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽null聽==聽Description聽?聽""聽:聽Description;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setDescription(String聽description)聽{聽聽
- 聽聽聽聽聽聽聽聽Description聽=聽description;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽String聽getPicUrl()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽null聽==聽PicUrl聽?聽""聽:聽PicUrl;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setPicUrl(String聽picUrl)聽{聽聽
- 聽聽聽聽聽聽聽聽PicUrl聽=聽picUrl;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽String聽getUrl()聽{聽聽
- 聽聽聽聽聽聽聽聽return聽null聽==聽Url聽?聽""聽:聽Url;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽public聽void聽setUrl(String聽url)聽{聽聽
- 聽聽聽聽聽聽聽聽Url聽=聽url;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- }聽聽
鍏ㄩ儴娑堟伅灏佽瀹屾垚鍚庯紝Eclipse宸ョ▼涓叧浜庢秷鎭儴鍒嗙殑缁撴瀯搴旇涓庝笅鍥句繚鎸佷竴鑷达紝濡傛灉涓嶄竴鑷寸殑锛堢被鍚嶃€佸睘鎬у悕绉颁笉涓€鑷寸殑锛夎妫€鏌ュ悗璋冩暣涓€鑷达紝鍥犱负鍚庨潰鐨勭珷鑺傝繕瑕佷粙缁嶅浣曞皢寰俊寮€鍙戜腑閫氱敤鐨勭被鏂规硶銆佷笌涓氬姟鏃犲叧鐨勫伐鍏风被灏佽鎵撴垚jar鍖咃紝浠ュ悗鍐嶅仛寰俊椤圭洰鍙渶瑕佸紩鍏ヨjar鍖呭嵆鍙紝杩欑宸ヤ綔鍋氫竴娆″氨鍙互浜嗐€?/span>
聽
濡備綍瑙f瀽璇锋眰娑堟伅?
鎺ヤ笅鏉ヨВ鍐宠姹傛秷鎭殑瑙f瀽闂銆傚井淇℃湇鍔″櫒浼氬皢鐢ㄦ埛鐨勮姹傞€氳繃doPost鏂规硶鍙戦€佺粰鎴戜滑锛岃鎴戜滑鍐嶆潵鍥為【涓嬩笂涓€绔犺妭宸茬粡鍐欏ソ鐨刣oPost鏂规硶鐨勫畾涔夛細
聽
- /**聽聽
- 聽聽聽聽*聽澶勭悊寰俊鏈嶅姟鍣ㄥ彂鏉ョ殑娑堟伅聽聽
- 聽聽聽聽*/聽聽聽聽
- 聽聽聽public聽void聽doPost(HttpServletRequest聽request,聽HttpServletResponse聽response)聽throws聽ServletException,聽IOException聽{聽聽聽聽
- 聽聽聽聽聽聽聽//聽TODO聽娑堟伅鐨勬帴鏀躲€佸鐞嗐€佸搷搴斅犅?/span>聽聽
- 聽聽聽}聽聽聽聽
doPost鏂规硶鏈変袱涓弬鏁帮紝request涓皝瑁呬簡璇锋眰鐩稿叧鐨勬墍鏈夊唴瀹癸紝鍙互浠巖equest涓彇鍑哄井淇℃湇鍔″櫒鍙戞潵鐨勬秷鎭紱鑰岄€氳繃response鎴戜滑鍙互瀵规帴鏀跺埌鐨勬秷鎭繘琛屽搷搴旓紝鍗冲彂閫佹秷鎭€?/span>
聽
閭d箞濡備綍瑙f瀽璇锋眰娑堟伅鐨勯棶棰樹篃灏辫浆鍖栦负濡備綍浠巖equest涓緱鍒板井淇℃湇鍔″櫒鍙戦€佺粰鎴戜滑鐨剎ml鏍煎紡鐨勬秷鎭簡銆傝繖閲屾垜浠?span style="color: #ff0000;">鍊熷姪浜庡紑婧愭鏋禿om4j鍘昏В鏋恱ml锛堣繖閲屼娇鐢ㄧ殑鏄痙om4j-1.6.1.jar锛?/span>锛岀劧鍚庡皢瑙f瀽寰楀埌鐨勭粨鏋滃瓨鍏ashMap锛岃В鏋愯姹傛秷鎭殑鏂规硶濡備笅锛?/p>
聽
- /**聽
- 聽*聽瑙f瀽寰俊鍙戞潵鐨勮姹傦紙XML锛?/span>聽
- 聽*聽聽
- 聽*聽@param聽request聽
- 聽*聽@return聽
- 聽*聽@throws聽Exception聽
- 聽*/聽聽
- @SuppressWarnings("unchecked")聽聽
- public聽static聽Map<String,聽String>聽parseXml(HttpServletRequest聽request)聽throws聽Exception聽{聽聽
- 聽聽聽聽//聽灏嗚В鏋愮粨鏋滃瓨鍌ㄥ湪HashMap涓?/span>聽聽
- 聽聽聽聽Map<String,聽String>聽map聽=聽new聽HashMap<String,聽String>();聽聽
- 聽聽
- 聽聽聽聽//聽浠巖equest涓彇寰楄緭鍏ユ祦聽聽
- 聽聽聽聽InputStream聽inputStream聽=聽request.getInputStream();聽聽
- 聽聽聽聽//聽璇诲彇杈撳叆娴?/span>聽聽
- 聽聽聽聽SAXReader聽reader聽=聽new聽SAXReader();聽聽
- 聽聽聽聽Document聽document聽=聽reader.read(inputStream);聽聽
- 聽聽聽聽//聽寰楀埌xml鏍瑰厓绱?/span>聽聽
- 聽聽聽聽Element聽root聽=聽document.getRootElement();聽聽
- 聽聽聽聽//聽寰楀埌鏍瑰厓绱犵殑鎵€鏈夊瓙鑺傜偣聽聽
- 聽聽聽聽List<Element>聽elementList聽=聽root.elements();聽聽
- 聽聽
- 聽聽聽聽//聽閬嶅巻鎵€鏈夊瓙鑺傜偣聽聽
- 聽聽聽聽for聽(Element聽e聽:聽elementList)聽聽
- 聽聽聽聽聽聽聽聽map.put(e.getName(),聽e.getText());聽聽
- 聽聽
- 聽聽聽聽//聽閲婃斁璧勬簮聽聽
- 聽聽聽聽inputStream.close();聽聽
- 聽聽聽聽inputStream聽=聽null;聽聽
- 聽聽
- 聽聽聽聽return聽map;聽聽
- }聽聽
濡備綍灏嗗搷搴旀秷鎭浆鎹㈡垚xml杩斿洖锛?/span>
聽
鎴戜滑鍏堝墠宸茬粡灏嗗搷搴旀秷鎭皝瑁呮垚浜咼ava绫伙紝鏂逛究鎴戜滑鍦ㄤ唬鐮佷腑浣跨敤銆傞偅涔堬紝璇锋眰鎺ユ敹鎴愬姛銆佸鐞嗗畬鎴愬悗锛岃濡備綍灏嗘秷鎭繑鍥炲憿锛熻繖閲屽氨娑夊強鍒板浣曞皢鍝嶅簲娑堟伅杞崲鎴恱ml杩斿洖鐨勯棶棰橈紝杩欓噷鎴戜滑灏?span style="color: #ff0000;">閲囩敤寮€婧愭鏋秞stream鏉ュ疄鐜癑ava绫诲埌xml鐨勮浆鎹紙杩欓噷浣跨敤鐨勬槸xstream-1.3.1.jar锛?/span>锛屼唬鐮佸涓嬶細
聽
- /**聽
- 聽*聽鏂囨湰娑堟伅瀵硅薄杞崲鎴恱ml聽
- 聽*聽聽
- 聽*聽@param聽textMessage聽鏂囨湰娑堟伅瀵硅薄聽
- 聽*聽@return聽xml聽
- 聽*/聽聽
- public聽static聽String聽textMessageToXml(TextMessage聽textMessage)聽{聽聽
- 聽聽聽聽xstream.alias("xml",聽textMessage.getClass());聽聽
- 聽聽聽聽return聽xstream.toXML(textMessage);聽聽
- }聽聽
- 聽聽
- /**聽
- 聽*聽闊充箰娑堟伅瀵硅薄杞崲鎴恱ml聽
- 聽*聽聽
- 聽*聽@param聽musicMessage聽闊充箰娑堟伅瀵硅薄聽
- 聽*聽@return聽xml聽
- 聽*/聽聽
- public聽static聽String聽musicMessageToXml(MusicMessage聽musicMessage)聽{聽聽
- 聽聽聽聽xstream.alias("xml",聽musicMessage.getClass());聽聽
- 聽聽聽聽return聽xstream.toXML(musicMessage);聽聽
- }聽聽
- 聽聽
- /**聽
- 聽*聽鍥炬枃娑堟伅瀵硅薄杞崲鎴恱ml聽
- 聽*聽聽
- 聽*聽@param聽newsMessage聽鍥炬枃娑堟伅瀵硅薄聽
- 聽*聽@return聽xml聽
- 聽*/聽聽
- public聽static聽String聽newsMessageToXml(NewsMessage聽newsMessage)聽{聽聽
- 聽聽聽聽xstream.alias("xml",聽newsMessage.getClass());聽聽
- 聽聽聽聽xstream.alias("item",聽new聽Article().getClass());聽聽
- 聽聽聽聽return聽xstream.toXML(newsMessage);聽聽
- }聽聽
- 聽聽
- /**聽
- 聽*聽鎵╁睍xstream锛屼娇鍏舵敮鎸丆DATA鍧?/span>聽
- 聽*聽聽
- 聽*聽@date聽2013-05-19聽
- 聽*/聽聽
- private聽static聽XStream聽xstream聽=聽new聽XStream(new聽XppDriver()聽{聽聽
- 聽聽聽聽public聽HierarchicalStreamWriter聽createWriter(Writer聽out)聽{聽聽
- 聽聽聽聽聽聽聽聽return聽new聽PrettyPrintWriter(out)聽{聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽//聽瀵规墍鏈墄ml鑺傜偣鐨勮浆鎹㈤兘澧炲姞CDATA鏍囪聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽boolean聽cdata聽=聽true;聽聽
- 聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽@SuppressWarnings("unchecked")聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽public聽void聽startNode(String聽name,聽Class聽clazz)聽{聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽super.startNode(name,聽clazz);聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽protected聽void聽writeText(QuickWriter聽writer,聽String聽text)聽{聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if聽(cdata)聽{聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽writer.write("<![CDATA[");聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽writer.write(text);聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽writer.write("]]>");聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽else聽{聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽writer.write(text);聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽}聽聽
- 聽聽聽聽聽聽聽聽};聽聽
- 聽聽聽聽}聽聽
- });聽聽
璇存槑锛氱敱浜巟stream妗嗘灦鏈韩骞朵笉鏀寔CDATA鍧楃殑鐢熸垚锛?0~62琛屼唬鐮佹槸瀵箈tream鍋氫簡鎵╁睍锛屼娇鍏舵敮鎸佸湪鐢熸垚xml鍚勫厓绱犲€兼椂娣诲姞CDATA鍧椼€?/span>
娑堟伅澶勭悊宸ュ叿鐨勫皝瑁?/span>
鐭ラ亾鎬庝箞瑙f瀽璇锋眰娑堟伅锛屼篃鐭ラ亾濡備綍灏嗗搷搴旀秷鎭浆鍖栨垚xml浜嗭紝鎺ヤ笅鏉ュ氨鏄皢娑堟伅鐩稿叧鐨勫鐞嗘柟娉曞叏閮ㄥ皝瑁呭埌宸ュ叿绫籑essageUtil涓紝璇ョ被鐨勫畬鏁翠唬鐮佸涓嬶細
聽
- package聽org.liufeng.course.util;聽聽
- 聽聽
- import聽java.io.InputStream;聽聽
- import聽java.io.Writer;聽聽
- import聽java.util.HashMap;聽聽
- import聽java.util.List;聽聽
- import聽java.util.Map;聽聽
- 聽聽
- import聽javax.servlet.http.HttpServletRequest;聽聽
- 聽聽
- import聽org.dom4j.Document;聽聽
- import聽org.dom4j.Element;聽聽
- import聽org.dom4j.io.SAXReader;聽聽
- import聽org.liufeng.course.message.resp.Article;聽聽
- import聽org.liufeng.course.message.resp.MusicMessage;聽聽
- import聽org.liufeng.course.message.resp.NewsMessage;聽聽
- import聽org.liufeng.course.message.resp.TextMessage;聽聽
- 聽聽
- import聽com.thoughtworks.xstream.XStream;聽聽
- import聽com.thoughtworks.xstream.core.util.QuickWriter;聽聽
- import聽com.thoughtworks.xstream.io.HierarchicalStreamWriter;聽聽
- import聽com.thoughtworks.xstream.io.xml.PrettyPrintWriter;聽聽
- import聽com.thoughtworks.xstream.io.xml.XppDriver;聽聽
- 聽聽
- /**聽
- 聽*聽娑堟伅宸ュ叿绫?/span>聽
- 聽*聽聽
- 聽*聽@author聽liufeng聽
- 聽*聽@date聽2013-05-19聽
- 聽*/聽聽
- public聽class聽MessageUtil聽{聽聽
- 聽聽
- 聽聽聽聽/**聽
- 聽聽聽聽聽*聽杩斿洖娑堟伅绫诲瀷锛氭枃鏈?/span>聽
- 聽聽聽聽聽*/聽聽
- 聽聽聽聽public聽static聽final聽String聽RESP_MESSAGE_TYPE_TEXT聽=聽"text";聽聽
- 聽聽
- 聽聽聽聽/**聽
- 聽聽聽聽聽*聽杩斿洖娑堟伅绫诲瀷锛氶煶涔?/span>聽
- 聽聽聽聽聽*/聽聽
- 聽聽聽聽public聽static聽final聽String聽RESP_MESSAGE_TYPE_MUSIC聽=聽"music";聽聽
- 聽聽
- 聽聽聽聽/**聽
- 聽聽聽聽聽*聽杩斿洖娑堟伅绫诲瀷锛氬浘鏂?/span>聽
- 聽聽聽聽聽*/聽聽
- 聽聽聽聽public聽static聽final聽String聽RESP_MESSAGE_TYPE_NEWS聽=聽"news";聽聽
- 聽聽
- 聽聽聽聽/**聽
- 聽聽聽聽聽*聽璇锋眰娑堟伅绫诲瀷锛氭枃鏈?/span>聽
- 聽聽聽聽聽*/聽聽
- 聽聽聽聽public聽static聽final聽String聽REQ_MESSAGE_TYPE_TEXT聽=聽"text";聽聽
- 聽聽
- 聽聽聽聽/**聽
- 聽聽聽聽聽*聽璇锋眰娑堟伅绫诲瀷锛氬浘鐗?/span>聽
- 聽聽聽聽聽*/聽聽
- 聽聽聽聽public聽static聽final聽String聽REQ_MESSAGE_TYPE_IMAGE聽=聽"image";聽聽
- 聽聽
- 聽聽聽聽/**聽
- 聽聽聽聽聽*聽璇锋眰娑堟伅绫诲瀷锛氶摼鎺?/span>聽
- 聽聽聽聽聽*/聽聽
- 聽聽聽聽public聽static聽final聽String聽REQ_MESSAGE_TYPE_LINK聽=聽"link";聽聽
- 聽聽
- 聽聽聽聽/**聽
- 聽聽聽聽聽*聽璇锋眰娑堟伅绫诲瀷锛氬湴鐞嗕綅缃?/span>聽
- 聽聽聽聽聽*/聽聽
- 聽聽聽聽public聽static聽final聽String聽REQ_MESSAGE_TYPE_LOCATION聽=聽"location";聽聽
- 聽聽
- 聽聽聽聽/**聽
- 聽聽聽聽聽*聽璇锋眰娑堟伅绫诲瀷锛氶煶棰?/span>聽
- 聽聽聽聽聽*/聽聽
- 聽聽聽聽public聽static聽final聽String聽REQ_MESSAGE_TYPE_VOICE聽=聽"voice";聽聽
- 聽聽
- 聽聽聽聽/**聽
- 聽聽聽聽聽*聽璇锋眰娑堟伅绫诲瀷锛氭帹閫?/span>聽
- 聽聽聽聽聽*/聽聽
- 聽聽聽聽public聽static聽final聽String聽REQ_MESSAGE_TYPE_EVENT聽=聽"event";聽聽
- 聽聽
- 聽聽聽聽/**聽
- 聽聽聽聽聽*聽浜嬩欢绫诲瀷锛歴ubscribe(璁㈤槄)聽
- 聽聽聽聽聽*/聽聽
- 聽聽聽聽public聽static聽final聽String聽EVENT_TYPE_SUBSCRIBE聽=聽"subscribe";聽聽
- 聽聽
- 聽聽聽聽/**聽
- 聽聽聽聽聽*聽浜嬩欢绫诲瀷锛歶nsubscribe(鍙栨秷璁㈤槄)聽
- 聽聽聽聽聽*/聽聽
- 聽聽聽聽public聽static聽final聽String聽EVENT_TYPE_UNSUBSCRIBE聽=聽"unsubscribe";聽聽
- 聽聽
- 聽聽聽聽/**聽
- 聽聽聽聽聽*聽浜嬩欢绫诲瀷锛欳LICK(鑷畾涔夎彍鍗曠偣鍑讳簨浠?聽
- 聽聽聽聽聽*/聽聽
- 聽聽聽聽public聽static聽final聽String聽EVENT_TYPE_CLICK聽=聽"CLICK";聽聽
- 聽聽
- 聽聽聽聽/**聽
- 聽聽聽聽聽*聽瑙f瀽寰俊鍙戞潵鐨勮姹傦紙XML锛?/span>聽
- 聽聽聽聽聽*聽聽
- 聽聽聽聽聽*聽@param聽request聽
- 聽聽聽聽聽*聽@return聽
- 聽聽聽聽聽*聽@throws聽Exception聽
- 聽聽聽聽聽*/聽聽
- 聽聽聽聽@SuppressWarnings("unchecked")聽聽
- 聽聽聽聽public聽static聽Map<String,聽String>聽parseXml(HttpServletRequest聽request)聽throws聽Exception聽{聽聽
- 聽聽聽聽聽聽聽聽//聽灏嗚В鏋愮粨鏋滃瓨鍌ㄥ湪HashMap涓?/span>聽聽
- 聽聽聽聽聽聽聽聽Map<String,聽String>聽map聽=聽new聽HashMap<String,聽String>();聽聽
- 聽聽
- 聽聽聽聽聽聽聽聽//聽浠巖equest涓彇寰楄緭鍏ユ祦聽聽
- 聽聽聽聽聽聽聽聽InputStream聽inputStream聽=聽request.getInputStream();聽聽
- 聽聽聽聽聽聽聽聽//聽璇诲彇杈撳叆娴?/span>聽聽
- 聽聽聽聽聽聽聽聽SAXReader聽reader聽=聽new聽SAXReader();聽聽
- 聽聽聽聽聽聽聽聽Document聽document聽=聽reader.read(inputStream);聽聽
- 聽聽聽聽聽聽聽聽//聽寰楀埌xml鏍瑰厓绱?/span>聽聽
- 聽聽聽聽聽聽聽聽Element聽root聽=聽document.getRootElement();聽聽
- 聽聽聽聽聽聽聽聽//聽寰楀埌鏍瑰厓绱犵殑鎵€鏈夊瓙鑺傜偣聽聽
- 聽聽聽聽聽聽聽聽List<Element>聽elementList聽=聽root.elements();聽聽
- 聽聽
- 聽聽聽聽聽聽聽聽//聽閬嶅巻鎵€鏈夊瓙鑺傜偣聽聽
- 聽聽聽聽聽聽聽聽for聽(Element聽e聽:聽elementList)聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽map.put(e.getName(),聽e.getText());聽聽
- 聽聽
- 聽聽聽聽聽聽聽聽//聽閲婃斁璧勬簮聽聽
- 聽聽聽聽聽聽聽聽inputStream.close();聽聽
- 聽聽聽聽聽聽聽聽inputStream聽=聽null;聽聽
- 聽聽
- 聽聽聽聽聽聽聽聽return聽map;聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽/**聽
- 聽聽聽聽聽*聽鏂囨湰娑堟伅瀵硅薄杞崲鎴恱ml聽
- 聽聽聽聽聽*聽聽
- 聽聽聽聽聽*聽@param聽textMessage聽鏂囨湰娑堟伅瀵硅薄聽
- 聽聽聽聽聽*聽@return聽xml聽
- 聽聽聽聽聽*/聽聽
- 聽聽聽聽public聽static聽String聽textMessageToXml(TextMessage聽textMessage)聽{聽聽
- 聽聽聽聽聽聽聽聽xstream.alias("xml",聽textMessage.getClass());聽聽
- 聽聽聽聽聽聽聽聽return聽xstream.toXML(textMessage);聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽/**聽
- 聽聽聽聽聽*聽闊充箰娑堟伅瀵硅薄杞崲鎴恱ml聽
- 聽聽聽聽聽*聽聽
- 聽聽聽聽聽*聽@param聽musicMessage聽闊充箰娑堟伅瀵硅薄聽
- 聽聽聽聽聽*聽@return聽xml聽
- 聽聽聽聽聽*/聽聽
- 聽聽聽聽public聽static聽String聽musicMessageToXml(MusicMessage聽musicMessage)聽{聽聽
- 聽聽聽聽聽聽聽聽xstream.alias("xml",聽musicMessage.getClass());聽聽
- 聽聽聽聽聽聽聽聽return聽xstream.toXML(musicMessage);聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽/**聽
- 聽聽聽聽聽*聽鍥炬枃娑堟伅瀵硅薄杞崲鎴恱ml聽
- 聽聽聽聽聽*聽聽
- 聽聽聽聽聽*聽@param聽newsMessage聽鍥炬枃娑堟伅瀵硅薄聽
- 聽聽聽聽聽*聽@return聽xml聽
- 聽聽聽聽聽*/聽聽
- 聽聽聽聽public聽static聽String聽newsMessageToXml(NewsMessage聽newsMessage)聽{聽聽
- 聽聽聽聽聽聽聽聽xstream.alias("xml",聽newsMessage.getClass());聽聽
- 聽聽聽聽聽聽聽聽xstream.alias("item",聽new聽Article().getClass());聽聽
- 聽聽聽聽聽聽聽聽return聽xstream.toXML(newsMessage);聽聽
- 聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽/**聽
- 聽聽聽聽聽*聽鎵╁睍xstream锛屼娇鍏舵敮鎸丆DATA鍧?/span>聽
- 聽聽聽聽聽*聽聽
- 聽聽聽聽聽*聽@date聽2013-05-19聽
- 聽聽聽聽聽*/聽聽
- 聽聽聽聽private聽static聽XStream聽xstream聽=聽new聽XStream(new聽XppDriver()聽{聽聽
- 聽聽聽聽聽聽聽聽public聽HierarchicalStreamWriter聽createWriter(Writer聽out)聽{聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽return聽new聽PrettyPrintWriter(out)聽{聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽//聽瀵规墍鏈墄ml鑺傜偣鐨勮浆鎹㈤兘澧炲姞CDATA鏍囪聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽boolean聽cdata聽=聽true;聽聽
- 聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽@SuppressWarnings("unchecked")聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽public聽void聽startNode(String聽name,聽Class聽clazz)聽{聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽super.startNode(name,聽clazz);聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽聽
- 聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽protected聽void聽writeText(QuickWriter聽writer,聽String聽text)聽{聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if聽(cdata)聽{聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽writer.write("<![CDATA[");聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽writer.write(text);聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽writer.write("]]>");聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽else聽{聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽writer.write(text);聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽聽
- 聽聽聽聽聽聽聽聽聽聽聽聽};聽聽
- 聽聽聽聽聽聽聽聽}聽聽
- 聽聽聽聽});聽聽
- }聽聽
OK锛屽埌杩欓噷鍏充簬娑堟伅鍙婃秷鎭鐞嗗伐鍏风殑灏佽灏辫鍒拌繖閲岋紝鍏跺疄灏辨槸瀵硅姹傛秷鎭?鍝嶅簲娑堟伅寤虹珛浜嗕笌涔嬪搴旂殑Java绫汇€佸xml娑堟伅杩涜瑙f瀽銆佸皢鍝嶅簲娑堟伅鐨凧ava瀵硅薄杞崲鎴恱ml銆備笅涓€绡囪浼氫粙缁嶅浣曞埄鐢ㄤ笂闈㈠皝瑁呭ソ鐨勫伐鍏疯瘑鍒敤鎴峰彂閫佺殑娑堟伅绫诲瀷锛屽苟鍋氬嚭姝g‘鐨勫搷搴斻€?/p>