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

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

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

    JAVA中DWR開發項目實戰經驗

    Posted on 2006-09-12 14:17 java^_^梟龍 閱讀(2158) 評論(1)  編輯  收藏

    自己在公司網站開發總用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" "<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;
    }

    Feedback

    # re: JAVA中DWR開發項目實戰經驗  回復  更多評論   

    2006-09-12 17:32 by fengzl
    DWR簡單好用,不過對javsscript要求較高,在稍微復雜的應用中如果你水平夠完全可以用javascript實現一個客戶端mvc,比較節省代碼~~

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

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

    Copyright © java^_^梟龍

    主站蜘蛛池模板: 在线a亚洲v天堂网2018| 成年美女黄网站色大免费视频| 国产午夜精品久久久久免费视| 久久aⅴ免费观看| 在线观看视频免费完整版| 免费视频淫片aa毛片| 亚洲乱亚洲乱少妇无码| 亚洲国产AV无码专区亚洲AV| 亚洲嫩草影院在线观看| 国产精品亚洲专区无码WEB | 久久亚洲精品成人AV| 天天爽亚洲中文字幕| 美女18一级毛片免费看| 免费看黄的成人APP| 在线观看的免费网站| 亚洲第一页日韩专区| 美女黄频视频大全免费的| 国内成人精品亚洲日本语音| a高清免费毛片久久| 1000部拍拍拍18勿入免费视频下载 | 亚洲天堂中文字幕| 亚洲色偷偷综合亚洲av78| 亚洲黄片手机免费观看| 四虎成年永久免费网站| 日本中文一区二区三区亚洲| 亚洲最新视频在线观看| 亚洲AV无码片一区二区三区| 在线观看特色大片免费网站| 我想看一级毛片免费的| 国产亚洲真人做受在线观看| 久久国产亚洲精品| 国产在线观看免费av站| 天天操夜夜操免费视频| 亚洲成a人片在线观看无码| 亚洲AV无码无限在线观看不卡| 成av免费大片黄在线观看| 成人性生交大片免费看午夜a| 亚洲日本乱码在线观看| 亚洲国产午夜精品理论片在线播放 | 四虎影视在线影院在线观看免费视频 | 亚洲视频在线免费播放|