簡體   English   中英

如何從jQuery的$ .ajax()函數調用servlet

[英]How to call a servlet from a jQuery's $.ajax() function

我試圖從jQuery的.ajax()函數調用一個servlet。

目前我不認為我甚至不會調用servlet或將paramaters傳遞給它,但是很多Google搜索似乎沒有幫助。 有任何想法嗎?

這是我的HTML:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
function login(){  

  $("#loading").hide();

  var email = document.nameForm.email.value;  
  $.ajax({  
    type: "GET",  
    url: "ProcessForm",  
    data: "email="+email,  
    success: function(result){  
      alert(result);
    }                
  });  
}        
</script>
<title>My AJAX</title>
</head>
<body>
<p>This time it's gonna work</p>
<form name="nameForm" id="nameForm" method="post" action="javascript:login()">

電郵加載

</body>
</html>

還有我的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>ajaxtry</display-name>
  <welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

  <servlet>
<servlet-name>ProcessForm</servlet-name>
<servlet-class>com.ajaxtry.web.ProcesFormServlet</servlet-class>
  </servlet>
   <servlet-mapping>
<servlet-name>ProcessForm</servlet-name>
<url-pattern>/ProcessForm</url-pattern>
  </servlet-mapping>
</web-app>

servlet目前只是一個模板:

package com.ajaxtry.web;

// imports here

public class ProcessFormServlet {

  public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {

    response.setContentType("text/html");
    PrintWriter out = response.getWriter();

    System.out.println(request.getParameter("email")); 
  }
}

這里有幾個問題:

您正在調用System.out.println,它只是將輸出發送到標准輸出 - 而不是發送到瀏覽器。 嘗試將“System.out.println”更改為“out.println”

看起來你已經在你的servlet代碼中定義了doPost(),但你的javascript使用的是“GET”方法。 將doPost()重命名為doGet(),或者同時定義它們。

話雖這么說,你可能根本不應該打擾javascript,直到你實際上讓servlet工作,保持簡單。 你應該能夠通過在瀏覽器中加載/ ProcessForm?email = testing來測試它並查看一些輸出。 一旦你順利完成,那么你就可以開始擔心前端代碼了。

希望這有助於您入門。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM