Java HttpServlet没有从backbone.js获得GET / POST

时间:2013-10-23 14:46:04

标签: java javascript tomcat servlets backbone.js

我是backbone.js和前端开发的新手。如果我的问题是愚蠢的,请注意。我搜索了谷歌和stackoverflow并没有得到答案。这是我的问题。因为我使用前端的骨干和后端的java,我正在尝试使用backbone的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。这是一种正确的方法吗?提前谢谢!

2 个答案:

答案 0 :(得分:0)

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

同时查看Firebug以查看被调用的确切URL以及服务器的响应。

答案 1 :(得分:0)

将某些内容发回给来电者,以便获得200的响应。

PrintWriter out = response.getWriter();
out.println("Hello World");