2011-07-19 6 views
0

Ceci est une version plus spécifique de mon autre question. J'ai créé une applet qui devrait communiquer avec ma base de données MS Access. Cela fonctionne bien quand je l'exécute à travers un compilateur, mais quand j'intègre le fichier .class dans une page html et ouvre la page html, il s'exécute mais aucun des changements qu'il est censé apporter à la base de données n'arrive réellement et ne peut pas récupérer données de la base de données. Je vais finalement publier ce fichier html sur un réseau sécurisé. L'applet devrait communiquer directement avec la base de données sur l'ordinateur, sans servlets/sockets/etc (même si ce n'est pas une bonne pratique). Si un ordinateur différent accède à la page html, il devrait pouvoir exécuter l'applet et apporter des modifications à la base de données sur l'ordinateur hôte, mais il n'a pas besoin d'accéder à ses propres fichiers, car ils ne sont pas modifiés, seule la base de données sur l'ordinateur hôte est. Donc, je ne vois aucune raison d'en faire une applet signée, car cela permettra à l'applet d'apporter des modifications à n'importe quel ordinateur, pas seulement le sien. Je cours Vista donc l'outil de politique n'est pas disponible.Applet + MS Access

Remarque: le fichier html, le fichier de classe et le fichier source Java sont tous sur mon ordinateur dans le même dossier, et c'est ainsi qu'il restera. Le fichier html n'est pas encore publié, je l'ai créé moi-même pour tester l'applet.

+1

duplication possible de [Utilisation d'une applet intégrée à la page html pour communiquer avec la base de données] (http://stackoverflow.com/questions/6754117/using-an-applet-embedded-in-html-page-to-communicate- avec-base de données) –

+0

J'ai voté pour fermer cette question. Il serait préférable d'éditer la question originale avec des informations supplémentaires, si nécessaire. –

Répondre

-1

J'ai déjà essayé ce genre de chose auparavant. Je pense que votre problème réside dans la nature d'une applet.

Les applets sont téléchargés et exécutés par l'ordinateur client. Si la base de données à laquelle vous essayez d'accéder existe sur le serveur, le client n'a probablement pas accès à l'emplacement de la base de données sur le serveur. Et comme nous le savons tous, le code de la machine client n'est pas digne de confiance.

Il peut être plus facile de réécrire votre page en tant que servlet, car la servlet réside sur le serveur et a vraisemblablement accès à la base de données. Votre servlet peut alors envoyer html et recevoir des données de formulaire entre le client et le serveur.

Si votre cœur est défini sur un frontal de l'applet, vous pouvez renvoyer les messages http à une servlet qui exécutera ensuite les opérations de la base de données. Cette option serait beaucoup plus sécurisée et beaucoup plus facile à mettre en œuvre au niveau des permissions.

J'espère que cela aide, laissez-moi savoir si vous avez d'autres questions.

+0

Merci Erik. Mon cœur était fixé sur une applet, mais j'ai aussi regardé dans les servlets, car il est peut-être plus simple de réorganiser la structure de mon code. Le problème est maintenant que j'ai essayé d'importer javax.servlet. *, Mais DrJava prétend que ce paquet n'existe pas. En outre, j'avais l'impression que les servlets ne pouvaient pas être un frontal car ils n'avaient pas d'interface graphique. – joseph

+1

@MrTuesday -1 * "Je pense que votre problème réside dans la nature d'une applet ... le client n'a probablement pas accès à l'emplacement de la base de données sur le serveur." * Une applet en boîte de sable peut facilement son propre serveur (y compris à une base de données). Il y a tellement d'erreurs dans votre message que «vous n'avez même pas tort». * "laissez-moi savoir si vous avez d'autres questions." * S'il vous plaît en savoir plus sur les applets avant de fournir des réponses supplémentaires. –

+1

StackOverflow personnes ont tendance à être difficile dans leurs commentaires ... –