2009-06-05 6 views
0

Ich brauche eine Überprüfung meiner Strategie, um die Anforderungen eines Projekts bestmöglich zu erfüllen. Grundsätzlich habe ich eine XML-Datei, die regelmäßig analysiert werden muss und HTML-Ausgabe angezeigt wird (xslt ist keine Option).Ist dies eine gültige Strategie zum Generieren dann einschließlich HTML in JSP-Datei?

Mein Gedanke ist, dass ich eine einzelne JSP-Seite verwenden kann, um eine Anwendungsvariable zu überprüfen, die das letzte analysierte Datum speichert, um zu wissen, ob es Zeit ist (x Tage), die Datei neu zu generieren. Wenn dies der Fall ist, kann ich das XML über JSP analysieren und die Ergebnisse in eine statische HTML-Datei schreiben, die dann dynamisch zum Rendern in das gleiche JSP eingefügt wird. Wenn nicht, überspringe ich die Regenerierung und füge einfach die HTML-Datei ein. Einschließlich der HTML-Datei, anstatt nur die Anzeige zu rendern ist die Antwort/Verarbeitungszeit für nachfolgende Besuche zu speichern.

Meine Frage ist, ob dies eine kluge Möglichkeit ist, Dinge zu tun, meine spezifischen Anliegen sind 1) werde ich in der Lage sein, eine HTML-Datei zu überschreiben, die von Besuchern verwendet werden kann oder nicht; 2) wird die dynamische enthalten über Jsp funktioniert das ohne Seitenumleitung.

Vielen Dank im Voraus für alle Gedanken und die langen Pfosten ertragen -

b

Antwort

1

Ich würde einen Cache (z. B. ehcache) verwenden, um den generierten HTML-Code mit dem erforderlichen ttl zu speichern.

Rendering könnte von einem Servlet (Sie könnten ein JSP, aber sauberer in einem Servlet), die den HTML-Code aus dem Cache suchen würde, und einfach als Antwort zurückgeben. Wenn der HTML-Code nicht im Cache war, weil er entweder nicht generiert wurde oder abgelaufen ist, wird er generiert und im Cache gespeichert.

Die Generierung des HTML aus dem XML könnte sogar von einem separaten Thread behandelt werden, um Verzögerungen für den Benutzer während der Generierung zu vermeiden.

0

die XML-Generation Doing (Übersetzung) in einem Servlet könnte mehr Sinn machen. Ich sage das, weil Sie höchstwahrscheinlich eine Menge Java-Code haben werden. Das Servlet ist wahrscheinlich für eine Menge programmatischer Verarbeitung geeigneter als eine JSP.

+0

Verstanden, technische Anforderungen würden dies in einem JSP besser halten, kann ich nicht einfach die Klasse innerhalb der JSP über <% deklarieren! ? Hält die Gesamttheorie jedoch Wasser? – WillyCornbread

0

Warum nicht einfach die JSP selbst hinzufügen? Wenn die JSP den XML-Code in einer statischen Datei "zwischenspeichert", dann sollten Sie sich bewusst sein, dass es eine Racebedingung geben wird (sofern nicht speziell behandelt), wenn die JSP zweimal aufgerufen wird, während sie die HTML-Datei neu generieren muss.

Aber auf diese Weise sind die "Clients" der JSP auf keinen Fall ihrem "Caching" -Mechanismus ausgesetzt (der zufällig eine HTML-Datei ist).

Sie können zum Beispiel einfach jedes Mal eine neue HTML-Datei erstellen und ihren Namen im Anwendungskontext speichern, so dass Sie die Datei nie überschreiben. Du könntest es RAM zwischenspeichern, du könntest es überhaupt nicht zwischenspeichern!

Der Punkt ist, dass der Client nur über die JSP weiß, und egal wie oder warum es die HTML erstellt, die so ist, wie es sein sollte.

Verwandte Themen