Jquery请求没有到达servlet

时间:2014-09-06 07:24:16

标签: java javascript jquery ajax servlets

我正在进行一个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。请帮我解决网址映射问题。我找不到其他有用的材料。

1 个答案:

答案 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>");                         
      });
    });
  });