The filter in web.xml causes sitemesh to kick into action. Then sitemesh uses the decorators.xml file where it finds this:
<decorator name="main" page="main.jsp">
<pattern>/*</pattern>
</decorator>
That decorator causes every request to load main.jsp. If you open main.jsp, you’ll see logic that includes the dashboard or <decorator:body /> based on the servlet path of the request:
As far as how the sitemesh filter classes use the this configuration and which sitemesh objects load, you would need to dig into the specifics of sitemesh.