JAVA中DWR开发项目实战经验
2010-02-04 09:36
549 查看
自己在公司网站开发总用DWR开发的一个简单聊天 本人也是在网站开发地图时有到了这个技术,刚学习DWR半个月 就把随手写的一个简单聊天来给大家共享,切磋一下。 由于考虑到某些局部原因,只发表了一些重要技术方面的资料,没有把全部东西共享。请个人体谅。 由于DWR2.0有个Bug ,我用的DWR1.0,但是,它必须用JDK1.4 dwr.xml文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd"> <dwr> <init></init> <allow> <create creator="new" javascript="CityChatsend" scope="session"> <param name="class" value="com.aaa.CharChat.DWR.DWRCityChar_send"/> <include method="Chat_send"/> </create> <create creator="new" javascript="CityChatRead" scope="session"> <param name="class" value="com.aaa.CharChat.DWR.DWRCityChar_Read"/> <include method="ChatRead"/> </create> <create creator="new" javascript="CityChatInit" scope="application"> <param name="class" value="com.aaa.CharChat.DWR.DWRCityChar_Init"/> <include method="getNew_Old"/> <include method="setNew_Old"/> </create> </allow> </dwr> DWRCityChar_send JAVA文件 package com.aaa.CharChat.DWR; import java.sql.*; import java.util.*; import com.db.DatabaseConnection; import com.aaa.CharChat.initSQL.CityChart_InitSQL; import java.util.Date; import java.text.SimpleDateFormat; /** *Title : 魅力城市聊天保存初始变量 *Author : JAVA^_^枭龙---孙德华 *Project: 数字城市 *Date : 2006-09-9 **/ public class DWRCityChar_Init { private static int now_ChatId=0; private static String InitSay="[公告^_^]:欢迎大家入住魅力城市^_^"; private static String InitError="[公告^_^]:对不起!系统故障!我们会尽快解决!"; private static String New_Old="0"; public static String getInitError() { return InitError; } public static String getNew_Old() { return New_Old; } public static void setNew_Old() { New_Old="0"; } public static synchronized void setInitSay(String Say) { InitSay=Say; } public static synchronized int getnow_ChatId() { if(now_ChatId==0) { int temp_ID=getRenow_ChatId(); if(temp_ID>0) { setnow_ChatId(temp_ID); }else { startnewChat(); } } New_Old="1";//加载聊天记录 return now_ChatId; } public static synchronized void setnow_ChatId(int ChatId) { now_ChatId=ChatId; } public static synchronized void startnewChat() { Connection conn=null; PreparedStatement prepare=null; try { conn=DatabaseConnection.getConnection(); prepare=conn.prepareStatement(CityChart_InitSQL.getinsertnewChat()); Date online=new Date(); SimpleDateFormat fo=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String riqi=fo.format(online); prepare.setString(1,riqi); prepare.setString(2,InitSay); int result=prepare.executeUpdate(); if(result>0) { setnow_ChatId(result); } else { startnewChat(); } prepare.close(); conn.close(); }catch(Exception we) { System.out.println(we.getMessage()); }finally { try { if(!conn.isClosed()) { prepare.close(); conn.close(); } } catch(Exception ew) { } } } public static int getRenow_ChatId() { Connection conn=null; PreparedStatement prepare=null; ResultSet result=null; int Return=0; try { conn=DatabaseConnection.getConnection(); prepare=conn.prepareStatement(CityChart_InitSQL.getselectnewChatId()); result=prepare.executeQuery(); if(result.next()) { Return=result.getInt("Id"); } result.close(); prepare.close(); conn.close(); }catch(Exception we) { Return=-1; System.out.println(we.getMessage()); }finally { try { if(!conn.isClosed()) { prepare.close(); conn.close(); } } catch(Exception ew) { } } return Return; } } DWRCityChar_send JAVA文件 package com.aaa.CharChat.DWR; import java.sql.*; import java.util.*; import com.db.DatabaseConnection; import com.aaa.CharChat.DWR.DWRCityChar_Init; import com.aaa.CharChat.initSQL.CityChart_InitSQL; /** *Title : 魅力城市聊天发送 *Author : JAVA^_^枭龙---孙德华 *Project: 数字城市 *Date : 2006-9-9 **/ public class DWRCityChar_send { public int Chat_send(String User_name,String Content) { int Return=0; try { String result="["+User_name+"]说:"+Content; int nowId=DWRCityChar_Init.getnow_ChatId(); if(nowId>0) { Return=dosend(nowId,result); }else { Return=-2; } }catch(Exception we) { } return Return; } public int dosend(int nowId,String result) { Connection conn=null; PreparedStatement prepare=null; PreparedStatement prepare1=null; ResultSet resu=null; String Content=""; int Return=0; try { conn=DatabaseConnection.getConnection(); prepare=conn.prepareStatement(CityChart_InitSQL.getselectChatbyId()); prepare1=conn.prepareStatement(CityChart_InitSQL.getupdateChatbyId()); prepare.setInt(1,nowId); resu=prepare.executeQuery(); if(resu.next()) { Content=resu.getString("Content"); } resu.close(); prepare.close(); if(Content.length()>4000) { DWRCityChar_Init.startnewChat(); nowId=DWRCityChar_Init.getnow_ChatId(); } Content=result+"/n"+Content; prepare1.setString(1,Content); prepare1.setInt(2,nowId); Return=prepare1.executeUpdate(); prepare1.close(); conn.close(); }catch(Exception we) { Return=-1; System.out.println(we.getMessage()); }finally { try { if(!conn.isClosed()) { prepare.close(); prepare1.close(); conn.close(); } } catch(Exception ew) { } } return Return; } } DWRCityChar_Read java文件 package com.aaa.CharChat.DWR; import java.sql.*; import java.util.*; import com.db.DatabaseConnection; import com.aaa.CharChat.DWR.DWRCityChar_Init; import com.aaa.CharChat.initSQL.CityChart_InitSQL; /** *Title : 魅力城市聊天发送 *Author : JAVA^_^枭龙---孙德华 *Project: 数字城市 *Date : 2006-9-9 **/ public class DWRCityChar_send { public int Chat_send(String User_name,String Content) { int Return=0; try { String result="["+User_name+"]说:"+Content; int nowId=DWRCityChar_Init.getnow_ChatId(); if(nowId>0) { Return=dosend(nowId,result); }else { Return=-2; } }catch(Exception we) { } return Return; } public int dosend(int nowId,String result) { Connection conn=null; PreparedStatement prepare=null; PreparedStatement prepare1=null; ResultSet resu=null; String Content=""; int Return=0; try { conn=DatabaseConnection.getConnection(); prepare=conn.prepareStatement(CityChart_InitSQL.getselectChatbyId()); prepare1=conn.prepareStatement(CityChart_InitSQL.getupdateChatbyId()); prepare.setInt(1,nowId); resu=prepare.executeQuery(); if(resu.next()) { Content=resu.getString("Content"); } resu.close(); prepare.close(); if(Content.length()>4000) { DWRCityChar_Init.startnewChat(); nowId=DWRCityChar_Init.getnow_ChatId(); } Content=result+"/n"+Content; prepare1.setString(1,Content); prepare1.setInt(2,nowId); Return=prepare1.executeUpdate(); prepare1.close(); conn.close(); }catch(Exception we) { Return=-1; System.out.println(we.getMessage()); }finally { try { if(!conn.isClosed()) { prepare.close(); prepare1.close(); conn.close(); } } catch(Exception ew) { } } return Return; } } 用到的JAVASCRIPT JS文件 /** *Title : 魅力城市聊天 *Author : JAVA^_^枭龙---孙德华 *Project: 数字城市 *Date : 2006-09-9 **/ var Send_state=0;//发送状态 var Chat_sendTime=500; var Chat_sendStart; var Chat_sendEnd; var Chat_sendstop; var Chat_result; var Chat_startWrite; var Chat_InitStart; var Chat_Readtime=500; function Chathotsend() { if(event.keyCode==10) { ChatSend(); } } function getChat_Content() { var Content=null; var obj=document.getElementById('chat_input');//获取聊天内容 if(typeof(obj)=='object') { Content=obj.value; if(Content!=null&&Content.length>400) { alert('对不起!你的聊天内容过长,请你说话要简练扼要!'); } }else { Content=null; alert('程序内部出现异常,抱歉!我们会尽快解决'); } return Content; } function ChatSend() { var UserName=""; var obj=document.getElementById('Chat_User_name');//获取聊天内容 if(typeof(obj)=='object') { UserName=obj.value; }else { UserName==null; alert('程序内部出现异常,抱歉!我们会尽快解决'); return; } var Content=getChat_Content(); if(Content==null||Content=='') { ShowAlert('请您输入聊天内容!'); alert_time=setTimeout('ShowAlertCLose()',alert_showtime); alert('请您输入聊天内容!'); return; } Chat_sendstop=setTimeout('ShowAlert()',Chat_sendTime); doChatSend(UserName,Content); var chatobj=document.getElementById('chat_input'); chatobj.value=''; chatobj.focus(); } function doChatSend(UserName,Content)//聊天发送 { Chat_sendStart=new Date(); CityChatsend.Chat_send(UserName,Content,Chat_doResult); } function Chat_doResult(Return)//结果显示 { Send_state=Return; Chat_sendEnd=new Date(); var temp=Chat_sendEnd-Chat_sendStart; if(temp>50) { Chat_sendTime=temp; } } function ShowAlert() { clearTimeout(Chat_sendstop); if(Send_state==-1) { alert('聊天提交时,出现数据库插入异常!抱歉!请你重新输入'); }else if(Send_state==-2) { alert('对不起!聊天系统出现异常,给你带来不便。在此,我代表AAA国际向你表示抱歉……'); } } function ChatInit() { setInterval('ChatRead()',Chat_Readtime); } function ChatRead() { var chat_updiv=document.getElementById('chat_input_updiv'); if(chat_updiv.style.display=='') { CityChatRead.ChatRead(getChatContent); Chat_startWrite=setTimeout('WriteChatContent()',1000); } } function WriteChatContent() { clearTimeout(Chat_startWrite); var obj=document.getElementById('chat_content'); if(typeof(obj)=='object') { if(Chat_result!=null&&Chat_result!='') { obj.value=Chat_result; }else { obj.value='数据加载中......'; } }else { alert('程序内部出现异常,抱歉!我们会尽快解决'); } Chat_result=null; } function getChatContent(result) { Chat_result=result; } |
相关文章推荐
- JAVA中DWR开发项目实战经验(转载)
- JAVA中DWR开发项目简单聊天实战经验
- 【java项目实战】一步步教你使用MyEclipse搭建java Web项目开发环境(一)
- 【java项目实战】一步步教你使用MyEclipse搭建java Web项目开发环境(一)
- java项目实战,企业级电商开发部署,支付宝线上部署ssm
- 企业级java开发与架构,大型分布式综合项目实战,高并发解决方案
- java项目开发经验总结
- 这是孔浩老师录制的java全套系列视频教程,从javase基础到javaweb,在到j2ee框架,最后到项目实战开发,非常适合想自学java开发的朋友。
- Java Web项目开发项目经验总结
- Java Web项目开发项目经验总结
- 【java项目实战】一步步教你使用MyEclipse搭建java Web项目开发环境(一)
- 第十篇:ndk项目实战之Androidstudio开发经验总结
- 【java项目实战】一步步教你使用MyEclipse搭建java Web项目开发环境(一)
- java项目开发经验总结,值得收藏!绝对有用!
- java项目开发实践经验之二:几种常见数据库连接池的使用比较
- java项目开发经验总结,值得收藏!绝对有用!
- Java Web项目开发项目经验总结
- Java Web项目开发项目经验总结
- 解决新建的Android项目gen目录下没有R.java文件--Android开发经验
- 2017.7.1 慕课网-Java从零打造企业级电商项目实战:2用户模块设计与开发