Principes de base de Struct2 (deux): flux de travail et modèles de conception

1. Le processus
Insérez la description de l'image ici
de struct2 2. Le framework strut2 est à peu près divisé en trois parties: le contrôleur principal , le contrôleur métier Action et les composants de logique métier d'entreprise implémentés par l' utilisateur .
       
       1. Le contrôleur principal FilterDispatcher est la base du framework Struts 2, y compris le flux de contrôle et le mécanisme de traitement dans le framework.

       2. Les composants Action et logique métier du contrôleur métier doivent être implémentés par les utilisateurs eux-mêmes.

       3. Lors du développement des composants d'action et de logique métier, les utilisateurs doivent également écrire des fichiers de configuration associés pour le contrôleur principal FilterDispatcher à utiliser.

3. Le flux de travail de Struts 2 est plus simple que celui de Struts 1 et est fondamentalement le même que celui du framework WebWork.

So Struts 2 est une version améliorée de WebWork. Le processus succinct de base est le suivant:

       1. Le client lance une requête au conteneur Servlet;

       2. La demande passe par une série de filtres (Filter)

(Il existe un filtre facultatif appelé ActionContextCleanUp parmi ces filtres. Ce filtre est très utile pour l'intégration de Struts2 et d'autres frameworks, tels que SiteMesh
Plugin)

       3. Ensuite, FilterDispatcher est appelé et FilterDispatcher demande à ActionMapper de décider s'il doit appeler une action

       4. Si ActionMapper décide d'appeler une Action, FilterDispatcher remettra le traitement de la requête à ActionProxy

       5. ActionProxy demande au fichier de configuration du framework via ConfigurationManager de trouver la classe Action qui doit être appelée

       6. ActionProxy crée une instance d'ActionInvocation.

       7. L'instance ActionInvocation est appelée à l'aide du modèle de dénomination Avant et après le processus d'appel de l'action, l'intercepteur associé (Intercepteur) est appelé.

       8. Une fois l'action exécutée, ActionInvocation est responsable de la recherche du résultat de retour correspondant selon la configuration dans struts.xml. Le résultat renvoyé est généralement (mais pas toujours, il peut s'agir d'une autre chaîne d'action) un modèle JSP ou FreeMarker qui doit être représenté. Dans le processus de présentation, vous pouvez utiliser les balises héritées dans le framework Struts2. ActionMapper doit être impliqué dans ce processus

       9. La réponse est renvoyée via le filtre que nous avons configuré dans web.xml

       10. Si ActionContextCleanUp est actuellement utilisé, FilterDispatecher ne nettoiera pas sreadlocal
ActionContext, si ActionContextCleanUp n'est pas utilisé, il nettoiera les sreadlocals.

2. Parlons du
       mode MVC du mode de conception Struts2 : ActionServler sera chargé et initialisé au démarrage de l'application Web. Lorsque l'utilisateur soumet le formulaire, un objet ActionForm configuré est créé et rempli avec les données correspondantes du formulaire. ActionServler détermine si la validation du formulaire est requise en fonction des paramètres configurés du fichier Struts-config.xml et appelle la commande Validate ( ) d'ActionForm si nécessaire. Après vérification, sélectionnez l'Action à laquelle envoyer la demande. Si l'Action n'existe pas, l'ActionServlet créera d'abord cet objet, puis appellera la méthode execute () de l'Action. Execute () obtient des données de l'objet ActionForm, complète la logique métier et renvoie un objet ActionForward. L'ActionServlet transmet ensuite la demande client au composant jsp spécifié par l'objet ActionForward et le jsp spécifié par l'objet ActionForward génère

Créez une page Web dynamique et renvoyez-la au client.

3. La différence entre l'intercepteur et le filtre
1. L'intercepteur est basé sur le mécanisme de réflexion Java, tandis que le filtre est basé sur le rappel de fonction.

2. Le filtre dépend du conteneur de servlet et l'intercepteur ne dépend pas du conteneur de servlet.

3. Les intercepteurs ne peuvent travailler que sur les demandes d'action, tandis que les filtres peuvent fonctionner sur presque toutes les demandes.

4. L'intercepteur peut accéder aux objets dans le contexte Action et la pile de valeurs, mais le filtre ne le peut pas.

5. Dans le cycle de vie de l'action, l'intercepteur peut être appelé plusieurs fois, tandis que le filtre ne peut être appelé qu'une seule fois lorsque le conteneur est initialisé.

4. Pourquoi utiliser Struts2
Struts2 est un
framework open source Java Web très puissant , un framework Web MVC basé sur POJO Action. Il est basé sur les frameworks Webwork et XWork de l'année, a hérité de ses avantages et apporté des améliorations considérables.

1.Struts2 est basé sur l'architecture MVC, la structure du cadre est claire, le processus de développement est clair en un coup d'œil et les développeurs peuvent bien contrôler le processus de développement.

2 Utilisez OGNL pour le transfert de paramètres.

OGNL fournit un moyen simple d'accéder aux données dans diverses étendues dans Struts 2. Vous pouvez facilement obtenir les données dans Requête, Attribut, Application, Session et Paramètres. Simplifie considérablement la quantité de code pour les développeurs pour obtenir ces données.

3 intercepteurs puissants

L'intercepteur de Struts2 est un AOP de niveau Action. De nombreuses fonctionnalités de Struts2 sont implémentées via des intercepteurs, telles que la gestion des exceptions, le téléchargement de fichiers et la vérification. L'intercepteur est configurable et réutilisable, et certaines fonctions générales telles que la vérification de connexion, la vérification d'autorisation, etc. peuvent être placées dans l'intercepteur pour compléter certaines des fonctions les plus courantes dans les projets Web Java. Dans un projet Web que j'ai implémenté, l'intercepteur de Struts2 a été utilisé pour compléter la fonction de vérification d'autorisation dans le système.

4 facile à tester

Les actions Struts2 sont de simples POJO, vous pouvez donc facilement écrire des cas de test pour les actions Struts2, ce qui facilite grandement le test des projets Web 5Java.

Mécanisme de plug-in facile à étendre Ajouter des extensions dans Struts2 est une chose agréable et facile. Il vous suffit de mettre le paquet Jar dont vous avez besoin dans le dossier WEB-INF / lib et de faire quelques réglages simples dans struts.xml.

6 Gestion modulaire

Struts2 a pris la modularité comme l'idée de base de l'architecture. Il existe trois façons de modulariser l'application: diviser les informations de configuration en plusieurs fichiers et créer des modules d'application autonomes sous forme de plug-ins pour créer de nouvelles fonctionnalités de structure. De nouvelles fonctions qui ne le sont pas liés à une application spécifique sont organisés en plug-ins à ajouter à plusieurs applications.

7 Résultats mondiaux et exceptions déclaratives

Ajoutez un résultat global à l'application et gérez les exceptions dans le fichier de configuration, de sorte que lorsqu'une exception spécifiée se produit pendant le traitement, vous pouvez accéder à une page spécifique.

Ses nombreux avantages sont favorisés par de nombreuses personnes.Il se combine avec spring et Hibernate pour former le framework ssh le plus populaire.Bien sûr, chaque entreprise a besoin de son propre framework, qui est également un produit de la mutation ssh.

5. Quels sont les avantages de Struts2?
1) L'application de Struts2 dans la conception de logiciels peut être indépendante de l'API Servlet et de l'API Struts. Cette conception de Struts2 est une conception non intrusive;

2) Interceptor, qui implémente des fonctions telles que l'injection d'interception de paramètres;

3) convertisseur de type, qui peut convertir des paramètres de demande spéciaux en types requis;

4) Technologies de couches de présentation multiples, telles que: JSP, freeMarker, Velocity, etc.

5) La vérification d'entrée de Struts2 peut vérifier une méthode spécifiée;

6) Fournit la mise en œuvre de la gestion internationale des fichiers de ressources dans la portée globale, la portée du package et la portée de l'action

6. Comment démarre struts2?
Le framework struts2 est démarré via Filter, à savoir StrutsPrepareAndExecuteFilter, ce filtre est le filtre principal de struts2;

La méthode init () de StrutsPrepareAndExecuteFilter lira le fichier de configuration par défaut struts.xml dans le chemin de classe pour terminer l'opération d'initialisation. Une fois que struts2 a lu le contenu de struts.xml, il encapsule le contenu dans un objet javabean, puis le stocke dans la mémoire. À l'avenir, chaque traitement de requête de l'utilisateur utilisera les données de la mémoire au lieu de lire le struts.xml fichier pour chaque demande.

7. Quel est le contrôleur principal du framework struts2? Qu'est ce que ça fait?
1) Le contrôleur principal du framework Struts2 est StrutsPrepareAndExecuteFilter.

2) Fonction:

Responsable de l'interception de toutes les demandes des utilisateurs spécifiées par / *, lorsque la demande de l'utilisateur arrive, le filtre filtrera la demande de l'utilisateur. Par défaut, si le chemin demandé par l'utilisateur

Sans suffixe ou se terminant par .action, la requête sera transférée vers le framework struts2 pour traitement, sinon le framework struts2 ignorera le traitement de la requête.

Le suffixe d'action peut être modifié par la constante "struts.action.extension", telle que:

Si l'utilisateur doit spécifier plusieurs suffixes de requête, les multiples suffixes sont séparés par des virgules anglaises (,).

8. Quelle est la séquence de chargement des fichiers de configuration struts2?
struts.xml ——> struts.properties

Les constantes peuvent être configurées dans struts.xml ou struts.properties. Si la même constante est configurée dans plusieurs fichiers, la valeur de constante configurée dans ce dernier fichier remplacera la valeur de constante configurée dans le fichier précédent.

Le rôle du fichier struts.xml: notifier au framework Struts2 de charger la ressource Action correspondante

9. Comment modifier la constante struts2?
Les constantes peuvent être configurées dans struts.xml ou struts.properties, les deux méthodes de configuration sont les suivantes:

1) Configurez les constantes dans le fichier struts.xml

2) Configurez les constantes dans struts.properties (le fichier struts.properties est placé sous src):

struts.action.extension = faire

10. Comment struts2 accède-t-il aux trois objets de domaine de HttpServletRequest, HttpSession et ServletContext?
Première option:

HttpServletRequest
request = ServletActionContext.getRequest ();


Réponse HttpServletResponse = ServletActionContext.getResponse ();

Session HttpSession = request.getSession ();

ServletContext
servletContext = ServletActionContext.getServletContext ();

Option II:

Je suppose que tu aimes

Origine blog.csdn.net/qq_43479839/article/details/92994021
conseillé
Classement