Как вызвать сервлет из функции $ .ajax () jQuery - PullRequest
4 голосов
/ 02 декабря 2009

Я пытаюсь вызвать сервлет из функции .ajax () jQuery.

В настоящий момент я даже не думаю, что я даже вызываю сервлет или передаю ему параметры, однако многие из поисков в 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()">

E-mail загрузка

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

В данный момент сервлет является просто шаблоном:

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

1 Ответ

10 голосов
/ 02 декабря 2009

Пара проблем здесь:

Вы вызываете System.out.println, который просто отправляет вывод на стандартный вывод, а не в браузер. Попробуйте изменить "System.out.println" на просто "out.println"

Похоже, вы определили doPost () в своем коде сервлета, но ваш javascript использует метод "GET". Переименуйте doPost () в doGet () или определите оба.

При этом, вам, вероятно, вообще не стоит беспокоиться о javascript, пока вы на самом деле не получите работающий сервлет, чтобы сделать его простым. Вы должны быть в состоянии проверить это, загрузив / ProcessForm? Email = testing в вашем браузере и увидеть некоторые результаты. Как только вы это сделаете, вы можете начать беспокоиться о внешнем коде.

Надеюсь, это поможет вам начать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...