2016-10-19 85 views
0

我正在學習jQuery AJAx並將其用作參考:http://www.journaldev.com/4742/jquery-ajax-jsp-servlet-java-example 我正在使用Tomcat和下面的代碼。當我運行tomcat時,我可以通過http://localhost:8080/clientest/訪問我的站點,並顯示用戶名的輸入字段。但是一旦我輸入了名字,什麼都沒有發生 我知道教程沒有提到使用tomcat。這可能是問題嗎?我對客戶端編程和servlet很陌生,所以也許我誤解了一些東西。我非常感謝有人能幫助我。Ajax回調不起作用。發送請求後沒有任何反應

的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> 

回答

0

所以我一直在四處尋找stackoverflow。所以我誤解了我的錯誤。由於什麼都沒有發生,我的app-ajax文件甚至沒有被使用。這就像是根本沒有額外的腳本。看看我的項目結構,我把我的app-ajax文件放在一個js文件夾中。這就是爲什麼它從未被稱爲。一旦我將我的app-ajax文件放在與我的index.jsp文件相同的目錄中,它就可以正常工作。這不是最簡單的解決方案,但它對我來說很重要。任何人都應該遇到同樣的問題。

0

那你的網址:

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

/clientest

$.ajax({ 
     url : 'clientserver', 

clientserver

應該說明