我的jsp文件找不到我的javascript文件

时间:2016-01-03 21:51:49

标签: java jsp servlets

我的jsp文件找不到我的javascript文件。在这里你可以看到我的jsp文件:

    <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src="ressources/js/addMatrix.js"></script>
</head>
<body>
    <div ng-app="App" ng-controller="MainCtrl">
        <p>Add a new element : </p>
        <table>
            <tr>
                <td data-ng-repeat="data in texts">
                    <button>{{data.text}}</button>
                </td>
                <td data-ng-repeat="field in fields">
                    <form ng-submit="submit(text)">
                        <input type="text" ng-model="text" name="text"
                            placeholder="New Category" />
                    </form>
                </td>
                <td>
                    <button ng-click="addNewChoice()">+</button>
                </td>
            </tr>
        </table>
    </div>
</body>
</html>

我的javascript文件位于文件夹/ WebContent / ressources / js中,而jsp文件位于文件夹/ WebContent中。

我的servlet只在get方法中包含此调用:

this.getServletContext().getRequestDispatcher("/index.jsp").forward(req, resp);

我的web.xml文件如下所示:

 <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
 <servlet>
    <servlet-name>Home</servlet-name>
    <servlet-class>com.pi.servlets.Index</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Home</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

等待你的帮助。谢谢

2 个答案:

答案 0 :(得分:5)

我不是JavaEE dev,所以这可能不是最佳解决方案,但我认为这可能是一个好的开始

  

我的jsp文件找不到我的javascript文件

<script src="ressources/js/addMatrix.js"></script>在客户端执行。因为它不是像

这样的绝对路径
https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js

但相对一个,它会尝试根据当前位置(浏览器可用的URL)查找ressources目录。因此,如果您的网址类似于

http://server/project/someTask/yourServlet

它会尝试在

中找到它
http://server/project/someTask/ 

代替resources

http://server/project/

简单的方法是让你的路径相对于服务器的根目录(所以用/开头)并包含项目名称:

<script src="/project/ressources/js/addMatrix.js"></script>

或者为了使其更具动态性,您可以使用EL以/project格式读取项目名称,因此您的代码可能看起来像

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

答案 1 :(得分:0)

您可以在chrome中打开它,然后点击f12按钮,然后在标签源下,您可以看到它是否已连接。