在 java servlet 中包含 javascript 的最佳方法
Posted
技术标签:
【中文标题】在 java servlet 中包含 javascript 的最佳方法【英文标题】:Best Way to include javascript in java servlets 【发布时间】:2012-10-18 22:06:41 【问题描述】:我实际上阅读了一个关于 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("<html><head>");
out.println("<script language="text/javascript" src="functions.js">");
...
使用调度程序或直接包含有什么区别?什么是更好的解决方案?
感谢您的建议..
【问题讨论】:
最好的方法是使用 JSP 而不是 servlet! Servlet = html in java code , JSP = java in HTML ,供快速参考:***.com/questions/2095397/… 【参考方案1】:<script language="text/javascript" src="functions.js">
在这种情况下,浏览器可以缓存脚本,如果它的内容为haven't changed,它将不会在下一页加载时加载。缓存资源可以节省页面加载和网络流量的时间。在servlet还是jsp中使用这个sn-p都没有关系。
顺便说一句,您第一种包含脚本的方式有一个错误。 *.js 文件通常只包含javascript代码,没有标记,所以你应该在包含functions.js的内容之前添加开始脚本标签和结束脚本标签:
out.println("<script type='text/javascript'>");
RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/javascript/functions.js");
out.println("</script>");
【讨论】:
【参考方案2】:当我们使用RequestDispatcher
时,我们实际上是从服务器请求该JS文件,然后我们将它嵌入到响应文档中。
另一方面,嵌入标签将使浏览器向服务器发出这样的请求。如果您的文件位于不同的服务器上,我猜这两种方法至少在 99% 的时间都将获取相同的结果。
另一方面,如果在同一台服务器上,我认为RequestDispatcher会更快。
服务器端缓存将有助于第一种方法和客户端的另一种方法。
【讨论】:
以上是关于在 java servlet 中包含 javascript 的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章