Até onde sei, esta convenção foi divulgada pelo Struts1. O guia do usuário coloca assim:
Observação: o material desta seção não é específico do Struts. A configuração de mapeamentos de servlet é definida na Especificação de Servlet Java. Esta seção descreve os meios mais comuns de configuração de um aplicativo.
Existem duas abordagens comuns para definir os URLs que serão processados pelo servlet do controlador - correspondência de prefixo e correspondência de extensão. Uma entrada de mapeamento apropriada para cada abordagem será descrita abaixo.
A correspondência de prefixo significa que você deseja que todos os URLs que começam (após a parte do caminho do contexto) com um determinado valor sejam passados para este servlet. Essa entrada pode ter a seguinte aparência:
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>/do/*</url-pattern>
</servlet-mapping>
o que significa que um URI de solicitação para corresponder ao /logon
caminho descrito anteriormente pode ter a seguinte aparência:
http://www.mycompany.com/myapplication/do/logon
onde /myapplication
é o caminho de contexto sob o qual seu aplicativo é implantado.
O mapeamento de extensão, por outro lado, corresponde os URIs de solicitação ao servlet de ação com base no fato de que o URI termina com um período seguido por um conjunto definido de caracteres. Por exemplo, o servlet de processamento JSP é mapeado para o *.jsp
padrão para que seja chamado para processar cada página JSP solicitada. Para usar a *.do
extensão (que implica "fazer algo") , a entrada de mapeamento seria assim:
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
e um URI de solicitação para corresponder ao
/logon
caminho descrito anteriormente pode ter a seguinte aparência:
http://www.mycompany.com/myapplication/logon.do
AVISO - A estrutura não funcionará corretamente se você definir mais de um <servlet-mapping>
elemento para o servlet do controlador.
AVISO - Se você estiver usando o novo suporte do módulo desde a versão 1.1, você deve estar ciente de que apenas o mapeamento de extensão é compatível.