[英]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.