public interface NonExistingResourceServlet extends OptingServlet
OptingServlet.accepts(org.apache.sling.api.SlingHttpServletRequest)
method the implementing servlet
must check if it will handle the given non-existing path.
Please note: This is a temporary solution until Sling provides a built-in mechanism for this use case. Not to be used by client implementations!
This servlet will not be registered directly with Sling but rather with a distinct dispatcher servlet that is
registered for the GET, HEAD, POST and PUT HTTP methods on the sling:nonexisting resource (
NonExistingDispatcherServlet
).
To give a bit control over the order, set the standard OSGi property service.ranking
(Integer) on the
servlet to define an integer value for the order - the implementations with the highest number are called first. The
first servlet that returns true
in its OptingServlet.accepts(org.apache.sling.api.SlingHttpServletRequest)
method will handle the request.
Example code:
@Component @Service(NonExistingResourceServlet.class) @Property(name="service.ranking",intValue=10) @SuppressWarnings("serial") public class TesterServlet extends SlingAllMethodsServlet implements NonExistingResourceServlet { public boolean accepts(SlingHttpServletRequest request) { // get non-existing path (incl. selectors and extension!) String path = request.getResource().getPath(); // return true if this servlet can handle this path return true; } @Override protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { // handle actual GET request here // ... }
accepts
destroy, getServletConfig, getServletInfo, init, service
Copyright © 2010 - 2020 Adobe. All Rights Reserved