Recuperer le context d'une page ou d'une image en jsp

Fermé
beaf Messages postés 262 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 26 août 2015 - 1 oct. 2013 à 11:21
KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 2 oct. 2013 à 18:56
Bonjour,




j'ai un projet web sous eclipse

Je cherche le script qui permet d'avoir le contexte ou chemin d'une page ou image dans mon application lorsqu'elle est déployée

je voudrais avoir le context d'une image et l'afficher dans une page jsp par exmple

WebContent
- images
-- plan.jpg
- pages
-- login.jsp


Merci




A voir également:

2 réponses

KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
1 oct. 2013 à 19:24
Le contexte du web service est
request.getContextPath()
qui correspond à la racine de ton projet (qui contient le dossier WEB-INF) mais aussi à la racine de ton site web (donc tout le reste est forcément en dessous). Les répertoires à côtés (comme resources) ne sont pas dans le site web.

Mais la plupart des serveurs sont généralement assez souples donc parfois tu peux avoir une autre architecture (mettre tes images dans resources) et ça marche quand même alors que ça ne devrait pas. Et au moment où tu commences à resserrer les contraintes (avec SAAS par exemple) plus rien ne marche vu tu n'as pas respecté l'architecture attendu et qui aurais du mettre en place dès le départ...

Si tu avais une architecture standard de projet JSP, comme je te l'avais déjà conseillé dans ta précédente discussion, tu devrais avoir :

resources <-- dossier accessible par la JSP, pas par le site
|_ i18n.properties
webapp <-- racine du site web, tout y est accessible par le site sauf WEB-INF
|_ WEB-INF
| |_ web.xml
|_ index.jsp
|_ login.jsp
|_ images
| |_ plan.jpg
|_ css
|_ style.css

Exemple de code :

<html>
<head>
<title><%= request.getContextPath() %></title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<a href="<%= request.getContextPath() %>">index</a><br/>
<a href="<%= request.getContextPath() %>/index.jsp">index</a><br/>
<a href="index.jsp">index</a><br/>
<br/>
<a href="<%= request.getContextPath() %>/login.jsp">login</a><br/>
<a href="login.jsp">login</a><br/>
<br/>
<img src="<%= request.getContextPath() %>/images/plan.png"/>
<img src="images/plan.png"/>
</body>
</html>
0
beaf Messages postés 262 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 26 août 2015 1
2 oct. 2013 à 13:50
Moi j'utilise Eclipse donc du cout lorsque je crée un projet web avec , j'ai cette architecture ..

WebContent
index.jsp
--- META-INF
--- WEB-INF
--- resources
--- images
espace.png
0
KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
2 oct. 2013 à 18:56
Initialement un "Web Dynamic Project" généré par Eclipse est "vide".

L'architecture est celle-ci :

.settings/.classpath/.project --> fichiers pour Eclipse
src/build --> fichiers java et .class associés (vide au départ)

WebContent --> la racine du site web (ton context path)
|_ META-INF
|_ MANIFEST.MF
|_WEB-INF
|_ web.xml
|_ lib --> pour les jars à utiliser dans l'application

Après c'est à toi de rajouter les fichiers jsp, images etc. au bon endroit, c'est à dire à l'intérieur du répertoire WebContent pour être accessibles depuis le site web.

Tu devrais donc avoir :

WebContent
|_WEB-INF
| |_ web.xml
|_ index.jsp
|_ images
|_ espace.png

Remarque : mon architecture à moi était généré par un autre outils : Maven, mais sans surprise on retrouve en gros la même chose que ce que fais Eclipse.
0