在Javaservlet中包含javascript的最佳方法

在Javaservlet中包含javascript的最佳方法,java,javascript,servlets,Java,Javascript,Servlets,我实际上读了一篇关于servlet的教程,看到了在servlet中包含javascript的两种不同方法 out.println("<html><head>"); RequestDispatcher dispatcher = request.getRequestDispatcher( "/WEB-INF/javascript/functions.js"); dispatcher.include(request, response); ou

我实际上读了一篇关于servlet的教程,看到了在servlet中包含javascript的两种不同方法

  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>");
out.println(“”);
RequestDispatcher=request.getRequestDispatcher(
“/WEB-INF/javascript/functions.js”);
调度器。包括(请求、响应);
out.println(“客户表格”);
另一种可能性是:

out.println("<html><head>");
out.println("<script language="text/javascript" src="functions.js">");
...
out.println(“”);
out.println(“”);
...
使用调度器和直接包含有什么区别?更好的解决方案是什么

谢谢您的建议。


<script language="text/javascript" src="functions.js">
在这种情况下,浏览器可以缓存脚本,若它是内容,则不会在下一页加载。缓存资源可以节省页面加载和网络流量的时间。不管您是在servlet还是jsp中使用此代码段

顺便说一句,在第一种包含脚本的方法中有一个bug。*。js文件通常只包含javascript代码,不包含标记,因此您应该在包含functions.js内容之前添加开始脚本标记,在包含functions.js内容之后添加结束脚本标记:

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

当我们使用
RequestDispatcher
时,我们实际上是从服务器请求所述JS文件,然后将其嵌入响应文档中

另一方面,嵌入标记将指向浏览器向服务器发出这样的请求。我想,如果您的文件位于不同的服务器上,这两种方法至少会在99%的时间内获得相同的结果

另一方面,如果它在同一台服务器上,我认为RequestDispatcher会更快


服务器端缓存将有助于第一种方法,客户端缓存将有助于另一种方法

最好的方法是使用JSP而不是servlet!Servlet=html的java代码,JSP=java的html代码,供快速参考: