2012-10-29 12 views
7

Ich lese tatsächlich ein Tutorial über Servlets und ich sah zwei verschiedene Möglichkeiten, JavaScript in Servlets zu integrieren.Beste Möglichkeit, JavaScript in Java-Servlets zu integrieren

out.println("<html><head>"); 

    RequestDispatcher dispatcher = request.getRequestDispatcher(
     "/WEB-INF/javascript/functions.js"); 

    dispatcher.include(request, response); 

    out.println("<title>Client Forms</title></head><body>"); 

und die andere Möglichkeit:

out.println("<html><head>"); 
out.println("<script language="text/javascript" src="functions.js">"); 
... 

was ist der Unterschied einen Dispatcher oder diese direkt zwischen der Verwendung? Was ist die bessere Lösung?

thx für Ihre Ratschläge ..

+7

Der beste Weg ist JSP anstelle von Servlets verwenden! – invariant

+1

was ist der vorteil? –

+1

Servlet = HTML in Java-Code, JSP = Java in HTML, zum schnellen Nachschlagen: http://stackoverflow.com/questions/2095397/what-is-the-difference-between-jsf-servlet-and-jsp – invariant

Antwort

4

Wenn wir die RequestDispatcher verwenden, werden wir tatsächlich machen Anfrage vom Server für die genannte JS-Datei und dann betten wir sie in das Antwortdokument ein.

Auf der anderen Seite zeigt das Einbetten eines Tags den Browser an, eine solche Anfrage an den Server zu richten. Ich schätze, beide Ansätze werden mindestens zu 99% die gleichen Ergebnisse erzielen, wenn sich Ihre Datei auf einem anderen Server befindet.

Auf der anderen Seite, wenn es auf dem gleichen Server ist, denke ich, RequestDispatcher wird schneller sein.

Serverseitige Zwischenspeicherung hilft bei der ersten Annäherung und bei der Clientseite.

4
<script language="text/javascript" src="functions.js"> 

In diesem Fall könnte Browser-Skript-Cache und es wird nicht auf der nächsten Seite Last laden, wenn es Inhalt ist haven't changed. Das Zwischenspeichern von Ressourcen spart Zeit beim Seitenladen und Netzwerkverkehr. Es spielt keine Rolle, ob Sie dieses Snippet in Servlet oder JSP verwenden.

Übrigens gibt es einen Bug in Ihrer ersten Art, Skript einzuschließen. * .js in der Regel nur Dateien JavaScript-Code enthalten, whithout Markup, so dass Sie vor und schließen Skript-Tag öffnen Script-Tag hinzufügen, sollte nach einschließlich Inhalt von functions.js:

out.println("<script type='text/javascript'>"); 
RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/javascript/functions.js"); 
out.println("</script>"); 
Verwandte Themen