亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? webserver.java

?? 非常棒的java數據庫
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/*
 * Copyright 2004-2008 H2 Group. Licensed under the H2 License, Version 1.0
 * (http://h2database.com/html/license.html).
 * Initial Developer: H2 Group
 */
package org.h2.server.web;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Locale;
import java.util.Properties;
import java.util.Set;
import java.util.TimeZone;

import org.h2.api.DatabaseEventListener;
import org.h2.constant.SysProperties;
import org.h2.engine.Constants;
import org.h2.message.TraceSystem;
import org.h2.server.Service;
import org.h2.server.ShutdownHandler;
import org.h2.util.ByteUtils;
import org.h2.util.FileUtils;
import org.h2.util.JdbcUtils;
import org.h2.util.MathUtils;
import org.h2.util.NetUtils;
import org.h2.util.RandomUtils;
import org.h2.util.Resources;
import org.h2.util.SortedProperties;

/**
 * The web server is a simple standalone HTTP server that implements the H2
 * Console application. It is not optimized for performance.
 */
public class WebServer implements Service {

    private static final String DEFAULT_LANGUAGE = "en";

    private static final String[][] LANGUAGES = {
        { "de", "Deutsch" },
        { "en", "English" },
        { "es", "Espa\u00f1ol" },
        { "fr", "Fran\u00e7ais" },
        { "hu", "Magyar"},
        { "in", "Indonesia"},
        { "it", "Italiano"},
        { "ja", "\u65e5\u672c\u8a9e"},
        { "nl", "Nederlands"},
        { "pl", "Polski"},
        { "pt_BR", "Portugu\u00eas (Brasil)"},
        { "pt_PT", "Portugu\u00eas (Europeu)"},
        { "ru", "\u0440\u0443\u0441\u0441\u043a\u0438\u0439"},
        { "tr", "T\u00fcrk\u00e7e"},
        { "uk", "\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430"},
        { "zh_CN", "\u4E2D\u6587"},
    };

    private static final String[] GENERIC = new String[] {
        "Generic JNDI Data Source|javax.naming.InitialContext|java:comp/env/jdbc/Test|sa",
        "Generic Firebird Server|org.firebirdsql.jdbc.FBDriver|jdbc:firebirdsql:localhost:c:/temp/firebird/test|sysdba",
        "Generic OneDollarDB|in.co.daffodil.db.jdbc.DaffodilDBDriver|jdbc:daffodilDB_embedded:school;path=C:/temp;create=true|sa",
        "Generic DB2|COM.ibm.db2.jdbc.net.DB2Driver|jdbc:db2://<host>/<db>|" ,
        "Generic Oracle|oracle.jdbc.driver.OracleDriver|jdbc:oracle:thin:@<host>:1521:<instance>|scott" ,
        "Generic MS SQL Server 2000|com.microsoft.jdbc.sqlserver.SQLServerDriver|jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=sqlexpress|sa",
        "Generic MS SQL Server 2005|com.microsoft.sqlserver.jdbc.SQLServerDriver|jdbc:sqlserver://localhost;DatabaseName=test|sa",
        "Generic PostgreSQL|org.postgresql.Driver|jdbc:postgresql:<db>|" ,
        "Generic MySQL|com.mysql.jdbc.Driver|jdbc:mysql://<host>:<port>/<db>|" ,
        "Generic Derby (Server)|org.apache.derby.jdbc.ClientDriver|jdbc:derby://localhost:1527/test;create=true|sa",
        "Generic Derby (Embedded)|org.apache.derby.jdbc.EmbeddedDriver|jdbc:derby:test;create=true|sa",
        "Generic HSQLDB|org.hsqldb.jdbcDriver|jdbc:hsqldb:test;hsqldb.default_table_type=cached|sa" ,
        // this will be listed on top for new installations
        "Generic H2|org.h2.Driver|jdbc:h2:~/test|sa",
    };

    /*
    String[] list = Locale.getISOLanguages();
    for(int i=0; i<list.length; i++) System.out.print(list[i] + " ");
    String lang = new java.util.Locale("hu").
            getDisplayLanguage(new java.util.Locale("hu"));
        java.util.Locale.CHINESE.getDisplayLanguage(
        java.util.Locale.CHINESE);
       for(int i=0; i<lang.length(); i++)
         System.out.println(Integer.toHexString(lang.charAt(i))+" ");
     */

    // private URLClassLoader urlClassLoader;
    private String driverList;
    private static int ticker;
    private int port;
    private boolean allowOthers;
    private Set running = Collections.synchronizedSet(new HashSet());
    private boolean ssl;
    private HashMap connInfoMap = new HashMap();

    private static final long SESSION_TIMEOUT = 30 * 60 * 1000; // timeout is 30 min
    private long lastTimeoutCheck;
    private HashMap sessions = new HashMap();
    private HashSet languages = new HashSet();
    private String startDateTime;
    private ServerSocket serverSocket;
    private String url;
    private ShutdownHandler shutdownHandler;
    private Thread listenerThread;
    private boolean ifExists;
    private boolean allowScript;

    byte[] getFile(String file) throws IOException {
        trace("getFile <" + file + ">");
        byte[] data = Resources.get("/org/h2/server/web/res/" + file);
        if (data == null) {
            trace(" null");
        } else {
            trace(" size=" + data.length);
        }
        return data;
    }

    String getTextFile(String file) throws IOException {
        byte[] bytes = getFile(file);
        return new String(bytes);
    }

    synchronized void remove(WebThread t) {
        running.remove(t);
    }

    private String generateSessionId() {
        byte[] buff = RandomUtils.getSecureBytes(16);
        return ByteUtils.convertBytesToString(buff);
    }

    WebSession getSession(String sessionId) {
        long now = System.currentTimeMillis();
        if (lastTimeoutCheck + SESSION_TIMEOUT < now) {
            Object[] list = sessions.keySet().toArray();
            for (int i = 0; i < list.length; i++) {
                String id = (String) list[i];
                WebSession session = (WebSession) sessions.get(id);
                Long last = (Long) session.get("lastAccess");
                if (last != null && last.longValue() + SESSION_TIMEOUT < now) {
                    trace("timeout for " + id);
                    sessions.remove(id);
                }
            }
            lastTimeoutCheck = now;
        }
        WebSession session = (WebSession) sessions.get(sessionId);
        if (session != null) {
            session.lastAccess = System.currentTimeMillis();
        }
        return session;
    }

    WebSession createNewSession(String hostAddr) {
        String newId;
        do {
            newId = generateSessionId();
        } while(sessions.get(newId) != null);
        WebSession session = new WebSession(this);
        session.put("sessionId", newId);
        session.put("ip", hostAddr);
        session.put("language", DEFAULT_LANGUAGE);
        sessions.put(newId, session);
        // always read the english translation, 
        // to that untranslated text appears at least in english
        readTranslations(session, DEFAULT_LANGUAGE);
        return getSession(newId);
    }

    String getStartDateTime() {
        return startDateTime;
    }

    public void init(String[] args) throws Exception {
        // TODO web: support using a different properties file
        Properties prop = loadProperties();
        driverList = prop.getProperty("drivers");
        port = FileUtils.getIntProperty(prop, "webPort", Constants.DEFAULT_HTTP_PORT);
        ssl = FileUtils.getBooleanProperty(prop, "webSSL", Constants.DEFAULT_HTTP_SSL);
        allowOthers = FileUtils.getBooleanProperty(prop, "webAllowOthers", Constants.DEFAULT_HTTP_ALLOW_OTHERS);
        for (int i = 0; args != null && i < args.length; i++) {
            String a = args[i];
            if ("-webPort".equals(a)) {
                port = MathUtils.decodeInt(args[++i]);
            } else if ("-webSSL".equals(a)) {
                ssl = Boolean.valueOf(args[++i]).booleanValue();
            } else if ("-webAllowOthers".equals(a)) {
                allowOthers = Boolean.valueOf(args[++i]).booleanValue();
            } else if ("-webScript".equals(a)) {
                allowScript = Boolean.valueOf(args[++i]).booleanValue();
            } else if ("-baseDir".equals(a)) {
                String baseDir = args[++i];
                SysProperties.setBaseDir(baseDir);
            } else if ("-ifExists".equals(a)) {
                ifExists = Boolean.valueOf(args[++i]).booleanValue();
            }
        }
//            if(driverList != null) {
//                try {
//                    String[] drivers = 
//                        StringUtils.arraySplit(driverList, ',', false);
//                    URL[] urls = new URL[drivers.length];
//                    for(int i=0; i<drivers.length; i++) {
//                        urls[i] = new URL(drivers[i]);
//                    }
//                    urlClassLoader = URLClassLoader.newInstance(urls);
//                } catch (MalformedURLException e) {
//                    TraceSystem.traceThrowable(e);
//                }
//            }
        SimpleDateFormat format = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss z", new Locale("en", ""));
        synchronized (format) {
            format.setTimeZone(TimeZone.getTimeZone("GMT"));
            startDateTime = format.format(new Date());
        }
        trace(startDateTime);
        for (int i = 0; i < LANGUAGES.length; i++) {
            languages.add(LANGUAGES[i][0]);
        }
        url = (ssl ? "https" : "http") + "://" + NetUtils.getLocalAddress() + ":" + port;
    }

    public String getURL() {
        return url;
    }

    public void start() throws SQLException {
        serverSocket = NetUtils.createServerSocket(port, ssl);
    }

    public void listen() {
        this.listenerThread = Thread.currentThread();
        try {
            while (serverSocket != null) {
                Socket s = serverSocket.accept();
                WebThread c = new WebThread(s, this);
                running.add(c);
                c.start();
            }
        } catch (Exception e) {
            trace(e.toString());
        }
    }

    public boolean isRunning() {
        if (serverSocket == null) {
            return false;
        }
        try {
            Socket s = NetUtils.createLoopbackSocket(port, ssl);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本午夜精品视频在线观看| 不卡av免费在线观看| 国产成人免费在线| 欧美亚洲动漫另类| www国产精品av| 日本不卡一二三区黄网| 91小视频免费观看| 久久精品一二三| 偷拍一区二区三区四区| 91丨九色丨蝌蚪富婆spa| 精品国内二区三区| 石原莉奈在线亚洲二区| 91免费看片在线观看| 国产欧美一区二区精品忘忧草 | 亚洲综合丁香婷婷六月香| 看电影不卡的网站| 欧美色倩网站大全免费| 国产精品成人免费在线| 国产一区二区三区四| 日韩一区二区三区在线视频| 午夜精品一区二区三区电影天堂| av在线综合网| 国产精品人妖ts系列视频| 精品影院一区二区久久久| 欧美精品丝袜久久久中文字幕| 亚洲欧美成人一区二区三区| 成人午夜大片免费观看| 久久久久久久性| 精品一区二区在线看| 日韩欧美国产精品| 青青青爽久久午夜综合久久午夜| 欧美精品久久99久久在免费线 | 日韩免费一区二区| 日本女人一区二区三区| 欧美日韩中字一区| 午夜成人免费电影| 欧美一区二区在线免费观看| 日本不卡一区二区三区| 欧美另类久久久品| 青青草一区二区三区| 日韩三级视频在线观看| 精品一区二区三区免费观看| 久久综合国产精品| 国内精品免费**视频| 国产色综合一区| 99久久精品国产一区二区三区 | 亚洲成人av在线电影| 欧美日韩你懂得| 久久精品国产一区二区三| 久久天天做天天爱综合色| 国产精品一二三区在线| 综合久久久久久久| 欧美日韩精品一区视频| 久久99精品国产.久久久久 | 国产精品美女久久久久久久网站| www.在线欧美| 日韩国产精品91| 久久这里只有精品6| 波多野结衣精品在线| 亚洲午夜免费福利视频| 日韩一二三四区| 高清国产一区二区| 亚洲国产三级在线| 精品国产91亚洲一区二区三区婷婷| 高清不卡在线观看| 性欧美大战久久久久久久久| 久久亚洲一级片| 色婷婷亚洲婷婷| 狠狠网亚洲精品| 亚洲综合自拍偷拍| wwww国产精品欧美| 欧美色图12p| 国产福利不卡视频| 日韩福利视频网| 中文在线免费一区三区高中清不卡| 日本道色综合久久| 国模一区二区三区白浆| 亚洲综合成人在线视频| 久久久蜜臀国产一区二区| 欧美色窝79yyyycom| 国产精品影视天天线| 午夜欧美电影在线观看| 中文字幕第一区二区| 日韩片之四级片| 欧美日韩黄色一区二区| 成人综合日日夜夜| 日韩国产精品久久久久久亚洲| 国产精品久久久久久久第一福利 | 亚洲成人精品影院| 国产精品人成在线观看免费| 日韩一区二区三区电影在线观看| 97精品电影院| 岛国av在线一区| 久久99深爱久久99精品| 亚洲成人一二三| 亚洲美女偷拍久久| 欧美激情综合五月色丁香| 日韩视频一区二区三区 | 亚洲欧美区自拍先锋| 久久久无码精品亚洲日韩按摩| 欧美人狂配大交3d怪物一区| 91女神在线视频| 99久久久免费精品国产一区二区| 国产乱妇无码大片在线观看| 九九视频精品免费| 精品写真视频在线观看| 日本麻豆一区二区三区视频| 天天色综合天天| 天天综合天天做天天综合| 亚洲一区精品在线| 亚洲一区二区四区蜜桃| 亚洲精品国产无天堂网2021| 亚洲视频中文字幕| 亚洲精品乱码久久久久久黑人| 亚洲人成影院在线观看| 亚洲人成亚洲人成在线观看图片| 国产精品狼人久久影院观看方式| 国产香蕉久久精品综合网| 国产亚洲短视频| 国产精品情趣视频| 中文字幕在线免费不卡| 国产精品电影一区二区三区| 日韩一区有码在线| 一区二区欧美国产| 婷婷成人激情在线网| 美女视频黄 久久| 韩国毛片一区二区三区| 国产精品一二二区| 91网站黄www| 欧美另类高清zo欧美| 精品少妇一区二区三区视频免付费 | 成人高清在线视频| 亚洲五码中文字幕| 久久99精品久久久| 久久91精品国产91久久小草| 韩国欧美国产1区| 成人激情小说乱人伦| 91激情在线视频| 欧美精品一区二区三区四区| 91成人免费网站| 不卡的看片网站| 成人精品在线视频观看| 国产中文字幕一区| 精品一区二区免费看| 日韩专区中文字幕一区二区| 亚洲已满18点击进入久久| 亚洲欧美一区二区三区极速播放| 国产女主播视频一区二区| 亚洲精品一区二区三区在线观看| 欧美一区二区三区思思人| 欧美日韩国产在线观看| 欧美性色黄大片手机版| 欧美在线观看视频一区二区| 色综合久久久网| 欧美三区在线视频| 欧美日韩国产综合久久| 欧美日韩不卡一区二区| 911精品国产一区二区在线| 欧美人与禽zozo性伦| 91麻豆精品国产91久久久久| 67194成人在线观看| 日韩欧美中文一区| 亚洲精品一区在线观看| 国产精品私人自拍| 日韩毛片高清在线播放| 亚洲一级在线观看| 亚洲777理论| 久久国内精品视频| 国产激情视频一区二区三区欧美 | 久久久精品tv| 亚洲四区在线观看| 亚欧色一区w666天堂| 国产综合久久久久久鬼色 | 亚洲欧洲精品天堂一级| 18成人在线视频| 亚洲国产欧美在线| 极品少妇一区二区三区精品视频| 国产精品亚洲一区二区三区在线| 成人高清伦理免费影院在线观看| 99天天综合性| 91精品国产综合久久久久| 精品国产电影一区二区| 亚洲欧洲日产国产综合网| 日日夜夜一区二区| 成人精品小蝌蚪| 欧美肥胖老妇做爰| 亚洲三级小视频| 日本怡春院一区二区| 波多野结衣中文字幕一区| 欧美三级电影一区| 国产日韩欧美在线一区| 亚洲一二三专区| 国产福利91精品一区二区三区| 欧美系列亚洲系列| 2欧美一区二区三区在线观看视频| 欧美国产一区在线| 午夜久久福利影院| 99久久国产综合色|国产精品| 日韩一区二区视频在线观看| 国产精品不卡在线观看|