Interface ServletResolver


  • @ProviderType
    public interface ServletResolver
    The ServletResolver defines the API for a service capable of resolving javax.servlet.Servlet instances to handle the processing of a request or resource.

    Applications of the Sling Framework generally do not need the servlet resolver as resolution of the servlets to process requests and sub-requests through a RequestDispatcher is handled by the Sling Framework.

    • Method Detail

      • resolveServlet

        @Nullable
        @Nullable Servlet resolveServlet​(@NotNull
                                         @NotNull SlingHttpServletRequest request)
        Resolves a javax.servlet.Servlet whose service method may be used to handle the given request.

        The returned servlet must be assumed to be initialized and ready to run. That is, the init nor the destroy methods must NOT be called on the returned servlet.

        This method must not return a Servlet instance implementing the OptingServlet interface and returning false when the OptingServlet.accepts(SlingHttpServletRequest) method is called.

        Parameters:
        request - The SlingHttpServletRequest object used to drive selection of the servlet.
        Returns:
        The servlet whose service method may be called to handle the request. Might be null.
        Throws:
        SlingException - Is thrown if an error occurs while trying to find an appropriate servlet to handle the request.
        java.lang.NullPointerException - If request is null.
      • resolveServlet

        @Nullable
        @Nullable Servlet resolveServlet​(@NotNull
                                         @NotNull Resource resource,
                                         @NotNull
                                         @NotNull java.lang.String scriptName)
        Resolves a javax.servlet.Servlet whose service method may be used to handle a request.

        The returned servlet must be assumed to be initialized and ready to run. That is, the init nor the destroy methods must NOT be called on the returned servlet.

        This method skips all OptingServlets as there is no request object available. Basically this method searches a script with the scriptName for the resource type defined by the resource.

        Parameters:
        resource - The Resource object used to drive selection of the servlet.
        scriptName - The name of the script - the script might have an extension. In this case only a script with the matching extension is used.
        Returns:
        The servlet whose service method may be called to handle the request. Might be null.
        Throws:
        SlingException - Is thrown if an error occurs while trying to find an appropriate servlet to handle the request or if no servlet could be resolved to handle the request.
        java.lang.IllegalArgumentException - If resource is null.
        Since:
        2.1 (Sling API Bundle 2.1.0)
      • resolveServlet

        @Nullable
        @Nullable Servlet resolveServlet​(@NotNull
                                         @NotNull ResourceResolver resolver,
                                         @NotNull
                                         @NotNull java.lang.String scriptName)
        Resolves a javax.servlet.Servlet whose service method may be used to handle a request.

        The returned servlet must be assumed to be initialized and ready to run. That is, the init nor the destroy methods must NOT be called on the returned servlet.

        This method skips all OptingServlets as there is no request object available. Basically this method searches a script with the scriptName

        Parameters:
        resolver - The ResourceResolver object used to drive selection of the servlet.
        scriptName - The name of the script - the script might have an extension. In this case only a script with the matching extension is used.
        Returns:
        The servlet whose service method may be called to handle the request. Might be null.
        Throws:
        SlingException - Is thrown if an error occurs while trying to find an appropriate servlet to handle the request.
        java.lang.IllegalArgumentException - If resolver is null.
        Since:
        2.1 (Sling API Bundle 2.1.0)