1

我是backbone.js 和前端开发的新手。如果我的问题很愚蠢,请道歉。我搜索了谷歌和stackoverflow,但没有得到答案。这是我的问题。由于我在前端使用主干,后端使用 java,因此我正在尝试使用主干的 collections.fetch() 和 save() 等来与 Java Servlet 对话。模型就这么简单:

var Todo = Backbone.Model.extend({
   defaults: {
       title: '',
       completed: false
   }
});

    var TodosCollection = Backbone.Collection.extend({
    model: Todo,
    url: '/todo'
});

var todos = new TodosCollection();
todos.fetch();

我在 web.xml

<servlet>
    <servlet-name>todo</servlet-name>
    <servlet-class>test.web.TodoServlet</servlet-class>
</servlet>
<servlet-mapping>
   <servlet-name>todo</servlet-name>
   <url-pattern>/todo</url-pattern>
</servlet-mapping>

对于 TodoServlet.java,我只需使用以下代码来检查它是否获取 GET 和 POST:

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{  
     logger.debug("In /todo: doGet");
}

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{  
     logger.debug("In /todo: doPost");
}

当我在 Tomcat 上运行它并打开网页时,服务器似乎没有得到 GET。这是正确的方法吗?提前致谢!

4

2 回答 2

0

调用的 URL 应该包括上下文路径,即应用程序部署的路径。这通常是包含应用程序的文件夹的名称或 WAR 文件的名称,不带.war扩展名。因此,如果您的应用程序位于该文件夹xxx.war中,请尝试url: "/xxx/todo"

还要检查 Firebug 以查看被调用的确切 URL 和来自服务器的响应。

于 2013-10-23T14:55:19.737 回答
0

向调用者发送一些内容,以便它得到 200 的响应。

PrintWriter out = response.getWriter();
out.println("Hello World");
于 2013-10-23T15:29:53.237 回答