Ajax回调无法正常工作。请求发送后没有任何反应

时间:2016-10-19 18:11:50

标签: java jquery ajax tomcat servlets

我正在学习jQUery AJAx并将其用作参考:http://www.journaldev.com/4742/jquery-ajax-jsp-servlet-java-example 我正在使用Tomcat和以下代码。当我运行tomcat时,我可以通过http://localhost:8080/clientest/访问我的网站,并显示用户名的输入字段。但是,一旦我输入一个名字,没有任何事 我知道教程没有提到使用tomcat。这可能是问题吗?我是客户端编程和servlet的新手,所以也许我误解了一些东西。如果有人能帮助我,我将非常感激。

的Servlet

 package org.cc.sbc;
 import javax.servlet.ServletException;
 import javax.servlet.annotation.WebServlet;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;

 @WebServlet("/clientest")
 public class SayHelloServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    String userName = request.getParameter("userName").trim();
    if(userName == null || "".equals(userName)){
        userName = "Guest";
    }

    String greetings = "Hello " + userName;

    response.setContentType("text/plain");
    response.getWriter().write(greetings);

}

}

我的index.jsp文件:

 <%@ page language="java" contentType="text/html; charset=UTF-8"
     pageEncoding="UTF-8"%>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>jQuery, Ajax and Servlet/JSP integration example</title>

<script src="http://code.jquery.com/jquery-latest.js"
        type="text/javascript"></script>
<script src="js/app-ajax.js" type="text/javascript"></script>
</head>
<body>
<form>
  Enter Your Name: <input type="text" id="userName" />
 </form>
 <br>
 <br>

 <strong>Ajax Response</strong>:
 <div id="ajaxGetUserServletResponse"></div>
 </body>
 </html>

APP-ajax.js:

$(document).ready(function() {
$('#userName').blur(function() {
    $.ajax({
        url : 'clientserver',
        data : {
            userName : $('#userName').val()
        },
        success : function(responseText) {
            $('#ajaxGetUserServletResponse').text(responseText);
        }
    });
});
});

的web.xml:

  <web-app>
  <display-name>Archetype Created Web Application</display-name>
  <servlet>
    <servlet-name>SayHelloServlet</servlet-name>
    <servlet-class>org.cc.sbc.SayHelloServlet</servlet-class>
    <init-param>
      <param-name>compilerSourceVM</param-name>
      <param-value>1.8</param-value>
    </init-param>
    <init-param>
      <param-name>compilerTargetVM</param-name>
      <param-value>1.8</param-value>
    </init-param>
  </servlet>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

2 个答案:

答案 0 :(得分:0)

所以我一直在寻找stackoverflow。所以我误解了我的错误。由于什么都没发生,我的app-ajax文件甚至没有使用过。这就像没有额外的脚本一样。看看我的项目结构,我将app-ajax文件放在js文件夹中。这就是它从未被调用过的原因。一旦我将app-ajax文件放在与index.jsp文件相同的目录中,它就可以正常工作。它不是最好的解决方案,但它对我来说很重要。如果有人遇到同样的问题。

答案 1 :(得分:0)

你的网址怎么样:

@WebServlet("/clientest")
public class SayHelloServlet extends HttpServlet

/clientest

$.ajax({
        url : 'clientserver',

clientserver

应该说明