Exécuter du code java quand je clique sur le bouton HTML

Exécuter du code java quand je clique sur le bouton HTML - Java - Programmation

Marsh Posté le 20-08-2009 à 13:31:54    

Bonjour,
j'ai le soucis suivant:
Dans une page HTML, je souhaiterai que lorsque l'on appuie sur un bouton précis, une fonction java s'éxécute pour vérifier l'existence ou non d'un process précis sur le serveur unix, et selon le code retour de la fonction poursuivre le traitement HTML courant.  
En somme, je voudrais insérer un appel java dans du code JSP existant.
J'ai mis le code java dans une fonction javascript mais le code HTML généré est figé alors que je voudrais que l'appel soit dynamique.
Comment je peux faire cela ?
Merci

Reply

Marsh Posté le 20-08-2009 à 13:31:54   

Reply

Marsh Posté le 20-08-2009 à 13:57:01    

C'est le J2EE en fait ton souci non ?
Car c'est exactement son rôle : exécuter des fonctions sur le serveur et retourner la réponse.

Reply

Marsh Posté le 20-08-2009 à 14:05:19    

J'ignore le nom de mon soucis mais je sais qu'il existe.
Si tu as compris mon soucis aurais-tu une façon de le régler stp ?

Reply

Marsh Posté le 20-08-2009 à 14:07:15    

Ca fait 1 an que je n'ai pas fait de J2EE donc je ne sais plus. Mais il faut une servlet et t'appelles une de ses fonctions depuis ta JSP. Mais c'est le B.A.BA du J2EE donc regarde n'importe quel cours pour débutant dessus.

Reply

Marsh Posté le 23-08-2009 à 22:06:59    

C'est pas avec javascript que tu vas pouvoir faire ça.
Ton bouton html doit simplement appeler une servlet (via un formulaire html ou via ajax ou ce que tu veux) qui s'occupera de vérifier l'existence de ton process via la classe Runtime et l'utilitaire ps ou top ou autre.
Javascript te servira si tu veux faire ça sans changement de page (à l'ajax).
 
Du coup tu peux paramétrer via ton bouton (attribut value du input html) le critère de recherche du process sur ton serveur unix, en le récupérant dans ta servlet (objet HttpServletRequest) et en le passant à ps / top.


---------------
Always wear a camera!
Reply

Marsh Posté le 05-09-2009 à 21:10:50    

gillin a écrit :

En somme, je voudrais insérer un appel java dans du code JSP existant.
J'ai mis le code java dans une fonction javascript mais le code HTML généré est figé alors que je voudrais que l'appel soit dynamique.


 
Je pense que tu mélanges tout. Si tu utilises une page JSP et que tu veux mettre l'appel Java dans la JSP, ça n'a rien avoir avec le code Javascript qui s'exécute uniquement du côté client; le Javascript n'a rien avoir avec le Java et on ne peut pas mettre de code Java dans du Javascript.
 
Il faut qu'en appuyant sur le bouton, ta page HTML poste une requête via un formulaire, requête que tu identifies alors dans le code Java d'une page JSP ou d'une Servlet, et ensuite tu lances l'action côté serveur.
 
Éventuellement tu peux également faire qu'un clic sur le bouton, au lieu d'envoyer un formulaire, lance une requête XMLHttpRequest (ce qu'on appelle une requête "Ajax" et là c'est effectivement du Javascript qui sert uniquement à faire une requête HTTP sur le serveur), ce qui permet d'éviter de recharger la page. La requête HTTP doit communiquer elle aussi avec une JSP ou une Servlet côté serveur qui va traiter la demande et lancer l'action.

Reply

Marsh Posté le 07-09-2009 à 11:06:28    

Merci de déterrer ce post. Il mélange effectivement tout, mais pour ton info, on peut mettre des appels java dans du javascript, au moins sous firefox:
 

Code :
  1. <html>
  2.  <head>
  3.  <title></title>
  4.    <script type="text/javascript">
  5.      function alertDate() {
  6.        alert(new java.text.SimpleDateFormat("yyyy.MM.dd" ).format(new java.util.Date()));
  7.      }
  8.    </script>
  9.    
  10.  </head>
  11.  <body>
  12.    <a href="javascript:alertDate()">Appel Java via javascript</a>
  13.  </body>
  14. </html>

Reply

Marsh Posté le 08-09-2009 à 04:58:47    

Effectivement, on peut dans certains navigateurs appeler des fonctions Java du JRE à partir du code Javascript. Ton code d'exemple ne fonctionnera que dans Firefox et Opera à ma connaissance. Bien sûr pour cela il faut qu'un JRE soit installé sur la machine et accessible au navigateur web.
 
Mais, nuance, il s'agit d'appeler des fonctions Java avec du code Javascript et non mélanger du code Java et du Javascript. Ton exemple n'est pas du code Java avec la syntaxe Java, cela reste des simples appels Javascript, vers des objets et fonctions Java, certes, mais en langage Javascript.
 
Ce qui veut dire qu'avec la syntaxe Javascript autorisée dans une page web tu ne peux pas utiliser les fonctions propres au langage Java, par exemple:
- Ecrire une déclaration de classe ou d'interface
- Utiliser l'opérateur for amélioré pour les itérations: for(MonType o : collection) {...}
- Utiliser les types génériques
- Considérer une chaîne de caractères littérale comme un objet java: if("toto".equals(b)) {...}
- Déclarer des variables typées: int a, boolean b, ... Javascript n'est pas typé.
- Rendre certaines variables et fonctions publiques et d'autres privées
- Etc., etc.
 
En bref on ne peut pas mettre de code Java dans une page web, seulement des appels de code Java via la syntaxe Javascript. Et encore cela ne fonctionne pas dans tous les navigateurs web.

Message cité 1 fois
Message édité par cbeyls le 08-09-2009 à 05:01:27
Reply

Marsh Posté le 08-09-2009 à 09:55:57    

cbeyls a écrit :

Mais, nuance, il s'agit d'appeler des fonctions Java avec du code Javascript et non mélanger du code Java et du Javascript. Ton exemple n'est pas du code Java avec la syntaxe Java, cela reste des simples appels Javascript, vers des objets et fonctions Java, certes, mais en langage Javascript.


ya pas de nuance. c'est exactement ce que j'ai dit: "on peut mettre des appels java dans du javascript". je n'ai jamais dit qu'on pouvait mélanger les 2.


Message édité par pataluc le 08-09-2009 à 09:57:16
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed