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

📄 servlethandler.java

📁 是离开的肌肤了卡机是离开的就富利卡及是了的开发及拉考试及的福利科技阿斯利康的肌肤莱卡及时的离开福建阿斯顿发
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
    {        FilterHolder[] holders = getFilters();        if (holders!=null)            holders = (FilterHolder[])holders.clone();                try        {            setFilters((FilterHolder[])LazyList.addToArray(holders, holder, FilterHolder.class));                        FilterMapping mapping = new FilterMapping();            mapping.setFilterName(holder.getName());            mapping.setPathSpec(pathSpec);            mapping.setDispatches(dispatches);            setFilterMappings((FilterMapping[])LazyList.addToArray(getFilterMappings(), mapping, FilterMapping.class));        }        catch (RuntimeException e)        {            setFilters(holders);            throw e;        }        catch (Error e)        {            setFilters(holders);            throw e;        }                }        /* ------------------------------------------------------------ */    /** Convenience method to add a filter with a mapping     * @param className     * @param pathSpec     * @param dispatches     * @return     * @deprecated     */    public FilterHolder addFilter (String className,String pathSpec,int dispatches)    {        return addFilterWithMapping(className, pathSpec, dispatches);    }        /* ------------------------------------------------------------ */    /**     * convenience method to add a filter and mapping     * @param filter     * @param filterMapping     */    public void addFilter (FilterHolder filter, FilterMapping filterMapping)    {        if (filter != null)            setFilters((FilterHolder[])LazyList.addToArray(getFilters(), filter, FilterHolder.class));        if (filterMapping != null)            setFilterMappings((FilterMapping[])LazyList.addToArray(getFilterMappings(), filterMapping, FilterMapping.class));    }        /* ------------------------------------------------------------ */      /** Convenience method to add a preconstructed FilterHolder     * @param filter     */    public void addFilter (FilterHolder filter)    {        if (filter != null)            setFilters((FilterHolder[])LazyList.addToArray(getFilters(), filter, FilterHolder.class));    }        /* ------------------------------------------------------------ */    /** Convenience method to add a preconstructed FilterMapping     * @param mapping     */    public void addFilterMapping (FilterMapping mapping)    {        if (mapping != null)            setFilterMappings((FilterMapping[])LazyList.addToArray(getFilterMappings(), mapping, FilterMapping.class));    }    /* ------------------------------------------------------------ */    protected synchronized void updateNameMappings()    {           // update filter name map        _filterNameMap.clear();        if (_filters!=null)        {               for (int i=0;i<_filters.length;i++)            {                _filterNameMap.put(_filters[i].getName(),_filters[i]);                _filters[i].setServletHandler(this);            }        }        // Map servlet names to holders        _servletNameMap.clear();        if (_servlets!=null)        {               // update the maps            for (int i=0;i<_servlets.length;i++)            {                _servletNameMap.put(_servlets[i].getName(),_servlets[i]);                _servlets[i].setServletHandler(this);            }        }    }        /* ------------------------------------------------------------ */    protected synchronized void updateMappings()    {           // update filter mappings        if (_filterMappings==null)        {            _filterPathMappings=null;            _filterNameMappings=null;        }        else         {            _filterPathMappings=new ArrayList();            _filterNameMappings=new MultiMap();            for (int i=0;i<_filterMappings.length;i++)            {                FilterHolder filter_holder = (FilterHolder)_filterNameMap.get(_filterMappings[i].getFilterName());                if (filter_holder==null)                    throw new IllegalStateException("No filter named "+_filterMappings[i].getFilterName());                _filterMappings[i].setFilterHolder(filter_holder);                    if (_filterMappings[i].getPathSpecs()!=null)                    _filterPathMappings.add(_filterMappings[i]);                                if (_filterMappings[i].getServletNames()!=null)                {                    String[] names=_filterMappings[i].getServletNames();                    for (int j=0;j<names.length;j++)                    {                        if (names[j]!=null)                            _filterNameMappings.add(names[j], _filterMappings[i]);                      }                }            }        }        // Map servlet paths to holders        if (_servletMappings==null || _servletNameMap==null)        {            _servletPathMap=null;        }        else        {            PathMap pm = new PathMap();                        // update the maps            for (int i=0;i<_servletMappings.length;i++)            {                ServletHolder servlet_holder = (ServletHolder)_servletNameMap.get(_servletMappings[i].getServletName());                if (servlet_holder==null)                    throw new IllegalStateException("No such servlet: "+_servletMappings[i].getServletName());                else if (_servletMappings[i].getPathSpecs()!=null)                {                    String[] pathSpecs = _servletMappings[i].getPathSpecs();                    for (int j=0;j<pathSpecs.length;j++)                        if (pathSpecs[j]!=null)                            pm.put(pathSpecs[j],servlet_holder);                }            }                        _servletPathMap=pm;        }                        if (Log.isDebugEnabled())         {            Log.debug("filterNameMap="+_filterNameMap);            Log.debug("pathFilters="+_filterPathMappings);            Log.debug("servletFilterMap="+_filterNameMappings);            Log.debug("servletPathMap="+_servletPathMap);            Log.debug("servletNameMap="+_servletNameMap);        }                try        {            if (isStarted())                initialize();        }        catch (Exception e)        {            throw new RuntimeException(e);        }    }    /* ------------------------------------------------------------ */    protected void notFound(HttpServletRequest request,                  HttpServletResponse response)        throws IOException    {        if(Log.isDebugEnabled())Log.debug("Not Found "+request.getRequestURI());        response.sendError(HttpServletResponse.SC_NOT_FOUND);    }        /* ------------------------------------------------------------ */    /**     * @param filterChainsCached The filterChainsCached to set.     */    public void setFilterChainsCached(boolean filterChainsCached)    {        _filterChainsCached = filterChainsCached;    }        /* ------------------------------------------------------------ */    /**     * @param filterMappings The filterMappings to set.     */    public void setFilterMappings(FilterMapping[] filterMappings)    {        if (getServer()!=null)            getServer().getContainer().update(this,_filterMappings,filterMappings,"filterMapping",true);        _filterMappings = filterMappings;        updateMappings();    }        /* ------------------------------------------------------------ */    public synchronized void setFilters(FilterHolder[] holders)    {        if (getServer()!=null)            getServer().getContainer().update(this,_filters,holders,"filter",true);        _filters=holders;        updateNameMappings();    }        /* ------------------------------------------------------------ */    /**     * @param servletMappings The servletMappings to set.     */    public void setServletMappings(ServletMapping[] servletMappings)    {        if (getServer()!=null)            getServer().getContainer().update(this,_servletMappings,servletMappings,"servletMapping",true);        _servletMappings = servletMappings;        updateMappings();    }        /* ------------------------------------------------------------ */    /** Set Servlets.     * @param holders Array of servletsto define     */    public synchronized void setServlets(ServletHolder[] holders)    {        if (getServer()!=null)            getServer().getContainer().update(this,_servlets,holders,"servlet",true);        _servlets=holders;        updateNameMappings();    }    /* ------------------------------------------------------------ */    /* ------------------------------------------------------------ */    private class CachedChain implements FilterChain    {        FilterHolder _filterHolder;        CachedChain _next;        ServletHolder _servletHolder;        /* ------------------------------------------------------------ */        CachedChain(Object filters, ServletHolder servletHolder)        {            if (LazyList.size(filters)>0)            {                _filterHolder=(FilterHolder)LazyList.get(filters, 0);                filters=LazyList.remove(filters,0);                _next=new CachedChain(filters,servletHolder);            }            else                _servletHolder=servletHolder;        }        /* ------------------------------------------------------------ */        public void doFilter(ServletRequest request, ServletResponse response)             throws IOException, ServletException        {            // pass to next filter            if (_filterHolder!=null)            {                if (Log.isDebugEnabled())                    Log.debug("call filter " + _filterHolder);                Filter filter= _filterHolder.getFilter();                filter.doFilter(request, response, _next);                return;            }            // Call servlet            if (_servletHolder != null)            {                if (Log.isDebugEnabled())                    Log.debug("call servlet " + _servletHolder);                _servletHolder.handle(request, response);            }            else // Not found                notFound((HttpServletRequest)request, (HttpServletResponse)response);        }                public String toString()        {            if (_filterHolder!=null)                return _filterHolder+"->"+_next.toString();            if (_servletHolder!=null)                return _servletHolder.toString();            return "null";        }    }          /* ------------------------------------------------------------ */    /* ------------------------------------------------------------ */    private class Chain implements FilterChain    {        int _filter= 0;        Object _chain;        ServletHolder _servletHolder;        /* ------------------------------------------------------------ */        Chain(Object filters, ServletHolder servletHolder)        {            _chain= filters;            _servletHolder= servletHolder;        }        /* ------------------------------------------------------------ */        public void doFilter(ServletRequest request, ServletResponse response)            throws IOException, ServletException        {            if (Log.isDebugEnabled()) Log.debug("doFilter " + _filter);            // pass to next filter            if (_filter < LazyList.size(_chain))            {                FilterHolder holder= (FilterHolder)LazyList.get(_chain, _filter++);                if (Log.isDebugEnabled()) Log.debug("call filter " + holder);                Filter filter= holder.getFilter();                filter.doFilter(request, response, this);                return;            }            // Call servlet            if (_servletHolder != null)            {                if (Log.isDebugEnabled()) Log.debug("call servlet " + _servletHolder);                _servletHolder.handle(request, response);            }            else // Not found                notFound((HttpServletRequest)request, (HttpServletResponse)response);        }        /* ------------------------------------------------------------ */        public String toString()        {            StringBuffer b = new StringBuffer();            for (int i=0; i<LazyList.size(_chain);i++)            {                b.append(LazyList.get(_chain, i).toString());                b.append("->");            }            b.append(_servletHolder);            return b.toString();        }    }    /* ------------------------------------------------------------ */    /**     * @return The maximum entries in a filter chain cache.     */    public int getMaxFilterChainsCacheSize()    {        return _maxFilterChainsCacheSize;    }    /* ------------------------------------------------------------ */    /** Set the maximum filter chain cache size.     * Filter chains are cached if {@link #isFilterChainsCached()} is true. If the max cache size     * is greater than zero, then the cache is flushed whenever it grows to be this size.     *      * @param maxFilterChainsCacheSize  the maximum number of entries in a filter chain cache.     */    public void setMaxFilterChainsCacheSize(int maxFilterChainsCacheSize)    {        _maxFilterChainsCacheSize = maxFilterChainsCacheSize;    }        /**     * Customize a servlet.     *      * Called before the servlet goes into service.     * Subclasses of ServletHandler should override     * this method.     *      * @param servlet     * @return     * @throws Exception     */    public Servlet customizeServlet (Servlet servlet)    throws Exception    {        return servlet;    }            public Servlet customizeServletDestroy (Servlet servlet)    throws Exception    {        return servlet;    }            /**     * Customize a Filter.     *      * Called before the Filter goes into service.     * Subclasses of ServletHandler should override     * this method.     *      * @param filter     * @return     * @throws Exception     */    public Filter customizeFilter (Filter filter)    throws Exception    {        return filter;    }            public Filter customizeFilterDestroy (Filter filter)    throws Exception    {        return filter;    }}

⌨️ 快捷键说明

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