O ile mi wiadomo, ta konwencja została rozpowszechniona przez Struts1. Podręcznik użytkownika przedstawia to w następujący sposób:
Uwaga: materiał w tej sekcji nie dotyczy wyłącznie Struts. Konfiguracja odwzorowań serwletów jest zdefiniowana w specyfikacji Java Servlet Specification. W tej sekcji opisano najczęstsze sposoby konfigurowania aplikacji.
Istnieją dwa typowe podejścia do definiowania adresów URL, które będą przetwarzane przez serwlet kontrolera - dopasowywanie prefiksów i dopasowywanie rozszerzeń. Odpowiedni wpis mapowania dla każdego podejścia zostanie opisany poniżej.
Dopasowywanie prefiksów oznacza, że chcesz, aby wszystkie adresy URL rozpoczynające się (po części ścieżki kontekstu) określoną wartością były przekazywane do tego serwletu. Taki wpis może wyglądać tak:
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>/do/*</url-pattern>
</servlet-mapping>
co oznacza, że identyfikator URI żądania pasujący do /logon
ścieżki opisanej wcześniej może wyglądać następująco:
http://www.mycompany.com/myapplication/do/logon
gdzie /myapplication
jest ścieżką kontekstu, w której aplikacja jest wdrażana.
Z drugiej strony, mapowanie rozszerzeń dopasowuje identyfikatory URI żądań do serwletu akcji na podstawie faktu, że identyfikator URI kończy się kropką, po której następuje zdefiniowany zestaw znaków. Na przykład serwlet przetwarzania JSP jest odwzorowywany na *.jsp
wzorzec, tak że jest wywoływany w celu przetworzenia każdej żądanej strony JSP. Aby użyć *.do
rozszerzenia (co oznacza „zrób coś”) , wpis mapowania wyglądałby następująco:
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
a identyfikator URI żądania pasujący do
/logon
ścieżki opisanej wcześniej może wyglądać następująco:
http://www.mycompany.com/myapplication/logon.do
OSTRZEŻENIE - struktura nie będzie działać poprawnie, jeśli zdefiniujesz więcej niż jeden <servlet-mapping>
element dla serwletu kontrolera.
OSTRZEŻENIE - Jeśli używasz nowej obsługi modułów od wersji 1.1, powinieneś mieć świadomość, że obsługiwane jest tylko mapowanie rozszerzeń.