2012-06-24 5 views
1

Il existe des pages JSP dans un dossier appelé 'jsp' à l'intérieur du WEB-INF. Ces pages ont besoin de fichiers javascript. Dans la page JSP, les fichiers javascript sont appelésComment obtenir une ressource dans WEB-INF JSP/Struts

<script type="text/javascript" src="../../app.lib/jQuery-v-1-7-2.js"></script> 

mais le navigateur ne peut pas accéder à cette ressource. Toutes les demandes aux pages JSP à l'intérieur du web-inf passent par une action et un espace de nom séparé a également été donné pour les pages appelées «sécurisées». Disons que cette page account.jsp a besoin d'un fichier javascript qui se trouve dans un dossier appelé 'app.lib' dans le dossier 'web' (hors web-inf).

(1) Je veux savoir un moyen de récupérer ce fichier javascript dans la page account.jsp en utilisant des actions struts ou une autre fonctionnalité jsp.
(2) deuxième question est: Disons, il y a des images qui devraient être sécurisées, et l'application elle-même devrait être capable de les envoyer au navigateur lorsque demandé.En d'autres termes, des images dans un dossier dans WEB-INF , alors comment puis-je y accéder dans account.jsp?
Ce sont les web.xml (configuration de session et les balises liste des fichiers welcome supprimés pour une vue claire)
<?xml version="1.0" encoding="UTF-8"?> <web-app.......>
<filter> <filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>

C'est la structure du projet
enter image description here

+0

Dans mon cas, le contenu statique a été déployé en tant que projet distinct.

+0

Dans la page JSP, obtenez le chemin contextuel de votre application Web. De là, vous pouvez descendre dans le dossier javascript. – dragon66

+0

@MohanaRaoSV. Merci de votre attention. Pourriez-vous l'expliquer plus en utilisant cette structure de projet avec un exemple de code? il n'est pas clair que vous avez mentionné "projet séparé". –

Répondre

-1

Ne mettez pas vos fichiers JavaScript dans le WEB Dossier -INF. Les pages JSP conservées dans WEB-INF sont accessibles par le conteneur servlet, traitées, puis rendues au client via la servlet, qui a accès aux fichiers dans WEB-INF. Les fichiers JavaScript sont des ressources côté client, et puisque le client ne peut accéder à aucune ressource dans WEB-INF, ils doivent être situés en dehors de ce dossier.

En règle générale, il est courant de mettre vos fichiers JavaScript dans un dossier appelé « js », comme ceci:

-/js 
    - actions.js 
-/WEB-INF 
    - /jsp 
     - abc.jsp 

En aparté, car JavaScript est côté client, même si vous deviez passer par la peine de les stocker dans le dossier WEB-INF et d'utiliser le moteur de servlet pour les traiter, tout utilisateur pourrait toujours accéder à l'URL de la ressource et voir la source. Essentiellement, vous n'en tirerez aucun bénéfice et n'engendrerez que des coûts, tant pour la maintenance que pour les frais supplémentaires de développement.

+0

Merci Mr jmort253. ce que vous dites est 100% exact. Ensuite, selon la structure de votre projet, pourriez-vous me dire comment appeler ces actions.js par abc.jsp? Lorsque l'utilisateur est sur la page abc.jsp, le navigateur affiche l'URL http: // localhost: 8084/app/secure/user'. Le navigateur appelle ensuite actions.js 'http: // localhost: 8084/app/secure/actions.js'. Cela n'obtient pas le fichier javascript. –

+0

@AashMaharoon - Sans voir la configuration de votre servlet depuis le web.xml, je ne peux que spéculer, mais il me semble que/app ou/app/sécurise les routes les plus probables vers vos contrôleurs, où Struts gère ensuite le transfert vers une vue JSP. Au lieu de cela, vos fichiers JavaScript sont directement accessibles à partir du dossier. Donc quelque chose comme 'http: // localhost: 8084/app/js/actions.js' ou' http: // localhost: 8084/js/actions.js' fonctionnerait probablement. Vous devrez jouer avec cela dans votre barre d'adresse pour savoir comment votre projet est structuré. – jmort253

+0

J'ai édité ma question. Voudriez-vous le voir s'il vous plaît? –

Questions connexes