Я пытаюсь вызвать ajax с использованием jquery и jsp, но не могу заставить его работать.
<%@page import="in.isuru.twitter.Twits" %>
<%@page import="java.util.ArrayList" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Twitter Sinhala</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script src="script.js" type="text/javascript"></script>
</head>
<body>
<form id="form" action="twitterv2" method="post">
Enter Something
<input id="term" type="text" name="term" />
<input id="submit" type="submit" value="Show results" name="submit"/>
</form>
<p id="result"></p>
</body>
</html>
Это сервлет.
package in.isuru.twitter;
import java.io.IOException;
import java.util.ArrayList;
import javax.servlet.http.*;
import twitter4j.Query;
import twitter4j.QueryResult;
import twitter4j.Tweet;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
@SuppressWarnings("serial")
public class TwitterV2Servlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
resp.setContentType("text/html");
//Twits tweets = new Twits();
Twitter twitter = new TwitterFactory().getInstance();
//twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
Query query = new Query("man");
QueryResult result = null;
try {
result = twitter.search(query);
} catch (TwitterException e) {
e.printStackTrace();
}
for (Tweet tweet : result.getTweets()) {
resp.getWriter().println(tweet.getFromUser() + ":" + tweet.getText() + " <br/>");
}
}
}
Это script.js
$(document).ready(function() {
$('#form').submit(function() {
var number = $('#term').val();
$.ajax({
type: "post",
url: "twitterv2",
data: "term=" + term,
success: function(msg) {
$('#result').hide();
$("#result").html("<h3>" + msg + "</h3>").fadeIn("slow");
}
});
return false;
});
});
Это 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" version="2.5">
<servlet>
<servlet-name>TwitterV2</servlet-name>
<servlet-class>in.isuru.twitter.TwitterV2Servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TwitterV2</servlet-name>
<url-pattern>/twitterv2</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
Я не могу заставить это работать. Когда я иду на страницу сервлета и приводить аргументы, как
http://localhost:8888/twitterv2?term=people показывает сообщения в твиттере. Так что в сервлете нет ошибок, я думаю, что проблема в script.js. Но я не могу найти ошибку.