Je crée une application web simple. J'ai besoin d'une référence à l'objet ServletContext dans cette classe. Comment puis-je l'avoir?Comment puis-je obtenir l'objet ServletContext dans un fichier de classe simple?
Répondre
Vous feriez mieux de le passer comme argument au constructeur de votre objet, ou le définir en utilisant une méthode setter. En fait, vous pouvez obtenir l'attribut de contexte correspondant à votre objet et le transmettre uniquement via constructeur/setter. Par exemple:
YourClass obj =
new YourClass((AnotherClass) servletContext.getAttribute("yourAttribute"));
Une option bien pire et plus complication est:
- Créer une
ServletContextListener
- enregistrer dans web.xml avec
<listener><listener-class></listener-class></listener>
- sur
contextInitialized(..)
obtenir leServletContext
de l'événement et le stocker dans un singleton - un champ statique Somehwere.
Vous pouvez le faire sur chaque demande, en utilisant un ServletRequestListener
et le stocker dans un lieu ThreadLocal
.
Ensuite, vous pouvez obtenir la valeur par appeler votre singleton/titulaire ThreadLocal comme ceci:
ServletContextHolder.getCurrentServletContext()
Ou passez dans un constructeur une copie/vue de 'ServletContext' correspondant à l'objet en question. –
@Tom: c'est déjà mentionné dans la première phrase. – BalusC
peut-être que Tom voulait dire que vous devriez obtenir l'attribut de contexte qui est pertinent pour l'objet et le transmettre seulement. Je vais l'inclure. – Bozho
J'ai eu ce problème, mais comme je l'avais appelé la classe d'un JSP, je simplement transmis la demande HttpServletRequest » "référence de la JSP à la classe et fait l'appel dans la classe à:
String appPath = request.getServletContext().getRealPath("");
- 1. Comment accéder à Grails ServletContext dans un fichier gsp?
- 2. Obtenir le servletcontext pour la classe d'usine au printemps
- 3. Utilisation de servletcontext?
- 4. Comment obtenir un fichier de classe par Eclipse?
- 5. ServletContext getContextPath()
- 6. Pourquoi ServletContext # getRealPath ("/") renvoie un chemin relatif?
- 7. Accéder à ServletContext en dehors d'une servlet
- 8. Comment obtenir un nom de classe?
- 9. Comment inclure un fichier dans une classe?
- 10. ServletContext getResource ne fonctionne pas
- 11. Ressources Spring WebContent - Accès en dehors de ServletContext
- 12. Où est le servletContext disponible dans Grails?
- 13. Objet ServletContext et session
- 14. Comment exécuter un simple gotoAndPlay à partir d'une classe personnalisée
- 15. Chargement d'un objet dans ServletContext (champ d'application)
- 16. Obtenez ServletContext dans la ressource JAX-RS
- 17. Comment écrire une chaîne simple dans un fichier sur l'iphone?
- 18. Comment obtenir un fichier seulement?
- 19. Comment voir les résultats de ma classe dans un fichier?
- 20. Impossible de créer un diagramme de classe pour une classe dll simple dans Visual Studio 2010
- 21. Comment puis-je obtenir la taille de téléchargement d'un fichier en utilisant un simple Javascript?
- 22. Comment obtenir seulement un nom de fichier?
- 23. Comment obtenir classe de type
- 24. Classe simple utilisant php
- 25. Un simple format de fichier journal
- 26. Comment obtenir un descripteur de fichier d'une dépendance dans maven
- 27. Comment obtenir l'équivalent de dirname() dans un fichier batch?
- 28. Comment obtenir des chemins de dossier dans un fichier jar?
- 29. Exemple simple de créer un fichier PowerPoint
- 30. Comment obtenir un MethodInfo dans la classe ThreadContext?
S'il vous plaît il suffit de passer à. Ne pas aller pour le pire. De quoi avez-vous besoin exactement? Quelles méthodes aimeriez-vous invoquer? Il doit y avoir de meilleurs moyens d'y parvenir. – BalusC