如何从.jsp文件访问.js文件,驻留在不同的webapplication文件夹中

时间:2016-01-10 11:24:19

标签: javascript jsp tomcat

我有以下情况: WebProject结构:

- WebContent (Folder)
    - js (Folder)
        myfunctions.js (Javascript File)
    - jsps (folder)
        myjsp.jsp (JSP-File)

如何引用我的Java Server Page(myjsp.jsp)中的javascriptfile(myfunctions.js)?以下对我不起作用。

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

到目前为止我做了什么:

我在 web.xml 中添加了一个Servlet Mapping来访问Tomcat中的静态内容

  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/js/*</url-pattern>
    </servlet-mapping>

我可以通过直接请求来访问该文件:

http://localhost:8080/mycontextroot/js/myfunctions.js

在我的jsp中使用绝对路径引用时,它也可以工作,但这不是最佳实践:

<script type="text/javascript" src="http://localhost:8080/mycontextroot/js/myfunctions.js"></script>

有任何帮助吗?我还想通过../../../

来防止使用参考位置路径

1 个答案:

答案 0 :(得分:0)

使用EL,你可以

<script ... src="${pageContext.request.contextPath}/js/myfunctions.js">
</script>

使用普通JSP

<script ... src="<%=request.getContextPath()%>/js/myfunctions.js" >
</script>

看到@Stefan的评论,我假设JS文件在WEB-INF下,因为浏览器无法从那里获得。我会相应更正问题标题,以符合您的问题说明。