Robert: JSP spielt verrückt

Folgenden Code habe ich einmal unter "test.jsp" und einmal unter "test.html" gespeichert. Die eingebundene Datei "Template.js" macht nichts weiter als die Variable "sampleTemplateContent" zu initialisieren. Die eingebundene Datei "ScanApp.js" enthält die Methode "startScan". Diese ist weiter unten aufgeführt.

<html>
  <head>
    <script src="Template.js" type="text/javascript"></script>
    <script src="ScanApp.js" type="text/javascript"></script>
  </head>

<body>
      <a href="javascript:startScan('sampleTemplate.xst', false);">Link</a>
  </body>

</html>

function startScan( templateName, isRemote )
{
  alert("In startScan");
  alert(sampleTemplateContent);
}

Nun zu meiner Frage:

Wenn ich die Datei "test.html" starte und anschließend auf "Link" klicke, dann wird zunächst "In startScan" und anschließend der Wert der Variablen "sampleTemplateContent" ausgegeben. Das ist auch korrekt so.

Wenn ich die Datei "test.jsp" über den Apache Tomcat aufrufe, dann wird zunächst "In startScan" ausgegeben. Der Wert der Variablen "sampleTemplateContent" wird allerdings nicht ausgegeben. Hier bekomme ich vom Browser den Fehler, dass "sampleTemplateContent" nicht definiert ist.

Könnt ihr mir sagen warum ich diesen Fehler nur beim Ausführen über die JSP und nicht beim Ausführen über die HTML-Seite erhalte?

  1. Hallo Robert,

    Eine Antwort kann ich Dir nicht direkt geben, aber evtl. etwas bei der Fehlersuche helfen.
    JS läuft nur Clientseitig, entweder müssen die Daten also nicht oder anders beim Client ankommen, wenn die Datei als JSP verarbeitet wird.

    Verwendest Du immer Tomcat, auch wenn Du kein JSP verwendest?
    Also nicht irgend eine Tomcat-hinter-Apache-Konstruktion? Denn wenn Du das tust, liegt der Unterschied wohl eher zwischen den beiden Servern als der Art der Verarbeitung.

    Folgende Fragen könnten hilfreich sein:
    Sieht der HTML-Quelltext, der beim Browser ankommt, in beiden Fällen gleich aus?
    Kann der Browser die Datei Template.js laden? (Der Fehler sieht ja so aus, als könnte er das nicht. Das wäre allerdings merkwürdig, wenn Du beide Varianten mit Tomcat ausprobiert hast.)

    Grüße

    Daniel