Précédent   Forum du club des développeurs et IT Pro > Java > Développement Web en Java > Servlets/JSP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 19/12/2012, 23h47   #1
pagoda
Invité de passage
 
Inscription : janvier 2008
Messages : 16
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 16
Points : 1
Points : 1
Par défaut Problème intégration d'un fichier js dans un fichier jsp

Bonjour,

Je vient de débuter dans le développement J2E et je souhaite inclure un fichier Javascript dans un fichier jsp de mon projet.
Les deux fichiers sont dans le même dossier et le fichier js contient une fonction ultra basique (alert("test").

le code source de ma page JSP est le suivant

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
<%@ page pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Inscription</title>
 
<%@include file="/WEB-INF/style/style.jsp"%>
<script src="gestionInscription.js" type="text/javascript"></script>
</head>
 
<body>
 
<jsp:include page="/WEB-INF/menuGauche/MenuGauche.jsp"/>
<jsp:include page="/WEB-INF/menuHaut/MenuHaut.jsp"/>
 
<div id="contenuPage">
 
<p>Page d'inscription</p>
 
<form name="formulaire" action="InscriptionValide.jsp">
 
<select name="selection" onChange="afficheMessageOption()">
<option value="1">1
<option value="2">2
<option value="3">3
</select>
 
</form> 
 
<script>
afficheMessageOption();
</script>
 
</div>
 
</body>
</html>

et le contenu de ma page javascript:

Code :
1
2
3
4
5
6
 
function afficheMessageOption()
{
 
alert("TEST");
}
Comme on peut le voir la ligne

Code :
1
2
 
<script src="gestionInscription.js" type="text/javascript"></script>
inclut le fichier javascript dans un premier temps et la fonction afficheMessageOption est appelée plus tard durant l'éxécution du fichier JSP (elle est également appeler lorsque l'on change une valeur dans le formulaire).

Le problème est que la page JSP s'affiche sans problème mais que l'éxécution de la fonction js ne se fait à aucun moment (ni à l'affichage de la page ni au changement d'une valeur dans le formulaire).

Les chemins de mes deux fichiers à partir du webcontent sont les suivants :
/WebContent/WEB-INF/pages/gestionInscription.js
/WebContent/WEB-INF/pages/Inscription.jsp

Par conséquent, est-ce que quelqu'un pourrait m'aider à résoudre mon problème ?

Merci d'avance.
pagoda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2012, 17h04   #2
stc074
Membre habitué
 
Avatar de stc074
 
Homme Pierre-jean
Codeur du dimanche
Inscription : janvier 2009
Messages : 467
Détails du profil
Informations personnelles :
Nom : Homme Pierre-jean
Âge : 38
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Codeur du dimanche

Informations forums :
Inscription : janvier 2009
Messages : 467
Points : 143
Points : 143
Moi souvent mon javascript ne marche pas après une modif, il faut réactualiser la page du navigateur, sinon c'est un problème de chemin.
stc074 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2012, 18h01   #3
vinou92340
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Tu devrais tester :

Code :
<script src="WEB-INF/pages/gestionInscription.js" type="text/javascript"></script>
A ta place je mettrais tout ce qui est js et jsp/html à la racine du webcontent dans des dossiers séparés (js, html,...). Souvent, il faut indiquer le lien en partant du dossier racine "webcontent'.

Voila.
  Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2012, 22h31   #4
pagoda
Invité de passage
 
Inscription : janvier 2008
Messages : 16
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 16
Points : 1
Points : 1
En mettant à la racine du webcontent le souci c'est que du coup toutes mes pages sont accessibles directement par le navigateur. Ce qui du coup peut poser des problèmes de sécurité.

En revanche l'appel à des fonctions js inclusent dans un fichier différent fonctionne avec la ligne suivante incluse dans les balises head:

Code :
<jsp:include page="/WEB-INF/pages/js/gestionInscription.jsp"/>
Bien sur il faut créer le dossier js et le fichier jsp avec les fonctions js entourées avec les balises <script>.

C'est une solution alternative mais j'aurais bien voulu pouvoir inclure des fichiers .js
pagoda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2012, 22h52   #5
vinou92340
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Et la ligne que je t ai mise au dessus ne passe pas dans la configuration de ton premier message ? En gros mettre le js et la jsp dans le meme repertoire pages situé dans "web-inf" mais en indiquant le chemin du fichier js en partant de la racine du dossier webcontent au lieu de mettre que le nom du fichier car situé dans le meme repertoire que la jsp

Donc :

Code :
1
2
3
 
 
<script src="WEB-INF/pages/gestionInscription.js" type="text/javascript"></script>

Dernière modification par vinou92340 ; 22/12/2012 à 10h18.
  Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2012, 18h16   #6
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 413
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 413
Points : 33 157
Points : 33 157
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
ce qui est dans WEB-INF n'est pas accessible depuis le navigateur, simplement. Met tes JS ailleurs.
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2012, 14h55   #7
pagoda
Invité de passage
 
Inscription : janvier 2008
Messages : 16
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 16
Points : 1
Points : 1
J'ai testé la ligne suivante:

Code :
<script src="WEB-INF/pages/gestionInscription.js" type="text/javascript"></script>
Ça ne fonctionne pas.

J'ai fait un test en créant un jsp et un js à la racine du dossier WebContent, en effectuant le même type d'appel la par contre cela fonctionne.

Cependant, étant donné que je souhaite contrôler l'accès à mes pages en utilisant des servlets, la solution de tout mettre à la source du webcontent n'est pas adaptée pour des raisons évidentes.
pagoda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2012, 15h29   #8
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 413
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 413
Points : 33 157
Points : 33 157
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
oui mais tes ressources accessibles depuis le navigateur ne doivent pas se trouver dans WEB-INF/ tout simplement. Donc met ton .js ailleurs.
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2012, 22h38   #9
pagoda
Invité de passage
 
Inscription : janvier 2008
Messages : 16
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 16
Points : 1
Points : 1
J'ai suivi ton conseil, à savoir placer le js ailleurs. Je l'ai mit dans un dossier js qui est lui-même à la racine du webcontent.

En l'intégrant à la page jsp grace à la ligne suivante:

Code :
<script src="js/gestionInscription.js" type="text/javascript"></script>
Cela fonctionne bien. Après petit bémol, quand je saisie le chemin vers mon fichier js à partir du navigateur (http://localhost:8080/{NomDuProjet}/js/gestionInscription.js).
Le navigateur affiche le contenu du fichier js (ce qui est normal vu que le fichier n'est plus dans WEB-INF). Or mon objectif est de le rendre utilisable par mon fichier jsp sans pour autant être lisible à partir d'un navigateur.
pagoda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2012, 23h19   #10
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 413
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 413
Points : 33 157
Points : 33 157
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
Impossible puisque ton navigateur va demander ce fichier séparément
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 13h34.


 
 
 
 
Partenaires

Hébergement Web