Précédemment, nous avons mentionné que les programmes JSP sont des modules et disposent de puissantes fonctions de requête de présentation. Établir un accès parfait à la base de données est un processus difficile, et l'interface JDBC peut bien mener à bien ce processus. Cependant, le code JDBC intégré au code JSP, tout comme les commandes SQL intégrées à JDBC, peut exploiter pleinement les capacités de JSP pour créer une API propre et simple pour les clients. Afin d'atteindre cet objectif, nous pouvons envisager d'utiliser des opérations JSP pour établir des composants d'interface de base de données.
Le modèle de conception JSP parfait est Model-View-Controller (MVC). Le système traditionnel à trois niveaux est le suivant : le modèle est destiné à la logique et aux données du programme ; la vue est destinée à la visualisation et le contrôleur est destiné au traitement des demandes ; Suivant ce modèle, un programme JSP contient des pages pour chaque "ligne" d'une "boîte de dialogue" client-serveur. Dans un programme typique, vous pouvez voir une page de requête, une page de validation, une page d'insertion de base de données, une page de mise à jour de base de données, etc.
Dans l'article précédent, nous avons expliqué comment intégrer JDBC dans chaque page pour garantir que la structure du programme est plus raisonnable. Cependant, la création de commandes SQL exécutables, ainsi que de variables transmises via les commandes JDBC, peut également augmenter la complexité du programme.
Opérations JSP conçues par JDBC
Une autre approche des opérations de base de données JSP consiste à créer un ensemble d'opérations pour la base de données sans utiliser JDBC. En utilisant cette approche, vous pouvez obtenir deux avantages : premièrement, vous pouvez éliminer le besoin d'utiliser JDBC, ce qui simplifie beaucoup de travail ; deuxièmement, votre conception et votre organisation de code sont plus raisonnables (comme la lisibilité, la flexibilité, les performances et la maintenabilité).
Vous avez encore besoin de quelques pilotes, mais vous simplifiez d'abord ce qui précède. Les opérations dans un programme JSP sont des blocs logiques qui sont généralement écrits et utilisés par d'autres développeurs de programmes JSP, mais vous pouvez les utiliser comme sous-programmes. L'importance de l'utilisation des opérations JSP est de standardiser certaines fonctions et de minimiser la quantité de code Java intégré dans JSP.
JSP fournit un ensemble de classes d'extension standard. Grâce à ces classes, vous pouvez définir une opération via un gestionnaire de balises. Il existe deux interfaces Java définies par JSP : l'interface Tag et l'interface BodyTag, qui sont exécutées respectivement par la classe TagSupport et la classe BodyTagSupport.
Vous pouvez créer une bibliothèque de balises à des fins JSP générales et vous pouvez également implémenter des gestionnaires de balises pour étendre la prise en charge des classes. Voici les étapes pour mettre en œuvre ces processus.
Tout d’abord, exécutez une classe de gestionnaire de balises :
packagecom.myactions ;
(les déclarations d'importation vont ici)
la classe publique MyActionTag étend TagSupport {
...
}
Ensuite, compilez ce code et placez le fichier de classe dans la bibliothèque de classes du programme. Ensuite, vous aurez besoin d'un fichier TLD (Tag Library Descriptor), qui est un fichier XML qui correspond au nom de votre action et à la classe du gestionnaire de balises correspondant.
<balise>
<nom>MonAction</nom>
<tagclass>com.myactions.MyActionTag</tagclass>
<bodycontent> (peu importe) </bodycontent>
<attribut>mesDonnées</attribute>
</tag>
</tag>
Logiciels d'évaluation associés
Supposons que vous ayez créé une action nommée MyAction, qui est un TLD correspondant à la classe com.myactions.MyActionTag. Le fichier TLD doit se trouver dans le chemin des TLD du programme.
Lorsque vous appelez une opération à partir d'une page JSP, le TLD indique au JSP la classe appropriée pour utiliser l'opération. Cela apporte une grande commodité et ne nécessite qu’une petite quantité de code.
Mais où introduire SQL ? Tout d’abord, vous devez établir un accès à la base de données avec des capacités de connexion. Vous pouvez le faire à l'aide de l'interface javax, disponible dans la boîte à outils facultative JDBC 2.0. La classe javax.sql.DataSource de JDBC 2.0 fournit la connexion dont vous avez besoin.
Où se trouve SQL à ce stade ? C'est dans le haricot. Vous pouvez utiliser JDBCcreateStatement et PreparedStatement pour créer une méthode dans un bean. Faites de cette méthode un vecteur public et transmettez correctement vos instructions SQL à cette méthode.
Résumé Votre bean de base de données exécute une instruction SQL intégrée dans le corps de l'action. Vous pouvez transmettre une instruction à l'instruction SQL ou l'utiliser pour effectuer une pré-opération. Vous pouvez effectuer vos actions via le gestionnaire de balises. Étant donné que JDBC est intégré au code de la bibliothèque, vous ne pourrez pas l'utiliser explicitement dans un programme JSP.
À première vue, cette approche peut sembler plus complexe que le SQL intégré dans JDBC et le JDBC intégré dans JSP, mais puisque vous créez des opérations SQL et les stockez dans un TLD, vous ne devez les effectuer qu'une seule fois, dans tous les programmes JSP auxquels vous pouvez accéder. ces opérations. C'est l'avantage de cette approche.
La prochaine fois, nous parlerons du transfert de données entre les pages et les sessions JSP.