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 :

WEB-INF et servlets. Où les placer en privé ?


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 10
    Par défaut WEB-INF et servlets. Où les placer en privé ?
    Bonjour
    La structure officielle d'une application est :
    Racine, dans la racine se trouve le dossier WEB-INF et tout ce qui sera visible au public.
    Dans WEB-INF
    1) classes
    2) lib
    3) web.xml
    4) dossiers, fichiers.jsp,...

    Si je veux cacher mes servlets dans WEB-INF. Je ne peux pas les mettre directement dans WEB-INF.
    Ma question est : où placer mes servlets pour qu'elles soient privées en respectant la bonne pratique ?

    S'il vous plait.
    Merci.
    Bonne journée à tous.

  2. #2
    Membre Expert
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Par défaut, si tu veux que ça marche, il faut que tes servlets soient dans un répertoire qui s'appelle classes placé sous WEB-INF.

    Du coup, laisse moi te poser une autre question : qu'est-ce qui fait que tu ne veux/peux pas mettre tes servlets sous WEB-INF?
    Question 2 : tu mets quoi dans classes si tu n'y mets pas tes servlets?

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 10
    Par défaut
    eulbobo,
    Tout d'abord merci d'avoir pris le temps de me répondre.

    " Par défaut, si tu veux que ça marche, il faut que tes servlets soient dans un répertoire qui s'appelle classes placé sous WEB-INF. "

    J'ai lu sur un forum que le répertoire classes doit contenir des classes, et non pas des servlets qui sont des .java
    Et donc que les servlets ne doivent pas être placées dans le répertoires "classes" de WEB-INF.
    Et justement cela me perturbe, voilà pourquoi je viens demander ici l'avis d'experts qui connaissent les bonnes pratiques.


    Du coup, laisse moi te poser une autre question : qu'est-ce qui fait que tu ne veux/peux pas mettre tes servlets sous WEB-INF?
    Question 2 : tu mets quoi dans classes si tu n'y mets pas tes servlets?


    1) Hé bien en fait j'hésite, doit-on mettre les servlets dans le répertoires "classes" de WEB-INF ou faut-il créer des répertoires dans WEB-INF pour placer les servlets un peu comme je souhaite les hiérarchiser.
    2) Je mets des classes et pas des servlets (?)


    Qu'en pensez-vous?
    Merci.

  4. #4
    Membre Expert
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Les fichiers .java sont les fichiers source et je vais te confirmer un truc : ils n'ont rien à faire dans ton application déployée ! Même pas dans un répertoire privé !

    Tu peux éventuellement placer tes fichiers source dans un répertoire src sous WEB-INF, mais moi je te conseillerai effectivement de les mettre dans un répertoire qui ne soit pas du tout lié à ton contexte web.

    En gros, si on fait une hiérarchie de dossiers, ça doit ressembler à un truc comme ça : la racine de ton contexte web commençant au niveau du dossier web
    - src
    --- java
    ------fr
    - web
    --- images
    --- css
    --- jspPublic
    --- WEB-INF
    ------lib
    ------classes
    ------tld
    ------jspPrive


    Une servlet, c'est une servlet, qu'elle soit à l'état de source (.java) ou compilée (.class), c'est pour ça que je ne comprenais pas où tu voulais en venir !
    Tu crées tes servlets dans ton répertoire src/java/... et tu compiles de manière à ce que les fichiers .class aillent dans web/WEB-INF/classes

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 10
    Par défaut
    Merci encore.

    En fait voilà ce qui m'est imposé : (1ere question)
    Tous les fichiers doivent être privés.

    A partir d'un fichier index.html placé sous la racine, je dois :
    créer un lien vers un le répertoire "repertoire1" qui contient un fichier jsp "jsp1.jsp".

    <a href="./WEB-INF/repertoire1/index.html"> vers index </a>
    <a href="./WEB-INF/repertoire1/jsp1.jsp"> vers jsp1 </a>

    Je n'arrive pas à afficher le répertoire, ni la jsp dans le répertoire, ni aucun fichier placé dans WEB-INF.
    J'arrive à mettre des liens vers des fichiers placés sous la racine. Mais je n'arrive pas à atteindre les fichiers dans WEB-INF. ( je sais qu'il sont protégés de façon à ce que le client ne puisse pas les atteindre via l'URL)

    voici l'erreur :

    HTTP Status 404 - Not Found
    type Status report
    messageNot Found
    descriptionThe requested resource is not available.
    GlassFish Server Open Source Edition 4.1


    Désolé, c'est délicat pour l'étudiant que je suis de parler avec des professionnels. (J'essaie d'être clair)
    Merci.

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 10
    Par défaut
    Voici le modèle sur lequel je dois travailler

    - racine
    --- WEB-INF----------classes
    -----------------------lib
    -----------------------web-xml
    -----------------------dossier, fichier.jsp, ...

    --- dossier public

  7. #7
    Membre Expert
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Citation Envoyé par fredDussa Voir le message
    A partir d'un fichier index.html placé sous la racine, je dois :
    créer un lien vers un le répertoire "repertoire1" qui contient un fichier jsp "jsp1.jsp".

    <a href="./WEB-INF/repertoire1/index.html"> vers index </a>
    <a href="./WEB-INF/repertoire1/jsp1.jsp"> vers jsp1 </a>
    Tu ne peux JAMAIS accéder à ce qui est présent dans le répertoire WEB-INF depuis une page web. WEB-INF n'est visible que pour le serveur qui exécute ton application.
    La seule façon d'afficher une JSP qui est contenue dans le repertoire WEB-INF c'est de passer par une servlet (définie dans ton fichier web.xml) qui te fera la redirection côté serveur.

    Un lien de type <a href>, c'est l'appel d'une adresse qui est accessible par tout le monde de n'importe où, à n'importe quel moment. (donc une image, un fichier javascript, les css, ...)

Discussions similaires

  1. Déplacer les pages dans /WEB-INF/
    Par JeReMsS69 dans le forum JSF
    Réponses: 13
    Dernier message: 27/03/2009, 09h33
  2. proteger les vues en les mettant dans WEB-INF
    Par toure32 dans le forum JSF
    Réponses: 6
    Dernier message: 12/03/2009, 13h08
  3. Placer les pages jsp dans le repertoire WEB-INF
    Par hokidoki dans le forum Struts 1
    Réponses: 0
    Dernier message: 31/10/2008, 11h49
  4. Mettre les pages JSP sous WEB-INF
    Par menzlitsh dans le forum Struts 1
    Réponses: 6
    Dernier message: 12/07/2007, 11h19
  5. [Servlet] chemin d'accès à WEB-INF
    Par phoebe dans le forum Servlets/JSP
    Réponses: 11
    Dernier message: 27/04/2004, 14h20

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