[JAVA] Inconvénients de la sélection des Struts1

Maintenant, cette information est vraiment cela, mais en 2019, Struts1 est-il toujours populaire auprès de certains vieillards? Parce que ça ressemble à ... C'est la sécurité, mais sous d'autres angles.

ActionForm, routage, etc.

Fonctionnalité

Paramètres tels que le routage par XML Il emballe les paramètres de demande dans un objet appelé ActionForm Si la portée est définie sur session, l'ActionForm contenant les paramètres de la demande sera compressé dans la session tel quel. Si le paramètre de requête est vide, il récupérera les données de la session. Le côté serveur ne sait pas s'il s'agit de GET ou POST. Dans tous les cas, traitez-le de la même manière.

Démérite

Il faut du temps pour écrire du XML (également appelé XML enfer). Si vous essayez de passer à une autre action (la propre classe de Struts1 qui hérite de HttpServlet), cela ressemble à des spaghettis. ActionForm n'est pas POJO. Cela dépend de la manière dont l'utilisateur l'utilise, mais parfois ActionForm est défini sur scope = session, toutes les variables utilisées dans JSP sont regroupées dans ActionForm et les éléments qui ne doivent pas nécessairement être des sessions sont regroupés dans la session. Globalisation des variables! Puisque Action est étroitement couplé à HttpServlet, il est difficile de tester avec JUnit. Pour des raisons de sécurité (comme CSRF), GET et POST doivent être distingués. En termes de conception, il est préférable d'incorporer GET et POST dans la conception. Par exemple, s'il s'agit d'une référence mais que POST, vous ne pouvez pas accéder à la page même si vous cliquez sur l'URL, ce qui affecte la convivialité.

Balise personnalisée JSP

Fonctionnalité

Cela semble être une idée qui ne connaît pas les balises HTML et qui ne connaît pas le frontal. Est-il possible de fonctionner comme un objet Java? ..

Démérite

En premier lieu, les balises personnalisées JSP ne peuvent pas recevoir d'attributs arbitraires, donc les attributs de données personnalisés HTML5 ne peuvent pas être écrits. L'inconvénient à bien des égards est que les balises HTML après évaluation de la JSP sont difficiles à imaginer à partir des balises personnalisées JSP (même si l'idée est que le frontal n'est pas imaginé ou conscient). Il y a aussi un problème éducatif, mais les nouveaux arrivants pensent à tort que JSP est interprété directement par le navigateur. Lorsque vous souhaitez utiliser le DOM à partir de JavaScript, vous pouvez avoir l'impression que le code source ne correspond pas à la balise personnalisée JSP. Par exemple, l'attribut de propriété d'une balise personnalisée JSP a un mot différent, tel que l'attribut de nom en HTML.

Varidata

Je ne sais pas grand chose parce que je ne l'ai pas utilisé, mais il semble que j'écris du XML.

Finalement…

Si possible, passez à un autre FW ...

Spring est populaire, mais s'il ne s'agit pas d'un développement à grande échelle, si vous souhaitez l'utiliser un peu différemment de la façon d'utiliser FW, ou si vous n'aimez pas le temps de démarrage lent, je pense que Spring ne convient pas. Dans un tel cas, si vous êtes limité à Java, le micro-framework suivant est recommandé.

jooby - do more! more easily!! Javalin - A lightweight Java and Kotlin web framework Spark Framework: An expressive web framework for Kotlin and Java

Recommended Posts

Inconvénients de la sélection des Struts1
Mémo d'organisation des rôles dans Struts