我正在进行一个Ajax项目。 我在html中使用servlet,jquery和Google应用程序引擎。
web.xml XML映射
<servlet>
<servlet-name>ContactsWithAjaxServlet</servlet-name>
<servlet-class>com.ContactsWithAjaxServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ContactsWithAjaxServlet</servlet-name>
<url-pattern>/ContactsWithAjaxServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
HTML
<form name="addform">
<table>
<tr><td>First Name:</td><td> <input type="text" name="name"/></td></tr>
<tr><td>Last Name:</td><td> <input type="text" name="lname"/></td></tr>
<tr><td><input type="submit" value="Add" name="Add" id="Add"/></td>
<td><input type="reset" value="reset"/></td></tr>
</table>
</form>
的Servlet
package com;
public class ContactsWithAjaxServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.setCharacterEncoding("UTF-8");
resp.setHeader("Access-Control-Allow-Origin", "*"); // E
PrintWriter out = resp.getWriter();
out.println(""); //Html codes in several out.println
out.flush();
}
html中的JQuery
$(document).ready(function() {
$('#Add').click(function() {
$.get('/ContactsWithAjaxServlet', function(responseText) {
$('p').text("<h1>Hello</h1>");
});
});
});
我的代码有什么问题。来自jquery的请求没有命中servlet。我尝试在jquery方法中更改url。请帮我解决网址映射问题。我找不到其他有用的材料。
答案 0 :(得分:0)
更新
看起来你的servlet网址是正确的。首先确保您可以使用浏览器和http://localhost:8888/ContactsWithAjaxServlet
然后在不使用Ajax的情况下正确调用表单。通过添加操作和方法属性修复表单标记,并暂时评论javascript。
<form name="addform" method="GET" action="/ContactsWithAjaxServlet">
如果一切正常,你可以考虑使用Ajax,如果你真的需要它
如果您不希望整页重新加载,则需要阻止表单提交或将Add
按钮类型从submit
更改为button
。
<input type="button" value="Add" name="Add" id="Add"/>
在表单中添加id
,以便更轻松地查询
<form name="addform" id="addform">
然后读取表单数据并手动调用servlet:
$(document).ready(function() {
$('#Add').click(function() {
$.get('/ContactsWithAjaxServlet', $("#addform").serialize(), function(responseText) {
$('p').text("<h1>Hello</h1>");
});
});
});