本站首页    管理页面    写新日志    退出


«November 2025»
1
2345678
9101112131415
16171819202122
23242526272829
30


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7647808
建立时间:2006年5月29日




[DWR(Ajax)]JAVA中DWR开发项目实战经验
软件技术

lhwork 发表于 2006/9/13 14:12:41

自己在公司网站开发总用DWR开发的一个简单聊天本人也是在网站开发地图时有到了这个技术,刚学习DWR半个月就把随手写的一个简单聊天来给大家共享,切磋一下。由于考虑到某些局部原因,只发表了一些重要技术方面的资料,没有把全部东西共享。请个人体谅。由于DWR2.0有个Bug ,我用的DWR1.0,但是,它必须用JDK1.4dwr.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;}


阅读全文(4354) | 回复(1) | 编辑 | 精华
 


回复:JAVA中DWR开发项目实战经验
软件技术

初学者(游客)发表评论于2006/10/8 10:12:04

这个是wap开发的吧?好像没有太复杂的功能,实时性应该不是很强。


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.922 second(s), page refreshed 144794785 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号