Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / servlet + jsp + ajax / 14 сообщений из 14, страница 1 из 1
19.01.2015, 09:14
    #38857224
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
servlet + jsp + ajax
Здравствуйте, уважаемые форумчане!
помогите разобраться с servlet + jsp + ajax
надо реализовать проверку занятости серию и номера поспорта во время заполнения формы, т.е. если такой паспорт уже существует в БД то сообщение "Пользователь с такими паспортными данными уже существует", иначе сообщение "Дабро!"
для этого реализавол JAVA класс PassportCheck.java для поиска в БД:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
........
Users psernum = new Users();
psernum = sel.getUsersFindByPassportSN(passportSN);
if(psernum != null){
respornse.setContentType("application/text");
respornse.getWriter.print(psernum);
}
........



в JSP странице:
Код: html
1.
2.
3.
4.
.......
серия-номер паспорта: <input type = "text" name="passportSN" onblur="checkpSN(this.value);"/>
<span id="check_pSN"></span>
.......



ну уже сам javascript (checkpassportSN.js):
P.S. раньше не сталкивался с ним по этому взял из примеров в интернете...
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
/* Функция, создающая экземпляр XMLHTTP */
function getXmlHttp() {
    var xmlhttp;
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
        try {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (E) {
            xmlhttp = false;
        }
    }
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
        xmlhttp = new XMLHttpRequest();
    }
    return xmlhttp;
}

function checkpSN(passportSN) {
    var xmlhttp = getXmlHttp();// Создаём объект XMLHTTP
    xmlhttp.open('POST', 'passportcheck', true);// Открываем асинхронное соединение
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');// Отправляем тип содержимого
    xmlhttp.send("passportSN=" + encodeURIComponent(passportSN));// Отправляем POST-запрос
    xmlhttp.onreadystatechange = function () {
        // Ждём ответа от сервера
        if (xmlhttp.readyState == 4) {
            // Ответ пришёл
            if (xmlhttp.status == 200) {
                // Сервер вернул код 200 (что хорошо)
                if (xmlhttp.responseText)
                    document.getElementById("check_pSN").innerHTML = "zanyat!";
                else 
                    document.getElementById("check_pSN").innerHTML = "svoboden!";
            }
        }
    };
}



как бы все хорошо, все передается обработка проходит нормально в сервере но вот не понимаю как получить ответ от сервера...
З.Ы. т.е. после ввода данных и изменения курсора всегда ответ zanyat!
подскажите пожалуйста как правильно реализовать все это.
заранее благодарен!
...
Рейтинг: 0 / 0
19.01.2015, 11:15
    #38857348
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
servlet + jsp + ajax
Музаффар,
посмотреть отправку и ответ в отладчике JS
...
Рейтинг: 0 / 0
19.01.2015, 14:37
    #38857579
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
servlet + jsp + ajax
Petro123,

Спасибо за Ваш ответ.
посмотрел отладчиком и обнаружил что JS всегда получает в качестве responseText объект, т.е. всегда if(xmlhttp.responseText) true и из-за этого я получаю всегда один и тот же ответ что занять!
это не совсем правильно...
З.Ы. как передать информацию из сервлета на Ajax?
...
Рейтинг: 0 / 0
19.01.2015, 14:55
    #38857606
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
servlet + jsp + ajax
Музаффар,
пиши на клиента в поток 0 или 1
Если 1 в JS поймал, то паспорт в БД есть.
...
Рейтинг: 0 / 0
19.01.2015, 14:57
    #38857612
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
servlet + jsp + ajax
Музаффар,
http//приложение/IsYesPassport?number=12345
...
Рейтинг: 0 / 0
19.01.2015, 15:44
    #38857656
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
servlet + jsp + ajax
Petro123,

извините но не совсем понятно...
я должен проверить есть ли такая строка с такими данными т.е.
psernum = sel.getUsersFindByPassportSN(passportSN);
if(psernum != null){
здесь как бы присваиваю 1
и передаю значение
}else {
а тут присваиваю 0
и передаю значение
}

а на ажаксе проверяю значение == 1 если да то уже существует....

я правильно понял?
если да как передать этот значение и как получить в ажаксе?
если можно чуть поподробнее пожалуйста.
...
Рейтинг: 0 / 0
19.01.2015, 16:12
    #38857693
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
servlet + jsp + ajax
Музаффаря правильно понял?
да
if .....
respornse.getWriter.print('1');
...
Рейтинг: 0 / 0
20.01.2015, 05:23
    #38858025
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
servlet + jsp + ajax
Petro123,
извините меня, но как точнее с чем сравнить этот отправленный "1" или "0" вот так что ли? if (xmlhttp.responseText == 1)
...
Рейтинг: 0 / 0
20.01.2015, 08:15
    #38858056
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
servlet + jsp + ajax
Музаффар,
Ну а что мешает попробовать прямо в коде чем в форуме писать? Именно так.
...
Рейтинг: 0 / 0
20.01.2015, 08:25
    #38858057
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
servlet + jsp + ajax
Petro123,

все огромное спасибо Вам!
все получилось... проблема была в том что я все время писалrespornse.getWriter.print( "1" );а надо было просто respornse.getWriter.print('1');
...
Рейтинг: 0 / 0
21.01.2015, 07:16
    #38859147
Alex Kuznetsov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
servlet + jsp + ajax
Музаффар,
Если Вы используете AJAX, то почему не пользуетесь JQuery?

С использованием JQuery, инициализация проверки на стороне клиента превращается в несколько строк кода:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
$('input[id="passportSN"]').focusout(function () {
    $.ajax({
		type:  "POST",
		url:   "passportcheck",
		async: "false",
		cache: "false",
		data:  "passportSN=" + this.value
	    }).done(function (data) {
		if (data !== "0") {
		    $.alert("Пользователь с такими паспортными данными уже существует",
 			      "Внимание !",
			      function () {
				$('input[id="passportSN"]').focus();
				}
                    );
		}
	     });
   });


На стороне сервера точно также:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
	    throws ServletException, IOException {
	response.setContentType("text/html;charset=UTF-8");
        ...
	Users psernum = sel.getUsersFindByPassportSN(passportSN);
            try (PrintWriter out = response.getWriter()) {
		out.write((psernum!=null ? "1" : "0"));
	    }
	...

    }
...
Рейтинг: 0 / 0
21.01.2015, 07:31
    #38859151
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
servlet + jsp + ajax
Alex Kuznetsov,

Спасибо Вам! как бы уже сделал не совсем так как Вы показали но уже работает...
теперь думаю над постраничным выводом данных... ну это уже другая тема наверное :))
...
Рейтинг: 0 / 0
21.01.2015, 07:37
    #38859154
Alex Kuznetsov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
servlet + jsp + ajax
МузаффарAlex Kuznetsov,

Спасибо Вам! как бы уже сделал не совсем так как Вы показали но уже работает...
теперь думаю над постраничным выводом данных... ну это уже другая тема наверное :))
Пожалуйста.
Постраничный вывод данных - это отдельная тема и здесь лучше её не начинать, дабы не вводить людей в заблуждение.
...
Рейтинг: 0 / 0
21.01.2015, 07:51
    #38859158
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
servlet + jsp + ajax
Alex Kuznetsov,

да по этому я сам сказал что это уже другая тема...
для начала я сам поишу может найду, что не понятно вот тогда и буду спрашивать у знающих...
З.Ы. а эту тему можем закрыть.
Всем огромное спасибо!
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / servlet + jsp + ajax / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]