IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

CSS ET Servlet


Sujet :

Servlets/JSP Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2009
    Messages : 11
    Par défaut CSS ET Servlet
    Je souhaite appliquer un style à mes pages produites par servlets.

    Malheuresement , le style n'est pas appliqués.

    Ce qui est vraiment très étrange , c'est que si je copie le code source de la page produite par tomcat et que je le colle dans un fichier , le style s'applique à la page alors que les deux ont exactement le même code....

    J'ai vu sur le site que http n'avais pas accés à WEB-INF, mais même en essayant de placer mon css dans ROOT , cela ne fonctionne pas...

    En cas voici mon code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
    <head>
    <title>Les spectacles</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link rel="stylesheet" media="screen" type="text/css" title="Design" href="/usr/apache-tomcat-6.0.24/webapps/ROOT/WEB-INF/classes/css/Style.css" />
    </head>
    <body>
    <div id="header"></div>
    <div id="menu">
    <h3>Vous souhaitez...</h3><ul>
    <li><a href=../index.html>Retourner a l'accueuil</a><br/><br/></li>
    <li><a href=DisplayShow>Consulter la liste des Spectacles</a><br/><br/></li>
     
    <li><a href=AfficherCadie>Consulter mon Caddie</a><br/><br/></li>
    <li><a href=AddRepresentationForShow>Ajouter une representation (Administration)</a><br/><br/></li>
    </div>
    <div id="contenu">
    chemin : /usr/apache-tomcat-6.0.24/webapps/ROOT
    <h3>Les spectacles de la saison en cours :</h3></br>
    <li><a href="DisplayRepresentationForOneShow?number=101">Spectacle (101, "Cats")</a></br>
    <li><a href="DisplayRepresentationForOneShow?number=102">Spectacle (102, "Metallica")</a></br>
    <li><a href="DisplayRepresentationForOneShow?number=103">Spectacle (103, "Manu Chao")</a></br>
    <li><a href="DisplayRepresentationForOneShow?number=104">Spectacle (104, "Cirque du Soleil")</a></br>
     
    <li><a href="AfficherCaddie">Consulter votre caddie</a></br>
    <br>
    <br>
    <li><a href="../../theatre/index.html">page d'acceuil</a></br>
    (vous avez actuellement 0 elements dans votre caddie et votre cookie va persist? durant : 172800)</br>
    </div>
    </body>
    </html>
     
     
    Je ne vois pas mon erreur...

  2. #2
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Bonjour,

    L'erreur est simple. Il faut se demander qui va traiter ta page HTML pour l'afficher?

    La réponse est le navigateur (User-Agent). Donc mets-toi à la place du navigateur pour récupérer les données sur le serveur.

    Le seul accès est via une url
    http://mon_host:mon_port/mon_context/ma_page.

    L'url peut être absolue, relative à la page actuellement affichée ou basée sur la balise base.

    Il faut savoir que le contenu du répertoire WEB-INF n'est pas accessible directement au navigateur.

    Le choix le plus simple est de pousser le fichier 'Style.css' sous un répertoire css (server /usr/apache-tomcat-6.0.24/webapps/ROOT/css).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link rel="stylesheet" media="screen" type="text/css" title="Design" href="/ROOT/css/Style.css" />

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Dans le cas d'une servlet générant la sortie, le plus simple est de mettre les styles DANS la page (plutôt que de faire référence à une feuille de style externe).
    Ceci dit, ce n'est pas un bon découpage de tout faire dans la servlet... mais c'est un autre débat
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2009
    Messages : 11
    Par défaut
    jowo tu as tout a fait raison le css ne doit pas être placé dans WEB-INF , cependant je l'ai tout de suite placé dans .../ROOT/css/Style.css de même que mes images cela ne fonctionne pas.

    J'ai d'ailleurs positionné le css a peu prés partout sur mon ordi cela ne change rien.

    Obutterlin j'ai essayé deja ta solution (cert un peu bourine ) mais le problême n'est qu'a moitié résolu car les images ne sont pas trouvés!!


    Toutefois il me reste une piste mais je ne sais comment la mettre en oeuvre:

    Quand on veut que tomcat accéde à une servlet il faut lui préciser dans le web.xml...
    Pourquoi ne faudrait-il pas faire de même avec les css et les images associées?

    Je ne sais pas comment dire cela au web.xml mais si quelqu'un a une idée , je suis preneur!!


    Merci d'avance

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Damned, je n'avais pas vu que c'était une jsp... le titre sûrement...

    Ton fichier css est propre à cette application, non ?
    Si oui, tu places ton répertoire css à la racine (dans WebContent) par exemple et tu le références par rapport à ton application
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <link rel="stylesheet" type="text/css" ... href="<%=request.getContextPath()%>/css/Style.css" />
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2009
    Messages : 11
    Par défaut c OK
    En fait j'avais mis le chemin absolu a partir de la racine de mon os...

    En fait je n'avais pas compris que dans la servlet il faut donner des chemins relatifs a la racine de tomcat (dans mon cas ROOT)...

    Merci a tous

  7. #7
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 39
    Par défaut
    Bonjour,

    J'ai exactement le même problème. Lorsque je lance mon appli sur un browser celui-ci ne trouve ni le .css ni le .js.

    Pourtant je fais bien comme le recommande OButterlin :
    Citation Envoyé par OButterlin Voir le message
    Ton fichier css est propre à cette application, non ?
    Si oui, tu places ton répertoire css à la racine (dans WebContent) par exemple et tu le références par rapport à ton application
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <link rel="stylesheet" type="text/css" ... href="<%=request.getContextPath()%>/css/Style.css" />
    Voici l'arborescence de mes fichiers sur mon serveur Tomcat :
    Tomcat 6.0\wtpwebapps\Loterie\resources\css\cssLoterie.css
    pour le css,
    Tomcat 6.0\wtpwebapps\Loterie\resources\js\functions.js
    pour le js.

    Et dans ma page jsp j'ai ces deux appels :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link rel="stylesheet" media="screen" type="text/css" title="cssLoterie" href="<%=request.getContextPath()%>/resources/css/cssLoterie.css" />
    pour le css,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="<%=request.getContextPath() %>/resources/js/functions.js"></script>
    pour le js.

    Je précise que je travaille en local et que je lance mon appli avec cette commande :
    Il y a quelques jours j'ai ouvert un sujet sur ce forum pour le js. On en a conclut qu'il s'agissait d'un problème de configuration du serveur.
    Si le problème vient bien de là, que dois-je faire pour y remédier? Dois-je modifié les fichiers web.xml et/ou serveur.xml de mon serveur? ou encore le fichier web.xml de mon appli?

    J'ai cherché ces réponses en vain.

    Jusqu'à maintenant je m'étais fait à l'idée de laisser mon js et mon css dans ma page jsp mais là ça devient vraiment bordélique.

    Merci d'avance pour votre aide.

  8. #8
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Bonjour,

    Ce fil est marqué comme résolu. Ce n'est pas ici que tu dois poser ta question.

    Ton problème sera probablement résolu en ajoutant un '/' devant <%=request.getContextPath() %>.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link rel="stylesheet" media="screen" type="text/css" title="cssLoterie" href="/<%=request.getContextPath()%>/resources/css/cssLoterie.css" />
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="/<%=request.getContextPath() %>/resources/js/functions.js"></script>
    De telles erreurs sont facilement corrigées, il suffit d'examiner le code source HTML générée par ta page JSP ou d'utiliser la console de ton navigateur...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Relier une page css à une servlet
    Par Marie.B dans le forum NetBeans
    Réponses: 1
    Dernier message: 28/08/2009, 11h06
  2. [Servlet] Problème requestDispacher.forward et CSS
    Par K-Kaï dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 06/07/2006, 12h58
  3. [jsp/servlet]lien vers une css depuis ma jsp
    Par rvfranck dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 10/04/2006, 12h45
  4. [Servlet] Comment référencer mon fichier CSS
    Par fytheone dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 07/01/2005, 09h58
  5. [servlet] feuille de styme css et javascript
    Par bob33 dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 24/03/2004, 08h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo