Webanwendungen nutzen URLs um ihre Funktionalität zur Verfügung zu stellen. Der Zugriff auf eine bestimmte URL mit eventuell optionalen Parametern (Request) hat eine bestimmte Anwort (Response) zur Folge. Die Antwort könnte eine HTML Webseite sein oder aber auch JSON oder XML (wie bei AJAX oder SOAP). Die URLs stellen somit die Eingabedaten dar die mit der Funktionalität auf Ausgabedaten abgebildet werden.
Sinnvollerweise werden URLs in aussagekräftiger Weise strukturiert und aufgebaut werden. Viele MVC-Frameworks nutzen die /controller/action Struktur. Einige bieten für größere Webanwendungen noch einen optionalen Moduleintrag an: /module/controller/action. Dabei impliziert der controller häufig eine Klasse und die action eine Methode.
Das metaframework stellt zur Strukturierung der Webanwendung die Klasse Context bereit. Mit den Objekten dieser Klasse kann mit der Assoziation nestedContext eine Baumstruktur nach dem Pattern in Abbildung Figure 13-2 aufgebaut werden.
Die Klasse Context ist in Abbildung Figure 13-3 als UML Modell dargestellt. Sie definiert ein Attribut name welches in der URL dargestellt wird. Das Attribut handler ist ein Identifikator für die Funktionalität die ausgeführt werden soll.
Definiert ein Kontext keinen handler so tritt ein Fallback Mechanismus ein und der handler eines parent Kontextes wird genutzt. Ein Handler kann auf den URL-Teil der zusätzlich zu seinem Kontext angegeben wurde zugreifen und diesen auswerten. Da Kontext Definitionen ohne handler wenig Sinn ergeben ist die Kontext-Struktur in der zugreifbaren URL-Struktur enthalten, beide sind aber nicht gleich. Somit sind an das REST-Pattern angelehnte URL-Strukturen möglich.