116 votes

Pourquoi Java webapps utilisation .faire de l'extension? D'où vient-elle?

Je me suis toujours demandé pourquoi de nombreux développeurs Java à utiliser ".faire" comme la prolongation de leur web-contrôleur (MVC) des ressources. Exemple: http://example.com/register.do

Il n'a pas même l'air d'être un cadre spécifique, comme je l'ai vu dans Spring MVC et les jambes de suspension des projets. D'où vient cette ".faire" l'extension de la pratique viennent. Pourquoi était-ce fait au lieu de les pas d'extension? Je me sens comme j'ai raté le monde Java mémo sur cette.

Personnellement, je préfère sans extension.

77voto

Pascal Thivent Points 295221

À ma connaissance, cette convention a été propagé par Struts1. Le guide de l'utilisateur il met comme ceci:

5.4.2 Configurer l'ActionServlet Cartographie

Remarque: Le contenu de cette section n'est pas spécifique à jambes de force. L' configuration de la servlet mappages défini dans la Servlet Java Spécification. Cette section décrit le moyen le plus commun de la configuration d'un application.

Il y a deux méthodes courantes de définition de l'Url qui sera traitées par le contrôleur de servlet -- mise en correspondance de préfixe et de l'extension de correspondance. Une cartographie appropriée entrée pour chaque approche sera décrit ci-dessous.

Mise en correspondance de préfixe signifie que vous voulez toutes les Url qui commencent (d'après le contexte chemin de partie), avec une valeur particulière à être passé à cette servlet. Une telle entrée pourrait ressembler à ceci:

<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>/do/*</url-pattern>
</servlet-mapping>

ce qui signifie que l'URI de la requête à match de l' /logon chemin décrit plus tôt pourrait ressembler à ceci:

                http://www.mycompany.com/myapplication/do/logon

/myapplication est le contexte chemin d'accès en vertu de laquelle votre demande est déployé.

Extension de cartographie, d'autre part, correspond à la demande des Uri à l'action servlet basée sur le fait que l'URI se termine avec une période de suivi par un ensemble défini de caractères. Pour exemple, les JSP de traitement servlet est mappée à l' *.jsp de façon à ce que il est appelé à traiter chaque page JSP qui est demandée. Pour utiliser l' *.do extension (ce qui implique de "faire quelque chose"), la cartographie de l'entrée ressembler à ceci:

<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

et un URI de la demande pour correspondre à la /logon chemin décrit plus haut peut ressembler à ceci:

                http://www.mycompany.com/myapplication/logon.do

AVERTISSEMENT - Le cadre ne fonctionnera pas correctement si vous définissez plus qu'un <servlet-mapping>élément pour le contrôleur de servlet.

AVERTISSEMENT - Si vous utilisez le nouveau module de soutien depuis la version 1.1, vous doivent être conscients que seule extension la cartographie est pris en charge.

Et je pense que cette convention a été conservé (parfois à ne pas changer d'Url , même après le remplacement de Struts1, parfois simplement parce que les gens étaient très heureux avec elle).

9voto

leonm Points 4836

Il est de pratique courante de la carte de votre servlet, struts *.faire dans web.xml pour passer Url de la servlet, struts. Par exemple:

<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

Il n'y a vraiment pas de raison de l'exception de la convention pour cela. Si vous n'utilisez aucune extension dont vous aurez besoin pour faire de la magie pour gérer les images et autre contenu statique d'une manière qui n'est pas à votre sevlet. Souvent, cela se fait à un équilibreur de charge de façade serveur web.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X