在JSP文件中包含JavaScript库

在JSP文件中包含JavaScript库,javascript,java,jsp,Javascript,Java,Jsp,我试图使用JSP文件中的JavaScript库中的JavaScript函数在web浏览器页面上显示结果,但似乎包含不起作用 实际上,我将与库对应的.js文件放在WEB-INF文件夹中,并在JSP文件中添加了以下行以将其包含在其中: 静态资源应该放在WEB-INF文件夹之外(因为您通常不允许对其内容进行WEB访问) 您可以将文件放在webapp/js/下,然后将脚本导入更改为: <script type="text/javascript" src="/js/jsgl.min.js">

我试图使用JSP文件中的JavaScript库中的JavaScript函数在web浏览器页面上显示结果,但似乎包含不起作用

实际上,我将与库对应的.js文件放在WEB-INF文件夹中,并在JSP文件中添加了以下行以将其包含在其中:


静态资源应该放在WEB-INF文件夹之外(因为您通常不允许对其内容进行WEB访问)

您可以将文件放在webapp/js/下,然后将脚本导入更改为:

<script type="text/javascript" src="/js/jsgl.min.js"></script>

除了良好的实践之外,这也很好,因为它与JSP文件的位置无关

Files in WEB-INF are inaccessible.
您可以将它们放在webapp下,并尝试如上所述进行访问。

TLDR

将JS文件放在web内容(但不是web-INF)下的文件夹中,如[WebContent]/JS/jsgl.min.JS,并在JSP中使用以下内容:

<script type="text/javascript" src="${pageContext.request.contextPath}/js/jsgl.min.js"></script>
JSP将把
${pageContext.request.contextPath}
位转换为当前上下文路径,使代码可移植(如果您使用不同的上下文路径重新部署webapp,它仍然可以工作)。因此,浏览器收到的HTML响应将是(同样,坚持上面的示例):


浏览器现在将把该相对URL解析为正确的目标

__


*如果原始URL后面有斜杠=即was
http://example.com/SomeWebApp/some-resource/
,JS URL将是
http://example.com/SomeWebApp/some-resource/jsgl.min.js

src
中的路径正确吗?这就是实际的javascript文件所在的位置吗?可能检查文件名是否正确,作为一项健全性检查。您是否尝试过src=“/WebContent/js//jsgl.min.js”@Rupesh是的,但它不起作用我没有webapp文件夹,我正在使用Eclipse,我尝试过与您所说的类似的方法,通过在WebContent中添加一个“js”文件夹,我用您的导入脚本替换了我的导入脚本,但它仍然不起作用。“webapp”指的是您的web应用的根文件夹。通常,eclipse动态web项目中的默认名称为“WebContent”。因此,该文件应该位于“WebContent/js/”下,并按照上面的建议在jsp中使用脚本标记。您是否将jsp脚本标记的属性更改为[src=“/js/jsgl.min.js”]?是的,这就是我所说的@Ernest Kiwele
将无法工作,因为它缺少web应用程序的上下文路径。改为使用
。我尝试了您建议的方法,但仍然无效:/@daiscogI正在本地主机中工作,这可能是问题的根源吗?这应该不是问题。您的浏览器仍将正常解析相对URL。确认一下:脚本文件位于
WebContent/js/
文件夹中,浏览器中的URL以
http://localhost/YourWebApp/...
?没关系,应该没问题。因此,问题要么是脚本标记中的URL错误,要么是JS文件不是您期望的位置。在脚本标记的src属性中,将哪个URL传递到浏览器?(右键单击浏览器中的页面,然后单击“查看源代码”或“查看页面源代码”或类似内容,找到脚本标记,检查URL。)如果将该URL粘贴到浏览器中,是否会得到404?此外,我不知道Eclipse是否会在您移动文件后自动更新构建的webapp,因此,您可能需要重新部署web应用程序(clean&build或类似)。
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jsgl.min.js"></script>
<script type="text/javascript" src="/SomeWebApp/js/jsgl.min.js"></script>