2010-10-07 3 views
3

Quelqu'un peut-il me dire le scénario dans lequel je devrais étendre ActionServlet classe et RequestProcessor? J'ai lu dans la documentation de Struts que cela peut être fait, mais je ne comprends pas dans quelle situation.Extension Struts ActionServlet et RequestProcessor

Cordialement,
Aashutosh

Répondre

1

Le ActionServlet et RequestDispatcher sont les principaux acteurs dans le cadre Struts. ActionServlet traite toutes les demandes faites à votre application Struts et délègue le "gros problème" de gestion de la requête à un objet RequestProcessor.

Dans une application Struts, vos opérations sont généralement exécutées en créant des classes Action, chaque action prenant soin de ses propres éléments. Parfois, bien que vous souhaitiez effectuer des opérations communes pour toutes les actions comme la journalisation ou la sécurité et que vous ne voulez pas qu'elles soient effectuées dans chaque classe Action, n'est-ce pas? Cela signifie beaucoup de duplication de code, donc vous devez placer ce comportement commun quelque part au-dessus des actions individuelles.

ActionServlet et RequestProcessors sont de bons candidats pour ce genre de choses. Bien sûr, vous pouvez écrire un filtre, mais ActionServlet et RequestProcessors contiennent déjà du code lié à votre framework, il ne sert donc à rien de commencer à partir de rien quand vous pouvez réutiliser ce qui existe déjà et l'étendre. Le sujet de l'extension est typiquement le RequestProcessor (plus que le ActionServlet) donc lisez the JavaDoc of the RequestProcessor et vous verrez qu'il y a beaucoup de méthodes utiles pour étendre et ajouter des hooks aux étapes importantes de l'exécution. Pour donner un exemple concret: le Tiles Plugin utilise un extension of the RequestProcessor.