Parmi les nombreux sites Internet présents sur Internet, les sites dynamiques basés sur des bases de données Web sont largement utilisés. Un site Web dynamique basé sur une base de données de réseau Web se compose d'un navigateur Web comme interface client, d'un serveur de base de données pour le stockage des informations et d'un serveur d'applications Web qui connecte les deux. La technologie CGI d'origine pour développer des sites Web dynamiques a été progressivement remplacée par les applets Java, les contrôles ActiveX, DHTML et JavaScript à mesure que la technologie client des applications Web continue de se développer. Ces technologies ont grandement amélioré l'interface utilisateur, mais lorsqu'ils ont essayé d'effectuer un travail en profondeur, ils ont commencé à rencontrer des problèmes tels qu'une incompatibilité du navigateur client, des serveurs surchargés, un accès lent et des problèmes de sécurité. La technologie JSP est une clé en or pour résoudre ces problèmes. Cet article aborde principalement certains problèmes techniques liés au processus d'utilisation de la technologie JSP pour créer des sites Web dynamiques.
Technologie JSP
JSP est une technologie de développement Web basée sur Java Servlet et l'ensemble du système Java. Cette technologie peut être utilisée pour créer des sites Web dynamiques avancés, sûrs, rapides et multiplateformes. L'ajout de fragments de programme Java et de balises JSP aux fichiers HTML de pages Web traditionnelles forme une page Web JSP. Lorsque le serveur Web reçoit une demande d'accès à une page Web JSP, il exécute d'abord le fragment de programme puis renvoie le résultat de l'exécution au client au format HTML. Les fragments de programme peuvent faire fonctionner des bases de données, rediriger des pages Web, envoyer des e-mails, etc. C'est la fonctionnalité nécessaire pour créer un site Web dynamique. Toutes les opérations du programme sont exécutées côté serveur et seuls les résultats sont envoyés au client sur le réseau, avec des exigences très faibles sur le navigateur du client. Comme le montre la figure 1, lorsque l'utilisateur se connecte au site Web JSP, il demande une page Web et la page JSP répond seule à la demande, convertit la demande de l'utilisateur pour la page Web en une demande de données, traite la demande via JavaBean et encapsule les données renvoyées dans une page HTML pour les renvoyer aux utilisateurs.
JSP présente de nombreux avantages :
1. Écrivez le programme une seule fois et exécutez-le n'importe où. Lors de la conception de JSP, l’indépendance de la plateforme applicative a été pleinement prise en compte. S'appuyant sur la portabilité de Java, JSP est pris en charge par de nombreuses plates-formes d'exploitation populaires et peut être exécuté sur des serveurs tels qu'Apache, NetScape et IIS.
2. Exécution rapide. La page JSP ne doit être compilée qu'une seule fois et convertie en code octet Java, puis réside dans la mémoire du serveur, accélérant ainsi la réponse à la page JSP. Si vous ne tenez pas compte du temps nécessaire pour compiler la page JSP pour la première fois, la vitesse de réponse de JSP est beaucoup plus rapide que celle d'ASP.
3. Avantages de Java. La technologie JSP utilise le langage Java comme langage de script. La technologie Java multiplateforme, mature, robuste et facilement extensible facilite et simplifie le travail des développeurs sous d'autres aspects. Lorsque le système Windows est suspecté de planter, Java peut efficacement empêcher le système de planter. Le langage Java excelle dans la gestion de la mémoire en fournissant des méthodes permettant d'éviter les fuites de mémoire. De plus, JSP fournit un mécanisme de gestion des événements inattendus plus robuste pour les applications, permettant ainsi de tirer pleinement parti des avantages de Java.
Difficultés techniques JSP
1. Se connecter à la base de données
La connexion à la base de données est la partie la plus importante d'un site Web dynamique. La technologie ODBC ou JDBC peut être utilisée lors de la connexion à la base de données principale. Bien qu'ODBC soit une option en tant que moyen traditionnel de connexion à la base de données, ODBC présente les défauts fatals suivants, le rendant incompétent pour les requêtes JSP :
(1) ODBC est une API implémentée en langage C appelant un programme C local à partir d'un programme Java. cela entraînera une série de problèmes similaires à la sécurité, à l’intégrité et à la robustesse.
(2) Deuxièmement, une implémentation complètement précise d'ODBC du code C ODBC vers la traduction de l'API Java ne sera pas satisfaisante, car il n'y a pas de pointeurs en Java et ODBC utilise de nombreux pointeurs, y compris le pointeur nul extrêmement sujet aux erreurs "void " *".
(3) Compte tenu de la portabilité de la plate-forme, l'utilisation d'ODBC dans le développement de programmes JSP aura des effets négatifs, rendant le code impropre à la portabilité.
Afin de faciliter la transplantation du programme tout en garantissant sécurité, intégrité et robustesse, il est plus approprié d'utiliser JDBC pour se connecter à la base de données. JDBC est une API Java qui peut être utilisée pour exécuter des instructions SQL. Elle se compose de certaines classes et interfaces écrites en langage Java, permettant aux développeurs d'écrire des applications de base de données complètes en langage Java pur. En utilisant JDBC, les instructions SQL peuvent être facilement transmises à presque toutes les bases de données. En d'autres termes, vous n'avez pas besoin d'écrire un programme pour accéder à Sybase, un autre programme pour accéder à Oracle et un autre programme pour accéder à SQL Server de Microsoft. Les programmes écrits avec JDBC peuvent transmettre automatiquement des instructions SQL au système de gestion de base de données correspondant.
Lorsqu'un programme de base de données locale utilise une base de données telle que Microsoft Access, le pont JDBC-ODBC développé par Sun peut être utilisé. En empruntant cette technologie, un programme JSP peut accéder à une base de données avec un pilote ODBC. Cela conserve non seulement les avantages de JDBC, mais permet également d'utiliser la source de données ODBC fournie par Microsoft pour se connecter à Access. Quel que soit le type de base de données de l'autre partie, tant qu'il existe une interface ODBC, vous pouvez directement utiliser le pont JDBC-ODBC pour vous connecter à la base de données sans modifier le code du programme correspondant en raison de modifications dans la base de données principale, obtenir une séparation parfaite entre la couche application et la couche base de données. Si vous devez remplacer la base de données principale par MySQL, il vous suffit d'installer le pilote MySQL dans la source de données ODBC et vous pouvez utiliser directement la base de données MySQL.
2. Lors de la mise en œuvre d'un site Web avec des composants intégrés
, en raison de besoins objectifs, afin de distinguer facilement les utilisateurs du réseau local des utilisateurs distants et de fournir les autorisations correspondantes, le composant intégré Request peut être utilisé pour capturer chaque connexion au serveur. L'adresse IP de l'utilisateur est comparée et les autorisations correspondantes sont accordées. De cette manière, les utilisateurs de ce réseau local peuvent utiliser toutes les ressources publiques et non publiques du site Web. La méthode existante peut également être améliorée en saisissant diverses adresses IP dans la base de données et en accordant différentes autorisations à différentes adresses IP pour contrôler complètement l'utilisation des ressources du site Web par l'utilisateur.
La maintenance de l’état de session est un problème auquel les développeurs d’applications Web doivent faire face. Afin de savoir si l'utilisateur est toujours en ligne, le composant Session intégré est utilisé. En attribuant à chaque utilisateur connecté une variable de session, les ressources utilisées par l'utilisateur peuvent être fermées après que l'utilisateur a quitté anormalement le site Web, économisant ainsi. mémoire et améliorer les performances du serveur.
La classe Cookie est également fournie dans JSP et son constructeur possède deux paramètres, représentant le nom et la valeur du Cookie. La classe Cookie fournit diverses méthodes pour définir les attributs du Cookie. Par exemple, la méthode setMaxAge peut être utilisée pour définir la durée de vie du Cookie. Si le temps de survie est une valeur négative, cela signifie que le navigateur ferme le cookie et disparaît ; si le temps de survie est 0, cela signifie que le cookie est supprimé ; si le temps de survie est un nombre positif, cela signifie combien de secondes il a duré ; le cookie existe. Les cookies peuvent être utilisés pour enregistrer temporairement le compte et le mot de passe de l'utilisateur, et JSP peut les lire à tout moment pour vérifier la légitimité de l'utilisateur. L'état de navigation de l'utilisateur peut être enregistré dans un cookie, et la prochaine fois que l'utilisateur visitera la page Web, le JSP affichera une page personnalisée au navigateur.
3. Convertir le codage Unicode.
Au cours du processus de débogage de nombreuses pages JSP, des problèmes causés par la conversion du codage des caractères chinois et du codage Unicode ont été rencontrés. Par exemple, les caractères chinois de la page JSP affichés dans le navigateur sont tous tronqués. la page JSP ne peut pas être affichée normalement. Les caractères chinois, JSP ne peut pas recevoir les caractères chinois soumis dans le formulaire, la lecture et l'écriture de la base de données JSP ne peuvent pas obtenir un contenu correct, etc. En effet, la plupart du traitement des caractères de base des logiciels aux caractéristiques internationales est basé sur Unicode. Lorsque le logiciel est en cours d'exécution, il est basé sur À ce moment-là, le paramètre « Locale/Lang/Codepage » a déterminé les paramètres de codage de caractères locaux correspondants et a traité les caractères locaux en conséquence. Par conséquent, une conversion mutuelle entre Unicode et les jeux de caractères locaux doit être effectuée. être obtenus au cours du processus de traitement, et même deux caractères locaux différents en utilisant Unicode comme conversion intermédiaire entre les jeux de caractères. Cette méthode est encore étendue dans l'environnement réseau, et toute information de caractère aux deux extrémités du réseau doit également être convertie en contenu acceptable en fonction des paramètres du jeu de caractères.
Étant donné que le jeu de caractères par défaut d'IE est GB2312, le jeu de caractères par défaut de Windows est GBK et le jeu de caractères par défaut de Java est Unicode. Par conséquent, sans certaine conversion, la page obtenue à partir de GBK ou Unicode affichée directement sur le jeu de caractères GB2312 sera affichée. être tronqué. Le langage Java utilise Unicode pour traiter les caractères, mais d'un autre point de vue, les caractères non Unicode peuvent également être utilisés dans les programmes Java. L'important est de s'assurer que les informations sur les caractères chinois à l'entrée et à la sortie du programme ne sont pas déformées. Si ISO-8859-1 est entièrement utilisé pour traiter les caractères chinois, des résultats corrects peuvent être obtenus. Après la conversion et l'affichage forcé du jeu de caractères de la page Web dans le jeu de caractères GB2312, les caractères chinois peuvent être affichés normalement.