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

📄 urlresource.java

📁 jetty SERVER連接資料庫用的軟體
💻 JAVA
字号:
// ========================================================================// Copyright 1996-2005 Mort Bay Consulting Pty. Ltd.// ------------------------------------------------------------------------// Licensed under the Apache License, Version 2.0 (the "License");// you may not use this file except in compliance with the License.// You may obtain a copy of the License at // http://www.apache.org/licenses/LICENSE-2.0// Unless required by applicable law or agreed to in writing, software// distributed under the License is distributed on an "AS IS" BASIS,// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.// See the License for the specific language governing permissions and// limitations under the License.// ========================================================================package org.mortbay.resource;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;import java.security.Permission;import org.mortbay.log.Log;import org.mortbay.util.URIUtil;/* ------------------------------------------------------------ *//** Abstract resource class. * * @author Nuno Pregui�a * @author Greg Wilkins (gregw) */public class URLResource extends Resource{        protected URL _url;    protected String _urlString;    protected transient URLConnection _connection;    protected transient InputStream _in=null;    transient boolean _useCaches = Resource.__defaultUseCaches;        /* ------------------------------------------------------------ */    protected URLResource(URL url, URLConnection connection)    {        _url = url;        _urlString=_url.toString();        _connection=connection;    }        protected URLResource (URL url, URLConnection connection, boolean useCaches)    {        this (url, connection);        _useCaches = useCaches;    }    /* ------------------------------------------------------------ */    protected synchronized boolean checkConnection()    {        if (_connection==null)        {            try{                _connection=_url.openConnection();                _connection.setUseCaches(_useCaches);            }            catch(IOException e)            {                Log.ignore(e);            }        }        return _connection!=null;    }    /* ------------------------------------------------------------ */    /** Release any resources held by the resource.     */    public synchronized void release()    {        if (_in!=null)        {            try{_in.close();}catch(IOException e){Log.ignore(e);}            _in=null;        }        if (_connection!=null)            _connection=null;    }    /* ------------------------------------------------------------ */    /**     * Returns true if the respresened resource exists.     */    public boolean exists()    {        try        {            synchronized(this)            {                if (checkConnection() && _in==null )                    _in = _connection.getInputStream();            }        }        catch (IOException e)        {            Log.ignore(e);        }        return _in!=null;    }    /* ------------------------------------------------------------ */    /**     * Returns true if the respresenetd resource is a container/directory.     * If the resource is not a file, resources ending with "/" are     * considered directories.     */    public boolean isDirectory()    {        return exists() && _url.toString().endsWith("/");    }    /* ------------------------------------------------------------ */    /**     * Returns the last modified time     */    public long lastModified()    {        if (checkConnection())            return _connection.getLastModified();        return -1;    }    /* ------------------------------------------------------------ */    /**     * Return the length of the resource     */    public long length()    {        if (checkConnection())            return _connection.getContentLength();        return -1;    }    /* ------------------------------------------------------------ */    /**     * Returns an URL representing the given resource     */    public URL getURL()    {        return _url;    }    /* ------------------------------------------------------------ */    /**     * Returns an File representing the given resource or NULL if this     * is not possible.     */    public File getFile()        throws IOException    {        // Try the permission hack        if (checkConnection())        {            Permission perm = _connection.getPermission();            if (perm instanceof java.io.FilePermission)                return new File(perm.getName());        }        // Try the URL file arg        try {return new File(_url.getFile());}        catch(Exception e) {Log.ignore(e);}        // Don't know the file        return null;        }    /* ------------------------------------------------------------ */    /**     * Returns the name of the resource     */    public String getName()    {        return _url.toExternalForm();    }    /* ------------------------------------------------------------ */    /**     * Returns an input stream to the resource     */    public synchronized InputStream getInputStream()        throws java.io.IOException    {        if (!checkConnection())            throw new IOException( "Invalid resource");        try        {                if( _in != null)            {                InputStream in = _in;                _in=null;                return in;            }            return _connection.getInputStream();        }        finally        {            _connection=null;        }    }    /* ------------------------------------------------------------ */    /**     * Returns an output stream to the resource     */    public OutputStream getOutputStream()        throws java.io.IOException, SecurityException    {        throw new IOException( "Output not supported");    }    /* ------------------------------------------------------------ */    /**     * Deletes the given resource     */    public boolean delete()        throws SecurityException    {        throw new SecurityException( "Delete not supported");    }    /* ------------------------------------------------------------ */    /**     * Rename the given resource     */    public boolean renameTo( Resource dest)        throws SecurityException    {        throw new SecurityException( "RenameTo not supported");    }    /* ------------------------------------------------------------ */    /**     * Returns a list of resource names contained in the given resource     */    public String[] list()    {        return null;    }    /* ------------------------------------------------------------ */    /**     * Returns the resource contained inside the current resource with the     * given name     */    public Resource addPath(String path)        throws IOException,MalformedURLException    {        if (path==null)            return null;        path = URIUtil.canonicalPath(path);        return newResource(URIUtil.addPaths(_url.toExternalForm(),path));    }    /* ------------------------------------------------------------ */    public String toString()    {        return _urlString;    }    /* ------------------------------------------------------------ */    public int hashCode()    {        return _url.hashCode();    }        /* ------------------------------------------------------------ */    public boolean equals( Object o)    {        return o instanceof URLResource &&            _url.equals(((URLResource)o)._url);    }    public boolean getUseCaches ()    {        return _useCaches;    }}

⌨️ 快捷键说明

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