Я собираюсь реализовать функцию поиска для системы управления sms, где пользователь может ввести имя (ключевое слово) и получить соответствующую информацию.Передача значений из сервлета в jsp
Это код, который я написал в "InstantSMS.jsp"
$("#search").click(function() {
var keyword = $("#customerName").val();
$.ajax({
type : "GET",
url : "SearchingClass",
data : {
key : keyword
}
}).success(function() {
$.getJSON('SearchingClass', function(data) {
$("#resultTable").html(data.messageRes);
});
})
.error(function(request, error) {
$().toastmessage('showWarningToast', "Error! ");
});
});
Здесь 'SearchingClass' имя сервлета. это код «» SearchingClass.java
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String keyword = request.getParameter("key");
SmsMessagesService search = new SmsMessagesService();
ArrayList<Customers> result = new ArrayList<Customers>();
System.out.println("For testing Keyword is ::: "+keyword);
result = search.searchCustomer(keyword);
String table = "in here i'll generate a code to draw a table using html"
Map<String, Object> data = new HashMap<String, Object>();
data.put("messageRes", table);
// Write response data as JSON.
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(new Gson().toJson(data));
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
Теперь проблема после того, как я нажмите кнопку поиска процесс поиска или метод запустить doGet 2 раза.
В 1-й выходе запуска «для тестирования ключевых слов является ::: Джона» второго прогона «Для тестирования Ключевого слова является :::»
Я думаю, что второй запуск происходит из-за «$ .getJSON() ". Как этого избежать?
Как я могу использовать метод $ .getJSON() только для получения «таблицы строк», но не для запуска метода doGet()?
Есть ли другой способ получить строку из сервлета в jsp с помощью ajax?
Могу ли я передать это ключевое слово, используя метод $ .getJSON()?
Спасибо!
'.getJSON()', безусловно, делает другой вызов сервлета, но в этом конкретном запросе он не отправляет ключ. Таким образом, это полностью объясняет второй пробег без ключевого слова в выходе. Вы не хотите, чтобы он снова вернулся к сервлету? Если нет, то каково было первоначальное намерение метода '.getJSON()', чтобы кто-то мог помочь вам разобраться в том, что нужно для аксинга? –