XML-Datei und Session
Smart
- java
Hi,
ich muss bei dem Start einer jsp-Datei eine XML-Datei einlesen. Dies wollte insoweit verhindern, dass die Datei nur einmal eingelesen wird. Da es hinetrher die Datei sowohl in der jsp- als auch in der Klasse verfügbar sein sollte, habe ich mir gedacht, diese in eine Session zu speichern. Die vorgehensweise hierbei ist mir aber nicht ganz geläufig. Wie muss ich da vorgehen? Kann mir bitte jemand dies anhand eines Beispiel erläutern?
Danke im Voraus.
Gruß
Servus,
[...]
ich muss bei dem Start einer jsp-Datei eine XML-Datei einlesen. Dies wollte insoweit verhindern, dass die Datei nur einmal eingelesen wird. Da es hinetrher die Datei sowohl in der jsp- als auch in der Klasse verfügbar sein sollte, habe ich mir gedacht, diese in eine Session zu speichern. Die vorgehensweise hierbei ist mir aber nicht ganz geläufig. Wie muss ich da vorgehen? Kann mir bitte jemand dies anhand eines Beispiel erläutern?
Kannst Du das bitte noch mal anders formulieren? Ich habe aufgrund Deines Posts keinen blassen Schimmer, was Du willst.
Du hast eine JSP. In der willst Du (in einem Scriptlet?) eine XML-Datei einlesen. Und in einer (anderen?) Klasse willst Du den Inhalt der XML-Datei auch haben. Ist die Klasse eine andere? Hängt sie am Request / Response Zyklus mit dran (ist sie also z.B. ein Servlet oder ein ServletFilter)?
Am besten beschreibst Du, was Du wirklich machen willst, die Lösung dazu wird dann erarbeitet.
Schöne Grüße,
Peter
Hallo Peter,
du hast Recht. Das hätte ich selber auch nicht versatnden. :-)
Also eingentlich wird die XML-Datei in der Klasse eingelesen. Meine Aufgabe ist zu verhindern, dass bei jedem Aufruf der Seite, die xml-Datei erneut eingelsen wird. Da habe ich an Session gedacht.
In der jsp-Datei lege ich ein Objekt der Klasse an und in der Kontruktur der Klasse lese ich dann die Datei ein. Da mehrere Benutzer die Seite Aufrufen und Änderungen daran vornehmen, sollte diese nur einmal eingelesen und nach der Veränderung wieder gespeichert werden.
Gruß
Servus,
[...]
du hast Recht. Das hätte ich selber auch nicht versatnden. :-)
Schön, wenn wir uns einig sind. :)
Also eingentlich wird die XML-Datei in der Klasse eingelesen. Meine Aufgabe ist zu verhindern, dass bei jedem Aufruf der Seite, die xml-Datei erneut eingelsen wird. Da habe ich an Session gedacht.
Hier würde ich sogar noch einen Schritt weiter gehen, wenn Du den Inhalt der XML-Datei nicht pro User, sondern nur einmal in der Anwendung benötigst. Dann würde ich das ganze in den Application Scope legen.
Du kommst an den ServletContext (das ist der Context, der Daten im Application Scope hält), wenn Du entweder ein ServletContextListener bist und im Deployment Descriptor der Anwendung enstprechend konfiguriert wirst, oder über den Umweg HttpServletRequest#getSession().getServletContext()
Schöne Grüße,
Peter
Hi,
danke. Ich brauche den Inhalt der Datei pro User. Ich galube die Session wäre hier nicht ganz falsch. Ich weiss nur nicht, wie ich in einer Klasse diese erzeugen und darauf zugreifen soll!
Gruß
[...]
danke. Ich brauche den Inhalt der Datei pro User. Ich galube die Session wäre hier nicht ganz falsch. Ich weiss nur nicht, wie ich in einer Klasse diese erzeugen und darauf zugreifen soll!
Du brauchst eine Instanz des HttpServletRequest. In der JSP hast Du diese Instanz zur Verfügung. Da ich nicht mit Scriptlets programmiere, würde ich raten, dass die Variable "request" heißt. Das sollte Dir aber eine kurze Recherche bei google sagen können.
Und auf dem Requestobjekt kannst du mit der Methode getSession() auf die Session zugreifen.
Schöne Grüße,
Peter