⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cobrowse.java

📁 一个同步浏览的源码,还需要一些配置,需要的可以大家交流哟.
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi 

import com.coldjava.cosupport.CoRequest;
import java.io.*;
import java.net.URLEncoder;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class Cobrowse extends HttpServlet
{

    private static Object SessionIdLock = new Object();
    private static final int HOW_LONG = 6;
    private static final int MAX_MESSAGES = 50;
    private static final String VERSION = "ver. 1.35";
    private static final String CPR = "&copy;&nbsp;<a href=\"mailto:info@servletsuite.com\">Coldjava</a> 2000-2001 ";
    private static String NEWLINE = "\n";
    private static String separator = "/";
    private static final String ROLE = "rl";
    private static final String MASTER = "m";
    private static final String SLAVE = "s";
    private static final String NOROLE = "n";
    private static final String SESSIONNAME = "ssnm";
    private static final String USERNAME = "un";
    private static final String ACTION = "a";
    private static final String MAINMASTER = "mnmstr";
    private static final String SUBMASTER = "sbmstr";
    private static final String CONTROLMASTER = "cntrlmstr";
    private static final String MAINSLAVE = "mnslv";
    private static final String SUBSLAVE = "sbslv";
    private static final String CONTROLSLAVE = "cntrlslv";
    private static final String WORKFRAME = "wrkfrm";
    private static final String MAINCHAT = "mncht";
    private static final String INPUTCHAT = "nptcht";
    private static final String REFRESHCHAT = "rfrshcht";
    private static final String ID = "id";
    private static final String CLIENTS = "clnts";
    private static final String CURRENT = "crrnt";
    private static final String CREATED = "crtd";
    private static final String NEW = "nw";
    private static final String JOIN = "jn";
    private static final String CHAT = "cht";
    private static final String EXIT = "ext";
    private static final String URLNAME = "rlnm";
    private static final String EMPTY = "mpt";
    private static final String MESSAGE = "mssg";
    private static final String CHAT1 = "cht1";
    private static final String COUNT = "cnt";
    private static final String LOCK = "lck";
    private static final String OPENSITE = "pnst";
    private static final String GETSITE = "gtst";
    private static final String INFRAME = "nfrm";
    private static final String SUBFRAMES = "sbfrms";
    private static final String TITLE = "title";
    private static final String BGCOLOR = "bgcolor";
    private static final String BGCOLOR1 = "bgcolor1";
    private static final String BGCOLOR2 = "bgcolor2";
    private static final String FGCOLOR = "fgcolor";
    private static final String FGCOLOR1 = "fgcolor1";
    private static final String FGCOLOR2 = "fgcolor2";
    private static final String ENCODING = "encoding";
    private static final String PROXYHOST = "proxyhost";
    private static final String PROXYPORT = "proxyport";
    private static final String CHATWINDOW = "chatwindow";
    private static final String DHTML = "dhtml";
    private static final String DIR = "dir";
    private static final String INIT_OK = "initok";
    private static final String CONFIG = "config";
    private static final String FONT = "font";
    private static final String FACE = "face";
    private static final String SIZE = "size";
    private static final String HEAD = "head";
    private static final String DEFTITLE = "Coldjava's co-browsing";
    private static final String DEFBGCOLOR = "#FFFFFF";
    private static final String DEFBGCOLOR1 = "#FFFFF";
    private static final String DEFBGCOLOR2 = "#D3D3D3";
    private static final String DEFFGCOLOR = "#000000";
    private static final String DEFFGCOLOR1 = "#000000";
    private static final String DEFFGCOLOR2 = "#000000";
    private static final String DEFENCODING = "ISO-8859-1";
    private static final String DEFCHATWINDOW = "width=400,height=420,location=no,toolbar=no,menubar=no,scrollbars=yes,resize=yes";
    private static final String DEFDHTML = "1";
    private static final String DEFCHATUSER = "Owner";
    private static final String DEFUSER = "anonimous";
    private static final int CONTROLTIMEOUT = 10000;
    private static final int CHATTIMEOUT = 11000;
    private static Hashtable cnf;
    private static Hashtable browsers;
    private static Random rnd;

    public Cobrowse()
    {
    }

    private void addChatMessage(HttpSession httpsession, HttpServletRequest httpservletrequest, HttpServletResponse httpservletresponse)
        throws ServletException, IOException
    {
        String s = decodeString(httpservletrequest.getParameter("mssg"), httpservletrequest.getCharacterEncoding(), (String)cnf.get("encoding"));
        String s1 = (String)httpsession.getValue("ssnm");
        String s2 = (String)httpsession.getValue("un");
        s = prepareMsg(s);
        Hashtable hashtable;
        if(s.length() > 0 && s1 != null && (hashtable = (Hashtable)browsers.get(s1)) != null)
        {
            if(s2 == null)
                s2 = "Owner";
            synchronized(hashtable.get("lck"))
            {
                Long long1 = (Long)hashtable.get("cnt");
                long l = long1.longValue() + 1L;
                Vector vector = (Vector)hashtable.get("cht");
                if(vector.size() >= 100)
                {
                    vector.removeElementAt(0);
                    vector.removeElementAt(0);
                }
                vector.addElement(new Long(l));
                vector.addElement(s2 + ":" + s);
                hashtable.remove("cnt");
                hashtable.put("cnt", new Long(l));
            }
        }
        httpservletresponse.setContentType("text/html");
        PrintWriter printwriter = httpservletresponse.getWriter();
        printwriter.println("<html>");
        printwriter.println("<script language=\"JavaScript\">");
        printwriter.println("if (parent.inputchat.document.forms[0]) {");
        printwriter.println("parent.inputchat.document.forms[0].mssg.value='';");
        printwriter.println("parent.inputchat.document.forms[0].mssg.focus();}");
        printwriter.println("</script>");
        printwriter.println("</html>");
        printwriter.flush();
        printwriter.close();
    }

    private boolean checkPersistence(String s)
    {
        if(s == null)
            return false;
        File file;
        if((file = new File(s)) == null)
            return false;
        if(!file.isDirectory())
            return false;
        return file.canRead() && file.canWrite();
    }

    private void clearDirectory(String s)
    {
        try
        {
            File file = new File(s);
            String as[] = file.list();
            if(as != null)
            {
                for(int i = 0; i < as.length; i++)
                {
                    File file1 = new File(s, as[i]);
                    if(file1.isDirectory())
                        if(s.endsWith(separator))
                            clearDirectory(s + as[i]);
                        else
                            clearDirectory(s + separator + as[i]);
                    file1.delete();
                }

            }
        }
        catch(Exception _ex) { }
    }

    private void closeSession(HttpSession httpsession, HttpServletRequest httpservletrequest, HttpServletResponse httpservletresponse)
        throws ServletException, IOException
    {
        String s = (String)httpsession.getValue("rl");
        Hashtable hashtable;
        if(s != null)
            if(s.equals("m"))
            {
                if((s = (String)httpsession.getValue("ssnm")) != null)
                    browsers.remove(s);
            } else
            if(s.equals("s") && (s = (String)httpsession.getValue("ssnm")) != null && (hashtable = (Hashtable)browsers.get(s)) != null)
            {
                hashtable = (Hashtable)hashtable.get("clnts");
                hashtable.remove(httpsession.getId());
            }
        httpsession.invalidate();
        initScreen(httpservletrequest, httpservletresponse);
    }

    private String decode(String s)
    {
        StringBuffer stringbuffer = new StringBuffer(0);
        for(int i = 0; i < s.length(); i++)
        {
            char c = s.charAt(i);
            if(c == '+')
                stringbuffer.append(' ');
            else
            if(c == '%')
            {
                char c1 = '\0';
                for(int j = 0; j < 2; j++)
                {
                    c1 *= '\020';
                    c = s.charAt(++i);
                    if(c >= '0' && c <= '9')
                    {
                        c1 += c - 48;
                        continue;
                    }
                    if((c < 'A' || c > 'F') && (c < 'a' || c > 'f'))
                        break;
                    switch(c)
                    {
                    case 65: // 'A'
                    case 97: // 'a'
                        c1 += '\n';
                        break;

                    case 66: // 'B'
                    case 98: // 'b'
                        c1 += '\013';
                        break;

                    case 67: // 'C'
                    case 99: // 'c'
                        c1 += '\f';
                        break;

                    case 68: // 'D'
                    case 100: // 'd'
                        c1 += '\r';
                        break;

                    case 69: // 'E'
                    case 101: // 'e'
                        c1 += '\016';
                        break;

                    case 70: // 'F'
                    case 102: // 'f'
                        c1 += '\017';
                        break;
                    }
                }

                stringbuffer.append(c1);
            } else
            {
                stringbuffer.append(c);
            }
        }

        return stringbuffer.toString();
    }

    private String decodeString(String s, String s1, String s2)
    {
        String s3;
        try
        {
            s3 = new String(s.getBytes(s1 != null ? s1 : "ISO-8859-1"), s2);
        }
        catch(Exception _ex)
        {
            s3 = s;
        }
        return s3;
    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -