Übergeben Sie es als Argument an den Konstruktor Ihres Objekts oder legen Sie es mit einer Setter-Methode fest.
Tatsächlich können Sie das Kontextattribut erhalten, das für Ihr Objekt relevant ist, und es nur über Konstruktor / Setter übergeben. Zum Beispiel:
%Vor%Eine viel schlimmere und kompliziertere Option ist:
ServletContextListener
<listener><listener-class></listener-class></listener>
contextInitialized(..)
holt das ServletContext
vom Event und speichert es in einem Singleton - ein statisches Feld somewhere. Alternativ können Sie dies bei jeder Anfrage tun, indem Sie ServletRequestListener
verwenden und stattdessen in ThreadLocal
speichern.
Dann können Sie den Wert erhalten, indem Sie Ihren singleton / threadlocal Halter wie folgt aufrufen:
%Vor%Ich hatte dieses Problem, aber da ich die Klasse von einer JSP aus aufgerufen hatte, übergab ich einfach die "request" -HttpServletRequest-Referenz von der JSP an die Klasse und führte den Aufruf in der Klasse zu:
%Vor%