2012-10-29 16 views
7

in realtà ho letto un tutorial sui servlet e ho visto due modi diversi per includere javascript nei servlet.Modo migliore per includere javascript in servlet java

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>"); 

e l'altro possiblity:

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

qual è la differenza tra l'utilizzo di un dispatcher o comprendente direttamente? qual è la soluzione migliore?

thx per i vostri consigli ..

+7

Best Way utilizza JSP anziché servlet! – invariant

+1

qual è il vantaggio? –

+1

Servlet = html nel codice java, JSP = java in HTML, per un rapido riferimento: http://stackoverflow.com/questions/2095397/che-è-del-differenza-del-file-servizio-e-jsp – invariant

risposta

4

Quando usiamo la RequestDispatcher, in realtà stiamo facendo richiesta dal server per il suddetto file JS e quindi incorporata nel documento di risposta.

D'altra parte, l'incorporamento di un tag punterà il browser a effettuare tale richiesta al server. Immagino che entrambi gli approcci recupereranno gli stessi risultati nel 99% del tempo, almeno se il tuo file è su un altro server.

D'altra parte, se si trova sullo stesso server, penso che RequestDispatcher sarà più veloce.

Il caching del lato del server aiuterà nel primo approccio e nel lato client l'uno nell'altro.

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

In questo caso browser potrebbe memorizzare nella cache script e non verrà caricato sul caricamento della pagina successiva se il suo contenuto haven't changed. Le risorse di memorizzazione nella cache consentono di risparmiare tempo nel caricamento della pagina e nel traffico di rete. Non importa se usi questo snippet in servlet o jsp.

A proposito, c'è un bug nel tuo primo modo di includere lo script. * .js file di solito contengono solo codice javascript, whithout markup, così si dovrebbe aggiungere tag di apertura e di chiusura script prima tag script dopo aver incluso il contenuto di functions.js:

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