我是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。这是一种正确的方法吗?提前谢谢!
答案 0 :(得分:0)
调用的URL应包括上下文路径,即部署应用程序的路径。这通常是包含应用程序的文件夹的名称或WAR文件的名称,没有.war
扩展名。因此,如果您的应用程序位于xxx.war
文件夹中,请尝试url: "/xxx/todo"
。
同时查看Firebug以查看被调用的确切URL以及服务器的响应。
答案 1 :(得分:0)
将某些内容发回给来电者,以便获得200的响应。
PrintWriter out = response.getWriter();
out.println("Hello World");