<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    自己在公司網(wǎng)站開(kāi)發(fā)總用DWR開(kāi)發(fā)的一個(gè)簡(jiǎn)單聊天
    本人也是在網(wǎng)站開(kāi)發(fā)地圖時(shí)有到了這個(gè)技術(shù),剛學(xué)習(xí)DWR半個(gè)月
    就把隨手寫的一個(gè)簡(jiǎn)單聊天來(lái)給大家共享,切磋一下。
    由于考慮到某些局部原因,只發(fā)表了一些重要技術(shù)方面的資料,沒(méi)有把全部東西共享。請(qǐng)個(gè)人體諒。
    由于DWR2.0有個(gè)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" "<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: 數(shù)字城市
    ?*Date?? : 2006-09-9
    ?**/
    ?
    public class DWRCityChar_Init
    {
    ?private static int now_ChatId=0;
    ?private static String InitSay="[公告^_^]:歡迎大家入住魅力城市^_^";
    ?private static String InitError="[公告^_^]:對(duì)不起!系統(tǒng)故障!我們會(huì)盡快解決!";
    ?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? : 魅力城市聊天發(fā)送
    ?*Author : JAVA^_^梟龍---孫德華
    ?*Project: 數(shù)字城市
    ?*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+"]說(shuō):"+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? : 魅力城市聊天發(fā)送
    ?*Author : JAVA^_^梟龍---孫德華
    ?*Project: 數(shù)字城市
    ?*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+"]說(shuō):"+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: 數(shù)字城市
    ?*Date?? : 2006-09-9
    ?**/
    var Send_state=0;//發(fā)送狀態(tài)
    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');//獲取聊天內(nèi)容
    ?if(typeof(obj)=='object')
    ?{
    ??Content=obj.value;
    ??if(Content!=null&&Content.length>400)
    ??{
    ???alert('對(duì)不起!你的聊天內(nèi)容過(guò)長(zhǎng),請(qǐng)你說(shuō)話要簡(jiǎn)練扼要!');
    ??}
    ?}else
    ?{
    ??Content=null;
    ??alert('程序內(nèi)部出現(xiàn)異常,抱歉!我們會(huì)盡快解決');
    ?}
    ?return Content;
    }
    function ChatSend()
    {
    ?var UserName="";
    ?var obj=document.getElementById('Chat_User_name');//獲取聊天內(nèi)容
    ?if(typeof(obj)=='object')
    ?{
    ??UserName=obj.value;
    ?}else
    ?{
    ??UserName==null;
    ??alert('程序內(nèi)部出現(xiàn)異常,抱歉!我們會(huì)盡快解決');
    ??return;
    ?}
    ?var Content=getChat_Content();
    ?if(Content==null||Content=='')
    ?{
    ??ShowAlert('請(qǐng)您輸入聊天內(nèi)容!');
    ??alert_time=setTimeout('ShowAlertCLose()',alert_showtime);
    ??alert('請(qǐng)您輸入聊天內(nèi)容!');
    ??return;
    ?}
    ?Chat_sendstop=setTimeout('ShowAlert()',Chat_sendTime);
    ?doChatSend(UserName,Content);
    ?var chatobj=document.getElementById('chat_input');
    ?chatobj.value='';
    ?chatobj.focus();
    ?
    ?
    }
    function doChatSend(UserName,Content)//聊天發(fā)送
    {
    ?Chat_sendStart=new Date();
    ?CityChatsend.Chat_send(UserName,Content,Chat_doResult);
    }
    function Chat_doResult(Return)//結(jié)果顯示
    {
    ?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('聊天提交時(shí),出現(xiàn)數(shù)據(jù)庫(kù)插入異常!抱歉!請(qǐng)你重新輸入');
    ?}else if(Send_state==-2)
    ?{
    ??alert('對(duì)不起!聊天系統(tǒng)出現(xiàn)異常,給你帶來(lái)不便。在此,我代表AAA國(guó)際向你表示抱歉……');
    ?}
    }
    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='數(shù)據(jù)加載中......';
    ?}
    ?}else
    ?{
    ??alert('程序內(nèi)部出現(xiàn)異常,抱歉!我們會(huì)盡快解決');
    ?}
    ?Chat_result=null;
    }
    function getChatContent(result)
    {
    ?Chat_result=result;
    }

    Feedback

    # re: JAVA中DWR開(kāi)發(fā)項(xiàng)目實(shí)戰(zhàn)經(jīng)驗(yàn)  回復(fù)  更多評(píng)論   

    2006-09-12 17:32 by fengzl
    DWR簡(jiǎn)單好用,不過(guò)對(duì)javsscript要求較高,在稍微復(fù)雜的應(yīng)用中如果你水平夠完全可以用javascript實(shí)現(xiàn)一個(gè)客戶端mvc,比較節(jié)省代碼~~

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    posts - 2, comments - 1, trackbacks - 0, articles - 0

    Copyright © java^_^梟龍

    主站蜘蛛池模板: 亚洲国产精品无码第一区二区三区| 亚洲视频在线观看地址| 自拍偷自拍亚洲精品偷一| 好先生在线观看免费播放| 91亚洲视频在线观看| 97视频免费在线| 亚洲午夜在线播放| 最近免费中文字幕4| 亚洲男同gay片| 亚洲AV成人潮喷综合网| 国产成人无码精品久久久免费 | 亚洲最新在线视频| 亚洲黄色免费网站| 亚洲国产精品一区二区三区在线观看| 老司机在线免费视频| 国产亚洲一卡2卡3卡4卡新区| 免费一级毛片在线观看| 99视频免费在线观看| 久久精品a亚洲国产v高清不卡 | 国产精品麻豆免费版| 免费观看四虎精品成人| 亚洲AV一宅男色影视| 成人免费视频网站www| 亚洲av综合av一区二区三区| 亚洲中文字幕丝袜制服一区| 久久黄色免费网站| 亚洲卡一卡二卡乱码新区| 亚洲av麻豆aⅴ无码电影| 在线播放免费人成毛片乱码| 亚洲欧洲日韩综合| 永久免费看mv网站入口| 丝袜捆绑调教视频免费区| 亚洲理论在线观看| 免费在线观看的黄色网址| 国产婷婷成人久久Av免费高清| 亚洲人成7777| 亚洲日本韩国在线| 国产成人精品免费视频大全麻豆| 国产亚洲综合久久| 亚洲色欲或者高潮影院| 九月婷婷亚洲综合在线|