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

📄 portletrequestimpl.java

📁 portal越来越流行了
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
//            this.parameters = null;
//        }
        if (LOG.isDebugEnabled())
        {
            LOG.debug("Render request's included mode: " + included);
        }
    }

    public boolean isIncluded()
    {
        return included;
    }
    
    /**
     * The base method that returns the parameter map in this portlet request.
     * All parameter-related methods call this base method. Subclasses may just
     * overwrite this protected method to change behavior of all parameter-
     * related methods.
     * @return the base parameter map from which parameters are retrieved.
     */
    protected Map<String, String[]> baseGetParameterMap() 
    {      
        if (isIncluded())
        {
            setBodyAccessed();
        }
        Map<String, String[]> parameters = urlProvider.getRenderParameters();
        if (parameters == null)
        {
            if (getRequestMethod().equals(Constants.METHOD_RENDER) || getRequestMethod().equals(Constants.METHOD_EVENT))
            {
                parameters = urlProvider.parseRenderParameters(this.getHttpServletRequest().getParameterMap(), queryString); 
                queryString = null;
            }
            else
            {
                parameters = urlProvider.parseRenderParameters(this.getHttpServletRequest().getParameterMap(), null); 
            }
        }
        return parameters;
    }
    
	public void setForwardedQueryString(String queryString)
    {
        if (!forwarded) 
        { 
            throw new IllegalStateException(
                "Parameters cannot be appended to "
                        + "render request which is not included in a dispatch."); 
        }
        this.parameters = null;
        this.queryString = queryString;
//        this.urlProvider.parseRenderParameters(super.getParameterMap(), queryString);
        this.urlProvider.parseRenderParameters(null,null);
    }

    public void setIncludedQueryString(String queryString)
            throws IllegalStateException
    {
        if (!included) 
        { 
            throw new IllegalStateException(
                "Parameters cannot be appended to "
                        + "render request which is not included in a dispatch."); 
        }
        this.parameters = null;
        this.queryString = queryString;
//        this.urlProvider.parseRenderParameters(super.getParameterMap(), queryString);        
        this.urlProvider.parseRenderParameters(null,null);
    }


    public Map<String, String[]> getPrivateParameterMap()
    {
        return Collections.unmodifiableMap(StringUtils
                .copyParameters(baseGetParameterMap()));
    }

    public Map<String, String[]> getPublicParameterMap()
    {
        Map<String, String[]> map = new HashMap<String, String[]>();
        List<String> publicRenderParameterNames = portletWindow
                .getPortletEntity().getPortletDefinition()
                .getSupportedPublicRenderParameters();
        String[] values = null;
        if (publicRenderParameterNames != null)
        {
            for (String string : publicRenderParameterNames)
            {
                values = urlProvider.getPublicRenderParameters(string);
                if (values != null)
                {
                    map.put(string, values);
                }
            }
        }
        return Collections.unmodifiableMap(map);
    }

    public String getWindowID()
    {
        return portletWindow.getId().getStringId();
    }

    private void setLifecyclePhase()
    {
        String lifecyclePhase = getLifecyclePhase();
        this.setAttribute(LIFECYCLE_PHASE, lifecyclePhase);
    }

    @Override
    public String getLocalAddr()
    {
        return (isIncluded() || isForwarded()) ? null : super.getLocalAddr();
    }

    @Override
    public String getLocalName()
    {
        return (isIncluded() || isForwarded()) ? null : super.getLocalName();
    }

    @Override
    public int getLocalPort()
    {
        return (isIncluded() || isForwarded()) ? 0 : super.getLocalPort();
    }

    public String getProtocol()
    {
        return (isIncluded() || isForwarded()) ? "HTTP/1.1" : super
                .getProtocol();
    }

    @Override
    public String getRealPath(String arg0)
    {
        return (isIncluded() || isForwarded()) ? null : super.getRealPath(arg0);
    }

    @Override
    public String getRemoteAddr()
    {
        return (isIncluded() || isForwarded()) ? null : super.getRemoteAddr();
    }

    @Override
    public String getRemoteHost()
    {
        return (isIncluded() || isForwarded()) ? null : super.getRemoteHost();
    }

    @Override
    public int getRemotePort()
    {
        return (isIncluded() || isForwarded()) ? 0 : super.getRemotePort();
    }

    @Override
    public Cookie[] getCookies()
    {
        if (isIncluded() || isForwarded())
        {
            return super.getCookies();
        }
        else
            return super.getCookies();
    }

    @Override
    public long getDateHeader(String arg0)
    {
        if (isIncluded() || isForwarded())
        {

            String value = getHeader(arg0);
            if (value == null) { return (-1L); }
            // Attempt to convert the date header in a variety of formats
            return parseDateHeader(value);
        }
        else
            return super.getDateHeader(arg0);
    }

    @Override
    public String getHeader(String arg0)
    {
        if (isIncluded() || isForwarded())
        {
            return getProperty(arg0);
        }
        else
            return super.getHeader(arg0);
    }

    @Override
    public Enumeration getHeaderNames()
    {
        if (isIncluded() || isForwarded())
        {
            return getPropertyNames();
        }
        else
            return super.getHeaderNames();
    }

    @Override
    public Enumeration getHeaders(String arg0)
    {
        if (isIncluded() || isForwarded())
        {
            return getProperties(arg0);
        }
        else
            return super.getHeaders(arg0);
    }

    @Override
    public int getIntHeader(String arg0)
    {
        if (isIncluded() || isForwarded())
        {
            String property = getProperty(arg0);
            if (property == null)
            {
                return -1;
            }
            else
            {
                return Integer.parseInt(property);
            }
        }
        else
            return super.getIntHeader(arg0);
    }

    public String getPathInfo()
    {
        if (isIncluded())
            return (String) super
                    .getAttribute("javax.servlet.include.path_info");
        else if (isForwarded())
            return (String) super
                    .getAttribute("javax.servlet.forward.path_info");
        else
            return super.getPathInfo();
    }

    public String getQueryString()
    {
        if (isIncluded())
            return (String) super
                    .getAttribute("javax.servlet.include.query_string");
        else if (isForwarded())
            return (String) super
                    .getAttribute("javax.servlet.forward.query_string");
        else
            return super.getQueryString();
    }

    public String getPathTranslated()
    {
        if (isIncluded() || isForwarded())
        {
            String path = getServletPath() + getPathInfo() + "?"
                    + getQueryString();
            return getRealPath(path);
        }
        return super.getPathTranslated();
    }

    public String getRequestURI()
    {
        if (isIncluded())
            return (String) super
                    .getAttribute("javax.servlet.include.request_uri");
        else if (isForwarded())
            return (String) super
                    .getAttribute("javax.servlet.forward.request_uri");
        else
            return super.getRequestURI();
    }

    public String getServletPath()
    {
        if (isIncluded())
            return (String) super
                    .getAttribute("javax.servlet.include.servlet_path");
        else if (isForwarded())
            return (String) super
                    .getAttribute("javax.servlet.forward.servlet_path");
        else
            return super.getServletPath();
    }

    public StringBuffer getRequestURL()
    {
        return (isIncluded() || isForwarded()) ? null : super.getRequestURL();
    }

    @Override
    public HttpSession getSession()
    {
        if (isIncluded() || isForwarded())
        {
            // ensure cached PortletSession is created (with proper HttpSession
            // invalidation check performed)
            getPortletSession();
            if (portletSession != null)
            {
                return portletSession.getHttpSession();
            }
            else
            {
                return null;
            }
        }
        return super.getSession();
    }

    @Override
    public HttpSession getSession(boolean create)
    {
        if (isIncluded() || isForwarded())
        {
            // ensure cached PortletSession is created (with proper HttpSession
            // invalidation check performed)
            getPortletSession(create);
            if (portletSession != null)
            {
                return portletSession.getHttpSession();
            }
            else
            {
                return null;
            }
        }
        return super.getSession();
    }

    // ============= private methods ==================

    /**
     * Try to parse the given date as a HTTP date. Borrowed and adapted from
     * Tomcat FastHttpDateFormat
     */
    private long parseDateHeader(String value)
    {
        Long dateValue = null;
        try
        {
            dateValue = (Long) dateHeaderParseCache.get(value);
        }
        catch (Exception e)
        {
        }
        if (dateValue == null)
        {
            for (int i = 0; i < dateHeaderFormats.length; i++)
            {
                try
                {
                    Date date = dateHeaderFormats[i].parse(value);
                    dateValue = new Long(date.getTime());
                }
                catch (ParseException e)
                {
                }
            }
            if (dateValue != null)
            {
                synchronized (dateHeaderParseCache)
                {
                    if (dateHeaderParseCache.size() > 1000)
                    {
                        dateHeaderParseCache.clear();
                    }
                    dateHeaderParseCache.put(value, dateValue);
                }
            }
            else
            {
                throw new IllegalArgumentException(value);
            }
        }
        return dateValue.longValue();
    }

    public String getLifecyclePhase()
    {
        return null;
    }

    private void setCCPPProfile()
    {
        Profile profile = container.getRequiredContainerServices()
                .getCCPPProfileService().getCCPPProfile(servletRequest);
        this.setAttribute(CCPP_PROFILE, profile);
    }

    public void setNamedRequestDispatcher(boolean named)
    {
        namedRequestDispatcher = named;
    }
}

class ServletRequestDispatcher implements RequestDispatcher
{

    javax.servlet.RequestDispatcher dispatcher;

    public ServletRequestDispatcher(javax.servlet.RequestDispatcher dispatcher)
    {
        this.dispatcher = dispatcher;
    }

    public void forward(ServletRequest arg0, ServletResponse arg1)
            throws ServletException, IOException
    {
        dispatcher.include(arg0, arg1);

    }

    public void include(ServletRequest arg0, ServletResponse arg1)
            throws ServletException, IOException
    {
        dispatcher.include(arg0, arg1);
    }
	
}

⌨️ 快捷键说明

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