Class DemuxRequest

  • All Implemented Interfaces:
    javax.servlet.http.HttpServletRequest, javax.servlet.ServletRequest

    public class DemuxRequest
    extends Object
    implements javax.servlet.http.HttpServletRequest
    A DemuxRequest wraps a HttpServletRequest and adapts its paths. This is required to demultiplex the request properly, i. e. the paths valid for the DemuxServlet need to be adapted for the inner servlets so that the DemuxServlet becomes invisible for them. This is done by "moving" the servlet path of the DemuxServlet to the context path and "moving" the path of the inner servlet (more or less its mapping) from the path info to the servlet path.
    Also the servlet context is being changed. All other methods simply forward to the parent request.
    See Also:
    getServletContext(), getPathInfo(), getContextPath(), getServletPath()
    • Field Detail

      • dsc

        protected final javax.servlet.ServletContext dsc
        The (deferred) servlet context.
      • demuxContextPath

        protected final String demuxContextPath
        The context path of the demultiplexing servlet.
      • servletPath

        protected final String servletPath
        The servlet path of the inner servlet.
      • pathInfo

        protected final String pathInfo
        The path info the inner servlet.
      • parent

        protected final javax.servlet.http.HttpServletRequest parent
        The (wrapped) parent request (of the outer DemuxServlet).
    • Constructor Detail

      • DemuxRequest

        protected DemuxRequest​(javax.servlet.ServletContext dsc,
                               String demuxContextPath,
                               String servletPath,
                               javax.servlet.http.HttpServletRequest parent)
        Creates a new request handled by a DemuxServlet. This adapts the servlet context and the paths of the designated parent request appropriately for the DemuxServlet.
        Parameters:
        dsc - The (deferred) servlet context.
        demuxContextPath - The context path of the demultiplexing servlet.
        servletPath - The servlet path of the inner servlet.
        parent - The (wrapped) parent request (of the outer DemuxServlet)
    • Method Detail

      • getAttribute

        public Object getAttribute​(String name)
        Specified by:
        getAttribute in interface javax.servlet.ServletRequest
      • getAttributeNames

        public Enumeration<String> getAttributeNames()
        Specified by:
        getAttributeNames in interface javax.servlet.ServletRequest
      • getCharacterEncoding

        public String getCharacterEncoding()
        Specified by:
        getCharacterEncoding in interface javax.servlet.ServletRequest
      • getContentLength

        public int getContentLength()
        Specified by:
        getContentLength in interface javax.servlet.ServletRequest
      • getContentLengthLong

        public long getContentLengthLong()
        Specified by:
        getContentLengthLong in interface javax.servlet.ServletRequest
      • getContentType

        public String getContentType()
        Specified by:
        getContentType in interface javax.servlet.ServletRequest
      • getInputStream

        public javax.servlet.ServletInputStream getInputStream()
                                                        throws IOException
        Specified by:
        getInputStream in interface javax.servlet.ServletRequest
        Throws:
        IOException
      • getParameter

        public String getParameter​(String name)
        Specified by:
        getParameter in interface javax.servlet.ServletRequest
      • getParameterNames

        public Enumeration<String> getParameterNames()
        Specified by:
        getParameterNames in interface javax.servlet.ServletRequest
      • getParameterValues

        public String[] getParameterValues​(String name)
        Specified by:
        getParameterValues in interface javax.servlet.ServletRequest
      • getParameterMap

        public Map<String,​String[]> getParameterMap()
        Specified by:
        getParameterMap in interface javax.servlet.ServletRequest
      • getProtocol

        public String getProtocol()
        Specified by:
        getProtocol in interface javax.servlet.ServletRequest
      • getScheme

        public String getScheme()
        Specified by:
        getScheme in interface javax.servlet.ServletRequest
      • getServerName

        public String getServerName()
        Specified by:
        getServerName in interface javax.servlet.ServletRequest
      • getServerPort

        public int getServerPort()
        Specified by:
        getServerPort in interface javax.servlet.ServletRequest
      • getRemoteAddr

        public String getRemoteAddr()
        Specified by:
        getRemoteAddr in interface javax.servlet.ServletRequest
      • getRemoteHost

        public String getRemoteHost()
        Specified by:
        getRemoteHost in interface javax.servlet.ServletRequest
      • setAttribute

        public void setAttribute​(String name,
                                 Object o)
        Specified by:
        setAttribute in interface javax.servlet.ServletRequest
      • removeAttribute

        public void removeAttribute​(String name)
        Specified by:
        removeAttribute in interface javax.servlet.ServletRequest
      • getLocale

        public Locale getLocale()
        Specified by:
        getLocale in interface javax.servlet.ServletRequest
      • getLocales

        public Enumeration<Locale> getLocales()
        Specified by:
        getLocales in interface javax.servlet.ServletRequest
      • isSecure

        public boolean isSecure()
        Specified by:
        isSecure in interface javax.servlet.ServletRequest
      • getRequestDispatcher

        public javax.servlet.RequestDispatcher getRequestDispatcher​(String path)
        Specified by:
        getRequestDispatcher in interface javax.servlet.ServletRequest
      • getRealPath

        public String getRealPath​(String path)
        Specified by:
        getRealPath in interface javax.servlet.ServletRequest
      • getRemotePort

        public int getRemotePort()
        Specified by:
        getRemotePort in interface javax.servlet.ServletRequest
      • getLocalName

        public String getLocalName()
        Specified by:
        getLocalName in interface javax.servlet.ServletRequest
      • getLocalAddr

        public String getLocalAddr()
        Specified by:
        getLocalAddr in interface javax.servlet.ServletRequest
      • getLocalPort

        public int getLocalPort()
        Specified by:
        getLocalPort in interface javax.servlet.ServletRequest
      • getServletContext

        public javax.servlet.ServletContext getServletContext()
        Gets the DeferredServletContext of the DemuxServlet handling this request.
        Specified by:
        getServletContext in interface javax.servlet.ServletRequest
      • startAsync

        public javax.servlet.AsyncContext startAsync​(javax.servlet.ServletRequest servletRequest,
                                                     javax.servlet.ServletResponse servletResponse)
                                              throws IllegalStateException
        Specified by:
        startAsync in interface javax.servlet.ServletRequest
        Throws:
        IllegalStateException
      • isAsyncStarted

        public boolean isAsyncStarted()
        Specified by:
        isAsyncStarted in interface javax.servlet.ServletRequest
      • isAsyncSupported

        public boolean isAsyncSupported()
        Specified by:
        isAsyncSupported in interface javax.servlet.ServletRequest
      • getAsyncContext

        public javax.servlet.AsyncContext getAsyncContext()
        Specified by:
        getAsyncContext in interface javax.servlet.ServletRequest
      • getDispatcherType

        public javax.servlet.DispatcherType getDispatcherType()
        Specified by:
        getDispatcherType in interface javax.servlet.ServletRequest
      • getAuthType

        public String getAuthType()
        Specified by:
        getAuthType in interface javax.servlet.http.HttpServletRequest
      • getCookies

        public javax.servlet.http.Cookie[] getCookies()
        Specified by:
        getCookies in interface javax.servlet.http.HttpServletRequest
      • getDateHeader

        public long getDateHeader​(String name)
        Specified by:
        getDateHeader in interface javax.servlet.http.HttpServletRequest
      • getHeader

        public String getHeader​(String name)
        Specified by:
        getHeader in interface javax.servlet.http.HttpServletRequest
      • getHeaders

        public Enumeration<String> getHeaders​(String name)
        Specified by:
        getHeaders in interface javax.servlet.http.HttpServletRequest
      • getHeaderNames

        public Enumeration<String> getHeaderNames()
        Specified by:
        getHeaderNames in interface javax.servlet.http.HttpServletRequest
      • getIntHeader

        public int getIntHeader​(String name)
        Specified by:
        getIntHeader in interface javax.servlet.http.HttpServletRequest
      • getMethod

        public String getMethod()
        Specified by:
        getMethod in interface javax.servlet.http.HttpServletRequest
      • getPathInfo

        public String getPathInfo()
        Gets the path info for the inner servlet adapted from the path info of the DemuxServlet handling this request.
        Specified by:
        getPathInfo in interface javax.servlet.http.HttpServletRequest
      • getPathTranslated

        public String getPathTranslated()
        Specified by:
        getPathTranslated in interface javax.servlet.http.HttpServletRequest
      • getContextPath

        public String getContextPath()
        Gets the context for the inner servlet adapted from the context path of the DemuxServlet handling this request.
        Specified by:
        getContextPath in interface javax.servlet.http.HttpServletRequest
      • getQueryString

        public String getQueryString()
        Specified by:
        getQueryString in interface javax.servlet.http.HttpServletRequest
      • getRemoteUser

        public String getRemoteUser()
        Specified by:
        getRemoteUser in interface javax.servlet.http.HttpServletRequest
      • isUserInRole

        public boolean isUserInRole​(String role)
        Specified by:
        isUserInRole in interface javax.servlet.http.HttpServletRequest
      • getUserPrincipal

        public Principal getUserPrincipal()
        Specified by:
        getUserPrincipal in interface javax.servlet.http.HttpServletRequest
      • getRequestedSessionId

        public String getRequestedSessionId()
        Specified by:
        getRequestedSessionId in interface javax.servlet.http.HttpServletRequest
      • getRequestURI

        public String getRequestURI()
        Specified by:
        getRequestURI in interface javax.servlet.http.HttpServletRequest
      • getRequestURL

        public StringBuffer getRequestURL()
        Specified by:
        getRequestURL in interface javax.servlet.http.HttpServletRequest
      • getServletPath

        public String getServletPath()
        Gets the servlet path for the inner servlet adapted from the servlet path of the DemuxServlet handling this request.
        Specified by:
        getServletPath in interface javax.servlet.http.HttpServletRequest
      • getSession

        public javax.servlet.http.HttpSession getSession​(boolean create)
        Specified by:
        getSession in interface javax.servlet.http.HttpServletRequest
      • getSession

        public javax.servlet.http.HttpSession getSession()
        Specified by:
        getSession in interface javax.servlet.http.HttpServletRequest
      • changeSessionId

        public String changeSessionId()
        Specified by:
        changeSessionId in interface javax.servlet.http.HttpServletRequest
      • isRequestedSessionIdValid

        public boolean isRequestedSessionIdValid()
        Specified by:
        isRequestedSessionIdValid in interface javax.servlet.http.HttpServletRequest
      • isRequestedSessionIdFromCookie

        public boolean isRequestedSessionIdFromCookie()
        Specified by:
        isRequestedSessionIdFromCookie in interface javax.servlet.http.HttpServletRequest
      • isRequestedSessionIdFromURL

        public boolean isRequestedSessionIdFromURL()
        Specified by:
        isRequestedSessionIdFromURL in interface javax.servlet.http.HttpServletRequest
      • isRequestedSessionIdFromUrl

        public boolean isRequestedSessionIdFromUrl()
        Specified by:
        isRequestedSessionIdFromUrl in interface javax.servlet.http.HttpServletRequest
      • authenticate

        public boolean authenticate​(javax.servlet.http.HttpServletResponse response)
                             throws IOException,
                                    javax.servlet.ServletException
        Specified by:
        authenticate in interface javax.servlet.http.HttpServletRequest
        Throws:
        IOException
        javax.servlet.ServletException
      • login

        public void login​(String username,
                          String password)
                   throws javax.servlet.ServletException
        Specified by:
        login in interface javax.servlet.http.HttpServletRequest
        Throws:
        javax.servlet.ServletException
      • logout

        public void logout()
                    throws javax.servlet.ServletException
        Specified by:
        logout in interface javax.servlet.http.HttpServletRequest
        Throws:
        javax.servlet.ServletException
      • getParts

        public Collection<javax.servlet.http.Part> getParts()
                                                     throws IOException,
                                                            javax.servlet.ServletException
        Specified by:
        getParts in interface javax.servlet.http.HttpServletRequest
        Throws:
        IOException
        javax.servlet.ServletException
      • getPart

        public javax.servlet.http.Part getPart​(String name)
                                        throws IOException,
                                               javax.servlet.ServletException
        Specified by:
        getPart in interface javax.servlet.http.HttpServletRequest
        Throws:
        IOException
        javax.servlet.ServletException
      • upgrade

        public <T extends javax.servlet.http.HttpUpgradeHandler> T upgrade​(Class<T> handlerClass)
                                                                    throws IOException,
                                                                           javax.servlet.ServletException
        Specified by:
        upgrade in interface javax.servlet.http.HttpServletRequest
        Throws:
        IOException
        javax.servlet.ServletException