Request Resolution in Adobe AEM
Before trying to understand request resolution, take a look at URL decomposition to see how the URL is decomposed.
The process looks like this:
a) After the URL Decomposition process, the following URL properties are extracted:
Protocol Host Path Selector(s) Extension Suffix Param(s)
b) The `path` component of the URL is matched against a node in `content` folder
c) If the node is found, it uses one of the following properties to try to locate the resource:
`sling:resourceType` `sling:resourceSuperType` `jcr:primaryType`
d) Using the value of one of the above properties, it tries to locate this resource under one of these folders:
`apps` `libs`
e) When it finds the correct folder, it chooses a node with the best match based on some of the URL properties:
`Selector` `Extension` `Method`
Best match
Suppose a request with the following characteristics:
a) Method GET
b) Selector print.a4
c) Extension html
d) sling:resourceType hr/jobs
The best match will be one of the following nodes:
Biggest priority apps/hr/jobs/print/a4.html.jsp apps/hr/jobs/print/a4/html.jsp apps/hr/jobs/print/a4.jsp apps/hr/jobs/print/print.html.jsp apps/hr/jobs/print/print.jsp apps/hr/jobs/print/html.jsp apps/hr/jobs/print/jobs.jsp apps/hr/jobs/print/GET.jsp libs/hr/jobs/print/a4.html.jsp libs/hr/jobs/print/a4/html.jsp libs/hr/jobs/print/a4.jsp libs/hr/jobs/print/print.html.jsp libs/hr/jobs/print/print.jsp libs/hr/jobs/print/html.jsp libs/hr/jobs/print/jobs.jsp libs/hr/jobs/print/GET.jsp Lowest priority
Request Example
http://myhost/content/corporate/jobs/developer.html
Notice how the resolutions starts at `content` folder, then uses a file in `apps` folder by `sling:resourceType` reference: