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 :

Servlet , lecture dans un fichier + Injection ds HTML


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 25
    Points : 16
    Points
    16
    Par défaut Servlet , lecture dans un fichier + Injection ds HTML
    Bonjour,
    Je dois mettre en place un système de news sur un site totalement basique ... qui ne gère pas le php et qui n'est pas connecté à une base de données !

    Je me suis donc lancé dans l'élaboration d'un Servlet toute basique, qui aura pour but de lire des données dans un fichier de news (en xml par exemple) et d'écrire le contenu dans une page HTML (équivalente à un index.html)
    Déjà à ce niveau, est-ce que ce que j'essaye d’implémenter est vous semble adaptez/possible ?


    Maintenant j'arrive à un point, ou l'appel de la Servlet fonctionne, mais je n'arrive pas à ouvrir le fichier xml .Est-ce un problème de droit ? Ou est-ce que la classe java ne peut pas résoudre mon chemin ?

    L’arborescence du projet est la suivante :


    et le basique code de ma servlet :
    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
     
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    	throws IOException, ServletException{
     
     
    		ServletConfig conf = getServletConfig();
    		response.setContentType("text/html");
    		PrintWriter out = response.getWriter();
     
    		out.println("<a href=\""+request.getContextPath()+"/News/XXXX.xml\">lien</a>");
    		//LE LIEN MARCHE
     
    		String Path=request.getRequestURL().substring(0,request.getRequestURL().lastIndexOf("/"));
    //		out.println(Path);
     
    		String myLine		     = null;
    		InputStreamReader flog	= null;
    		LineNumberReader llog	= null;
     
    		try{ 
     
    			flog = new InputStreamReader(new FileInputStream(request.getContextPath()+"/News/XXXXX.xml"));
    			llog = new LineNumberReader(flog);
     
     
    			while ((myLine = llog.readLine()) != null) { 
    				out.println("Ligne : "+myLine);
    			}
    		}catch (Exception e){
    			System.err.println("Error : "+e.getMessage());
    		}
     
    	}
    et le message d'erreur : Error : \WebBibNatFraWeb\News\bibnatfra.xml (Le chemin d'accès spécifié est introuvable)

    Merci d’avance pour vos conseils/remarques.


    Guillaume

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getContextPath()+"/News/XXXX.xml\"
    ca donne l'url relative du fichier pour le serveur. C'est très bien pour créer des liens html, mais totalement inutile pour File qui lui travaille avec le filesystem.

    Pour lire un fichier se trouvant dans un war, le mieux est d'utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InputStream inputStream = servletContext.getResourceAsStream("/News/XXXX.xml");

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Merci de ta solution, est-ce qu'elle est équilavente à un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String Path=application.getRealPath("/News/XXXX.xml");
    (qui marche aussi )


    Voilà sinon , maintenant Je cherche un moyen d'injecter ce que me retourne ma Jsp dans mon index.html ...

    (en gros je retourne le code HTML à inséré avec la servlet)

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2012
    Messages : 56
    Points : 84
    Points
    84
    Par défaut
    Salut,

    Tu peux utiliser JQuery/AJAX : tu appelles ta servlet et tu inseres simplement ce qu'elle te retourne dans ta page html.

    http://www.jquery.com

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Je vais allé regarder la doc jquery/ajax, merci pour la piste !

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par pegazuss5 Voir le message
    Merci de ta solution, est-ce qu'elle est équilavente à un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String Path=application.getRealPath("/News/XXXX.xml");
    (qui marche aussi )
    Non, dans 99% des cas ce sera utilisable, mais dans 1% des cas, getRealPath ne te retournera rien. C'est le cas si t'es sur un serveur J2EE qui n'explose pas les .war sur le filesystem. Concrètement, tout ceux que j'ai croisé le faisaient

Discussions similaires

  1. Réponses: 12
    Dernier message: 29/05/2008, 11h29
  2. Lecture dans un fichier
    Par unknown4 dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 14/08/2005, 18h56
  3. [Débutant] Lecture dans un fichier texte
    Par babemagus dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 07/07/2005, 13h17
  4. [Servlet] Erreur dans le fichier web.xml
    Par Crazyblinkgirl dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 05/07/2004, 16h20
  5. Réponses: 12
    Dernier message: 14/06/2004, 14h06

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