2011-05-11 8 views
2

J'ai un Applet et quand j'utilise le getCodeBase() je reçois une simple URL qui ressemble à ceci:Les différences entre les deux formats d'URL dans les applets

http://localhost:8080/x/y/z/ 

Je peux utiliser d'autres Applet méthodes comme getImage(getCodeBase(), "images/img.gif") pour obtenir des ressources (comme une image dans ce cas).

Cependant, si j'utilise Applet.class.getResource("/images/img.gif") je vois les URL qui ressemblent à ceci:

jar:http://localhost:8080/x/y/z/a/b/lib/myjar.jar!/images/img.gif 

est une façon meilleure que l'autre? Quels sont les avantages et les inconvénients de chacun?

Répondre

3

Ce dernier est relatif au chemin de classe. Cela signifie que img.gif se trouve dans le fichier jar (et se trouve sur le chemin de classe de l'applet jvm)

Le premier est un URL normal, et signifie que le fichier gif est présent sur le serveur à l'emplacement donné. Ils sont utilisés dans différents cas, donc il n'y a pas d'option "bonne ou mauvaise" Une chose à considérer est: si vous avez seulement besoin de l'image dans l'applet, vous devriez la placer dans le pot plutôt que sur le serveur. (Mais ce n'est pas universel)

+0

OK alors si le client télécharge le pot alors ils n'ont pas besoin de retourner au serveur pour obtenir des ressources, mais une URL normale devrait retourner au serveur. Donc, quand un navigateur rencontre une applet, est-ce qu'il charge tout le jar dans lequel l'applet est ou juste les classes dont il a besoin quand il en a besoin? – BigMac66

+0

il télécharge le pot entier je pense. – Bozho

Questions connexes