Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2999 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Trouver Fichier dans les Servlet.

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

Trouver Fichier dans les Servlet.

n°1409121
brasseld
Posté le 19-07-2006 à 09:32:53  profilanswer
 

Bonjour à tous,
Je développe actuellement une application web pour voir comment ça fonctionne. J'ai une hiérarchie de classe telles que celle-ci :
 
-> logs
-> html
-> import
-> style
-> jscript
-> WEB-INF
    -> src
    -> classes
    -> lib
-> META-INF
 
J'ai une classe Commun qui contient uniquement des attributs et méthodes statiques. Cette classe et ses méthodes sont souvent appelées par les Servlets. Cette classe Commun doit pouvoir accéder en lecture aux fichiers des répertoires html, logs et import. Cependant, je ne sais pas comment faire pour établir le chemin vers les fichiers mis à part coder en dur (comme une brute) les chemins vers ces répertoires. Alors quand je passe d'une machine windows à une Linux, il faut que je change le chemin à chaque fois...
 
Avez vous une idée à me proposer ? Est ce que ma hiérarchie de dossier est idéale ? Pour info, j'utilise l'IDE eclipse. Merci d'avance pour vos propositions ;-)

mood
Publicité
Posté le 19-07-2006 à 09:32:53  profilanswer
 

n°1409126
brisssou
8-/
Posté le 19-07-2006 à 09:42:33  profilanswer
 

ton source à pas trop sa place dans web-inf...
 
sinon, tu veux faire quoi sur ces fichiers Ô_o ?


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1409129
brasseld
Posté le 19-07-2006 à 09:45:07  profilanswer
 

Je dois le mettre ou mon dossier source ?
Et c'est juste pour lire les fichiers (de type xml par exemple pour les analyser ensuite...)

n°1409135
brisssou
8-/
Posté le 19-07-2006 à 09:56:14  profilanswer
 

pour lire des xml, mais les dans un répertoire de source, tu y accèderas par Class.getResourceAsStream(). Et mets tes répertoires de sources où tu veux, mais WEB-INF ne me semble pas être un bon endroit. tr-- me contre-dira peut-être...


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1409146
brasseld
Posté le 19-07-2006 à 10:07:43  profilanswer
 

Mais je n'ai pas que des fichiers XML.. j'ai des fichiers html à lire aussi...

n°1409149
brisssou
8-/
Posté le 19-07-2006 à 10:15:12  profilanswer
 

pkoi tu veux les lires ? spas un peu le boulot du server d'appli ? :)


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1409158
brasseld
Posté le 19-07-2006 à 10:23:05  profilanswer
 

Autre question :  
Pour accéder à mon appli en local je vais sur http://localhost/SuiviBudget/Login
 
J'arrive sur une page pour me connecter.
Cependant, en tapant http://localhost/SuiviBudget/Login/../style/, j'arrive à lister le contenu de mon répertoire style. Et idem pour les répertoires html, import, logs...
 
Comment faire pour éviter ce petit probléme ?

n°1409220
brasseld
Posté le 19-07-2006 à 10:59:46  profilanswer
 

up

n°1409238
brisssou
8-/
Posté le 19-07-2006 à 11:08:43  profilanswer
 

configure ton serveur (je crois)


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1409319
brasseld
Posté le 19-07-2006 à 11:52:59  profilanswer
 

quand tu dis configure ton serveur : c'est configurer le fichier web.xml de l'appli ou les fichiers de conf du serveur en lui-même

mood
Publicité
Posté le 19-07-2006 à 11:52:59  profilanswer
 

n°1409373
brisssou
8-/
Posté le 19-07-2006 à 13:37:51  profilanswer
 

le serveur, pas l'appli. en même temps, pas sûr hein...
 
google ?


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1409656
twingoceri​se
Posté le 19-07-2006 à 17:53:44  profilanswer
 

fait un :  
Thread.currentThread().getContextClassLoader().getResourceAsStream(file)
 
avec file = tonNomDeFichier
ensuite ton fichier tu le places dans /WEB-INF/classes
 
(pratique quand tu build avec ANT en plus...)

n°1409661
twingoceri​se
Posté le 19-07-2006 à 17:58:04  profilanswer
 

petit detail
Quand tu build avec ANT déplace tes fichiers vers classes
comme ça tu t'embete pas à foutre le bordel dans ton env de dev

n°1409711
brisssou
8-/
Posté le 19-07-2006 à 19:54:35  profilanswer
 

arg !! mais ça serait pas un tout petit peu dégueux ??!
 
tu veux dupliquer tous les fichiers ???
 
brasseld > qu'est-ce que tu veux faire avec les fichiers HTML ??!


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1409942
brasseld
Posté le 20-07-2006 à 09:44:32  profilanswer
 

En fait pour le moment mon appli c'est du (gros) bourrin. Je voudrais bien mettre en place quelque chose de propre mais je ne sais pas trop comment me lancer... Surtout je ne veux pas de Struts car ça m'a l'air trés compliqué pour une application relativement simple et de petite taille. connaissez vous une adresse qui traite des JSP / Servlet, les communications entre Servlet et JSP, les objets qui sont placés en session par les servlets pour les afficher via les JSP. Est-il impropre d'avoir plusieurs Servlets ? Je ne vois pas trop comment utiliser un pattern du type MVC proprement...
Si vous avez des adresses utiles.

n°1409959
brisssou
8-/
Posté le 20-07-2006 à 09:51:36  profilanswer
 

brasseld a écrit :

connaissez vous une adresse qui traite des JSP / Servlet, les communications entre Servlet et JSP, les objets qui sont placés en session par les servlets pour les afficher via les JSP


euh...
je crois que tu devrais refaire quelques tuto, y a des chose qui ont dû t'échaper je pense.


Message édité par brisssou le 20-07-2006 à 09:54:05

---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1409966
brasseld
Posté le 20-07-2006 à 10:03:50  profilanswer
 

Pourquoi ? exemples ?
Tu as de bons tuto à me proposer ?


Message édité par brasseld le 20-07-2006 à 10:04:28
n°1409972
brisssou
8-/
Posté le 20-07-2006 à 10:06:34  profilanswer
 

ben, ta servlet, son taf, c'est de mettre des données dans la request (ou la session, mais le moins possible, pour pas surcharger...) et ensuite de diriger le tout vers une JSP qui va utiliser les attributs mis en request/session.
En gros, ce que tu demandais, c'est un tuto J2EE.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1409980
brasseld
Posté le 20-07-2006 à 10:12:54  profilanswer
 

C'est ce que je voulais faire comprendre... je comprends ce principe. Est ce que c'est crade d'avoir pas mal de Servlets ou il vaut mieux en avoir une seule qui dispatch bien les requetes ?

n°1410052
brasseld
Posté le 20-07-2006 à 11:26:04  profilanswer
 

Vous avez sous la main de bonnes adresses pour des tutos ?

n°1410062
brisssou
8-/
Posté le 20-07-2006 à 11:40:22  profilanswer
 

servlet:

Code :
  1. public class ServletBidon extends HttpServlet {
  2.   public void doGet(HttpServletRequest request,
  3.               HttpServletResponse response)
  4.         throws IOException, ServletException {
  5.     String message = "c'est ça que j'dis !";
  6.     request.setAttribute("message", message);
  7.       getServletContext().getRequestDispatcher("maJsp.jsp" ).forward(request, response);
  8.   }
  9. }


 
maJsp.jsp:

Code :
  1. ...
  2. mon message, c'est : <%=request.getAttribute("message" );%>
  3. ...


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1410069
brasseld
Posté le 20-07-2006 à 11:44:54  profilanswer
 

Je comprends bien ce systéme. Mais lorsqu'il y a énormément d'informations ? Par exemple, je récupére une liste d'informations de ma BDD. Je récupére un ResultSet. Je balance directement mon ResultSet à ma JSP où il y a une opération intermédiaire ?

n°1410082
brisssou
8-/
Posté le 20-07-2006 à 11:57:47  profilanswer
 

non.
 
La c'est un pb de design, regarde le MVC. Mais en gros, ton resultSet, il représente des objet de ton model, donc tu en tires une List d'objects, tu mets la liste dans la request, et tu traites ta liste dans la jsp.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1410096
brasseld
Posté le 20-07-2006 à 12:04:20  profilanswer
 

Donc je dois avoir une correspondance entre un objet Java et une table de ma BDD. Comme pour le framework Hibernate. Mais si je veux simplement quelques éléments d'une table avec quelques données d'une autre table, je dois créer un type d'objet pour chaque type de list que je veux créer ?
Je sais pas si j'ai été clair...

n°1410150
brisssou
8-/
Posté le 20-07-2006 à 13:27:02  profilanswer
 

tu peux gruger avec une map, si tu veux gagner du temps, mais envoyer le resultSet, c'est le mal, enfin je pense.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1410174
benou
Posté le 20-07-2006 à 14:07:55  profilanswer
 

j'ai lu vite mais visiblement personne n'a donné la répons eà la question initiale.
 
Tu peux récupérer le répertoire d'installation de ta webapp en faisant servletContext.getRealPath("/" ).

n°1410176
benou
Posté le 20-07-2006 à 14:09:26  profilanswer
 

brasseld a écrit :

Donc je dois avoir une correspondance entre un objet Java et une table de ma BDD. Comme pour le framework Hibernate. Mais si je veux simplement quelques éléments d'une table avec quelques données d'une autre table, je dois créer un type d'objet pour chaque type de list que je veux créer ?
Je sais pas si j'ai été clair...


ca dépend à quel point tu veux que ton trux soit propre ...

n°1410184
brisssou
8-/
Posté le 20-07-2006 à 14:18:51  profilanswer
 

benou a écrit :

j'ai lu vite mais visiblement personne n'a donné la répons eà la question initiale.
 
Tu peux récupérer le répertoire d'installation de ta webapp en faisant servletContext.getRealPath("/" ).


 
 
comme c'était pour faire des trucs crades (et que je connaissais pas la réponse  :whistle: )...


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1410191
brasseld
Posté le 20-07-2006 à 14:26:16  profilanswer
 

Si ça pouvais être maintenable un maximum sans utiliser Struts.
Merci pour la réponse sur le getRealPath.
Et concernant la protection des dossiers import, html et style pour éviter d'y accéder depuis la servlet ?
Un bean est-il uniquement une relation entre un formulaire html et une classe Java ou ça peut-être autre chose ?
 
Ce que j'aimerai bien faire c'est : ma servlet récupére les données formulaires, les mets dans un bean. Le bean contient une méthode de validation pour vérifier ses attributs. Si le bean est ok, la servlet effectue une opération (enregistrement dans ls BDD) sinon elle réaffiche le formulaire avec les données contenues dans le bean. C'est propre ça ?

n°1410193
twingoceri​se
Posté le 20-07-2006 à 14:26:57  profilanswer
 

---> C'est pas crade puisque que quand tu buildes, tu ne buildes pas dans ton projet WEB voyons !!! :) :) :)
 
tu crées un war à part que tu déplois dans ton serveur d'appli non ???
yaura aucune duplication de fichier... tes fichiers ne seront pas au meme endroit dans ton war mais tu t'en fiches.... t'es pas dans ton serveur d'appli !
 
En plus c'est plus standard de tout mettre dans /WEB-INF/classes qui est nécessairement dans ton classpath !!... il suffirait que il y ai des problèmes de droits unix ou je ne sais quoi pour que tu sois bloqué !!
 
Enfin bon, j'ai fait ça dans mes appli web et je l'ai vu dans une bonne dizaine d'autres... (applications de production pour des grandes boites.... pas des applis merdiques des tests...)
 

n°1410199
brisssou
8-/
Posté le 20-07-2006 à 14:33:27  profilanswer
 

chai pas si tu as bien tout lu, mais on lui proposait de mettre les JSP et autres dans le classpath à un moment...


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1410203
brisssou
8-/
Posté le 20-07-2006 à 14:34:10  profilanswer
 

brasseld > oui, c'est plutôt propre je crois. Mais pkoi tu penses du mal de Struts ?


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1410215
brasseld
Posté le 20-07-2006 à 14:40:40  profilanswer
 

Je ne pense pas de mal de Struts, mais mon projet est déjà bien trop avancé pour mettre en place Struts maintenant (surtout que je n'ai aucune notion sur ce framework pour le moment).
 
A quel couche du MVC fait parti un bean ? Ce sont des objets métiers ?
 
Autre question : j'ai un formulaire html dans lequel lorsque je clique sur un bouton il me rajoute des lignes de champs de saisie. Le bean qui représente ce formulaire, comment doit-il se présenter ? Je crée un bean pour une ligne de mon formulaire et un bean qui est un ensemble (un vecteur) des beans de ligne ?

n°1410218
benou
Posté le 20-07-2006 à 14:45:12  profilanswer
 

brisssou a écrit :

chai pas si tu as bien tout lu, mais on lui proposait de mettre les JSP et autres dans le classpath à un moment...


 :heink:

n°1410225
benou
Posté le 20-07-2006 à 14:53:12  profilanswer
 

brasseld a écrit :


Et concernant la protection des dossiers import, html et style pour éviter d'y accéder depuis la servlet ?


si il y a un truc auquel tu veux pouvoir accéder depuis le code d'une servlet, mais que tu veux cacher à l'extérieur (qu'un utilisateur lambda ne puisse pas y accéder en tappant l'url), il faut que tu le mettes, soit dans le rep WEB-INF, soit ailleur sur le disque. Si tu le met dans WEB-INF et que tu as juste besoin de lire le fichier, le plus simple, plutôt que de passer par  un getRealPath, c'ets de faire un servletContext.getResourceAsStream
 
 
 

brasseld a écrit :


Un bean est-il uniquement une relation entre un formulaire html et une classe Java ou ça peut-être autre chose ?


ca peut être plein de trucs. un bean c'est qu'une classe java qui respectent certaines règles ... Mais t'embête pas tro pavec ça et t'oblige pas à en mettre partout si tu n'y est pas contraint.
 
 

brasseld a écrit :


Ce que j'aimerai bien faire c'est : ma servlet récupére les données formulaires, les mets dans un bean. Le bean contient une méthode de validation pour vérifier ses attributs. Si le bean est ok, la servlet effectue une opération (enregistrement dans ls BDD) sinon elle réaffiche le formulaire avec les données contenues dans le bean. C'est propre ça ?


Un bean (en tout cas dans un contexte web) c'est là pour contenir les données. C'est pas là pour les valider. Ca c'est à ton modèle de le faire. Vu que tu utilises pas de framework web, ca peut être ta servlet ou un autre objet, peut importe, comme ça t'arrange.  
Ne te sent pas non plus obligé de mettre les données de ton formulaire dans un bean si ca ne te sert à rien.
 
Si tu veux effectivement repasser des données depuis ta servlet à la JSP pour réafficher le formulaire, là ca a un sens de passer ces données dans un bean (que tu mettras en attribut de la request).
L'avantage du bean, c'est aussi de pouvoir utiliser des librairies comme la JSTL pour faire une JSP toute propre

n°1410247
brasseld
Posté le 20-07-2006 à 15:07:39  profilanswer
 

benou a écrit :


Un bean (en tout cas dans un contexte web) c'est là pour contenir les données. C'est pas là pour les valider. Ca c'est à ton modèle de le faire. Vu que tu utilises pas de framework web, ca peut être ta servlet ou un autre objet, peut importe, comme ça t'arrange.  
Ne te sent pas non plus obligé de mettre les données de ton formulaire dans un bean si ca ne te sert à rien.
 
Si tu veux effectivement repasser des données depuis ta servlet à la JSP pour réafficher le formulaire, là ca a un sens de passer ces données dans un bean (que tu mettras en attribut de la request).
L'avantage du bean, c'est aussi de pouvoir utiliser des librairies comme la JSTL pour faire une JSP toute propre


 
Ok, pour les dossiers et fichiers à protéger...
Quand vous parlez du modéle, c'est un ensemble d'objet qui représente soit des objets provenant de BDD, soit des beans ?
 
En fait, pour commencer, mon chef m'a dit qu'il ne voulait pas d'un truc bien compliqué. Alors il voulait que je fasse des requetes sur une BDD MySQL puis une fois que j'ai récupéré les résultats, je lisais un fichier html qui contenait des tag que je remplaçais ensuite par mes résultats issus de la BDD. Bref moi ça me saoule de faire ça et je voudrais faire quelque chose de plus propre tout de même. Parceque là, il faut faire des lectures de fichiers, faire des remplacements de chaîne via les pattern puis les afficher.... c'est vraiment du bourrin quoi. Donc j'aimerai m'orienter sur quelque chose de propre et de maintenable.
 
Si j'utilise des beans avec des pages jsp toute simple pour le moment, j'aurai des difficultés par la suite à utiliser les librairies JSTL ? Car je serai peut-être court en temps...
 
En tout cas merci pour vos conseils ;-)

n°1410255
brasseld
Posté le 20-07-2006 à 15:13:47  profilanswer
 

Décidemment, j'ai beaucoup de questions.
Je veux créer un objet bean par rapport à un formulaire. Ma jsp envoie la requete à ma servlet. Est ce que c'est la servlet qui s'occupe de charger les données de la request dans le bean ou est-ce qu'il peut y avoir dans le bean une methode du style loadData(HttpServletRequest req) throws... ??

n°1410259
brisssou
8-/
Posté le 20-07-2006 à 15:18:12  profilanswer
 


 
une réponse qu'il a eu quand il disait vouloir lire les fichiers HTML depuis le code java :
 

twingocerise a écrit :

fait un :  
Thread.currentThread().getContextClassLoader().getResourceAsStream(file)
 
avec file = tonNomDeFichier
ensuite ton fichier tu le places dans /WEB-INF/classes
 
(pratique quand tu build avec ANT en plus...)



---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1410264
brisssou
8-/
Posté le 20-07-2006 à 15:20:28  profilanswer
 

n'écoute pas ton chef, ce que tu veux faire, c'est afficher en HTML des info sorties de ta BDD. Donc, tu vas pas t'amuser à parser un fichier HTML pour le remplir, c'set crétin, tu vas simplement utiliser une JSP...
 
pour ta dernière question, la servlet est dans son rôle si elle rempli ton bean. je crois :whistle:


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1410265
brasseld
Posté le 20-07-2006 à 15:21:15  profilanswer
 

Ce petit probléme a été réglé, ne vous prenez pas la tête pour si peu ;-)

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Trouver Fichier dans les Servlet.

 

Sujets relatifs
cherche un site d'aide pour fichier .batFichier de configuration automatique de proxy?
traitement de fichiertrouver l'adresse de UPLOAD_TMP_DIR via PHP
[asp][1.1] Fichier XML dans un tableauAJAX, appel fichier exterieur en local
Attribution d'un nom dans la creation d'un fichier[xml-xsl] Probleme de structure de fichier xsl
lire a partir d'un fichier confRécuper du texte dans un fichier puis la mettre dans une variable
Plus de sujets relatifs à : Trouver Fichier dans les Servlet.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR