Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 28.06.2015
Сообщений: 16

Возврат значения - null в OpenShift

17.03.2016, 16:37. Показов 588. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствуют, есть приложение с формой регистрации. На локальном хосте (TomCat 8.0.28) регистрация работает нормально. Но когда заливаю на OpenShift переменная принимающая введенный пользователем mail возвращает всегда null. В firebag значение установлено соответствующее, но код всегда выполняется на куске приведенном в примере ниже и выводит на экран слово mail, хотя должен это строчку передать в ajax(и то при условии что переменная равна null). Уже много раз переделывал проверку условия но результат либо NullPointerException либо строка 'mail'. Может кто сталкивался с таким?
Java
1
2
3
4
5
6
7
8
9
10
11
 String login = req.getParameter("login");
        String password = req.getParameter("password");
        String password2 = req.getParameter("password2");
        String mail = req.getParameter("mail");
        PrintWriter out;
 
        //proverka sushestvovaniya parol/login/mail v base
        if (mail==null || mail.trim().isEmpty()) {
            out = resp.getWriter();
            out.print("mail");
        }...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.03.2016, 16:37
Ответы с готовыми решениями:

Повторный возврат рандомного значения ,без изменения значения
Добрый день. Пишу простую консольную игру Кости. Есть 4-е функции прорисовки костей (2-е на кости игрока и 2-е на кости ПК). Каждая...

Возврат значения С++
Hi people! Вот такое задание: 1) Реализовать заданную динамическую структуру данных, с которой можно работать через перегруженные...

Возврат значения по ссылке
Долго гуглил, но что-то так и не понял. Почему слева от знака = может использоваться только функция, возвращающая ссылку?

6
149 / 162 / 48
Регистрация: 19.10.2012
Сообщений: 530
18.03.2016, 09:05
Анализатором трафика какого то посмотри какой запрос проходит, а точнее, какие параметры передает.
И как выглядит форма/функция запроса на пост?
0
0 / 0 / 0
Регистрация: 28.06.2015
Сообщений: 16
18.03.2016, 11:17  [ТС]
форма JSP
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 <form class="form1" method="post" action="userCabinet.jsp" id="formRegistr">
                <ul class="dopMenu">
                    <li><a href="#" id="borderRegistr">Регистрация</a></li>
                    <li><a href="#popup1" onclick="clearP()">Войти</a></li>
                    <li><a href="#popup2" onclick="clearP()">Забыли пароль?</a></li>
                </ul>
                <input type="text" name="mail" placeholder="E-mail"  value="" id="eEmail"><img src="images/help.png" id="iconE">             
                 <input type="text" name="login" placeholder="Логин" value="" id="eLogin"><img src="images/help.png" id="iconL">                
                <input type="password" name="password" placeholder="Пароль" value="" id="ePassword"><img src="images/help.png" id="iconP">               
                <input type="password" name="password2" placeholder="Повторите пароль" value="" id="eRepeatPass">
                <p id="erRepeatPass"></p>
                <input type="hidden" name="idU"  value="" id="idUserReg">
                <button type="button" class="buttEnter" onclick="redirectRegistr()">Зарегистрироваться</button>
            </form>
js ajax
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
function redirectRegistr(){
    $.ajax({
        url:"UserRegistrac",
        type: "post",
        data:({login: $('#eLogin').val(), password:$('#ePassword').val(), mail:$('#eEmail').val(), password2:$('#eRepeatPass').val()}),
        dataType:"html",
        success: function (errorEnter){
            if(errorEnter === "mailIs")
            {
                document.getElementById('erLogin').style.display = 'none';
                document.getElementById('erPassword').style.display = 'none';
                document.getElementById('erRepeatPass').style.display = 'none';
                document.getElementById('erEmail').style.display = 'block';
                document.getElementById('erEmail').innerHTML = 'Такой email уже занят!';
            }
            else if (errorEnter === "notMail"){
                document.getElementById('erLogin').style.display = 'none';
                document.getElementById('erPassword').style.display = 'none';
                document.getElementById('erRepeatPass').style.display = 'none';
                document.getElementById('erEmail').style.display = 'block';
                document.getElementById('erEmail').innerHTML = 'Такой e-mail не существует!';
            }
            else if (errorEnter === "mail"){
                document.getElementById('erLogin').style.display = 'none';
                document.getElementById('erPassword').style.display = 'none';
                document.getElementById('erRepeatPass').style.display = 'none';
                document.getElementById('erEmail').style.display = 'block';
                document.getElementById('erEmail').innerHTML = 'Введите e-mail!';
            }
            else if (errorEnter === "netTakoyiPochty"){
                document.getElementById('erLogin').style.display = 'none';
                document.getElementById('erPassword').style.display = 'none';
                document.getElementById('erRepeatPass').style.display = 'none';
                document.getElementById('erEmail').style.display = 'block';
                document.getElementById('erEmail').innerHTML = 'E-mail не корректен!';
            }
            else if (errorEnter === "loginIs"){
                document.getElementById('erEmail').style.display = 'none';
                document.getElementById('erPassword').style.display = 'none';
                document.getElementById('erRepeatPass').style.display = 'none';
                document.getElementById('erLogin').style.display = 'block';
                document.getElementById('erLogin').innerHTML = 'Логин уже занят!';
            }
            else if (errorEnter === "login"){
                document.getElementById('erEmail').style.display = 'none';
                document.getElementById('erPassword').style.display = 'none';
                document.getElementById('erRepeatPass').style.display = 'none';
                document.getElementById('erLogin').style.display = 'block';
                document.getElementById('erLogin').innerHTML = 'Введите логин';
            }
            else if (errorEnter === "anotherSymDlinna"){
                document.getElementById('erEmail').style.display = 'none';
                document.getElementById('erPassword').style.display = 'none';
                document.getElementById('erRepeatPass').style.display = 'none';
                document.getElementById('erLogin').style.display = 'block';
                document.getElementById('erLogin').innerHTML = 'Недопустимые символы или неверная длинна!';
            }
            else if (errorEnter === "password"){
                document.getElementById('erEmail').style.display = 'none';
                document.getElementById('erLogin').style.display = 'none';
                document.getElementById('erRepeatPass').style.display = 'none';
                document.getElementById('erPassword').style.display = 'block';
                document.getElementById('erPassword').innerHTML = 'Введите пароль!';
            }
            else if (errorEnter === "passwordDlinna"){
                document.getElementById('erEmail').style.display = 'none';
                document.getElementById('erLogin').style.display = 'none';
                document.getElementById('erRepeatPass').style.display = 'none';
                document.getElementById('erPassword').style.display = 'block';
                document.getElementById('erPassword').innerHTML = 'Длинна пароля должна быть более 5 символов!';
            }
            else if (errorEnter === "passwordLogin"){
                document.getElementById('erEmail').style.display = 'none';
                document.getElementById('erLogin').style.display = 'none';
                document.getElementById('erRepeatPass').style.display = 'none';
                document.getElementById('erPassword').style.display = 'block';
                document.getElementById('erPassword').innerHTML = 'Пароль не должен совпадать с логином!';
            }
            else if (errorEnter === "password2"){
                document.getElementById('erEmail').style.display = 'none';
                document.getElementById('erLogin').style.display = 'none';
                document.getElementById('erPassword').style.display = 'none';
                document.getElementById('erRepeatPass').style.display = 'block';
                document.getElementById('erRepeatPass').innerHTML = 'Повторите пароль';
            }
            else if (errorEnter === "passwordPass2"){
                document.getElementById('erEmail').style.display = 'none';
                document.getElementById('erLogin').style.display = 'none';
                document.getElementById('erPassword').style.display = 'none';
                document.getElementById('erRepeatPass').style.display = 'block';
                document.getElementById('erRepeatPass').innerHTML = 'Пароли не совпадают!';
            }
            else
            {
                document.getElementById('erLoginE').style.display = 'none';
                document.getElementById('erPasswordE').style.display = 'none';
                window.location.href="registr.jsp?mail=" + $('#eEmail').val();
            }
        }
    });
}
java servlet
Java
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
  public void inspectParamForRegistr(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException, SQLException {
 
        String login = req.getParameter("login");
        String password = req.getParameter("password");
        String password2 = req.getParameter("password2");
        String mail = req.getParameter("mail");
        PrintWriter out;
 
        //proverka sushestvovaniya parol/login/mail v base
        if (mail==null || mail.trim().isEmpty()) {
            out = resp.getWriter();
            out.print("mail");
        }
        else if(proverkaMail(mail)){
            out = resp.getWriter();
            out.print("mailIs");
        }
        else if (!testMail(mail)) {
            out = resp.getWriter();
            out.print("netTakoyiPochty");
        }
        else if (proverkaExistanceMail(mail)) {
            out = resp.getWriter();
            out.print("notMail");
        }
        else if(proverkaLogin(login)){
            out = resp.getWriter();
            out.print("loginIs");
        }
        else if(login==null || login.trim().isEmpty()){
            out = resp.getWriter();
            out.print("login");
        }
        else if(!test(login)) {
            out = resp.getWriter();
            out.print("anotherSymDlinna");
        }
        else if(password==null || password.trim().isEmpty()){
            out = resp.getWriter();
            out.print("password");
        }
        else if(password.length() < 5){
            out = resp.getWriter();
            out.print("passwordDlinna");
        }
        else if(password.equals(login)) {
            out = resp.getWriter();
            out.print("passwordLogin");
        }
        else if(password2==null || password2.trim().isEmpty()) {
            out = resp.getWriter();
            out.print("password2");
        }
        else if(!password.equals(password2)) {
            out = resp.getWriter();
            out.print("passwordPass2");
        }else{UserMail.registrUserMail(req);}
    }
0
149 / 162 / 48
Регистрация: 19.10.2012
Сообщений: 530
18.03.2016, 12:01
Что говорит дебагер на req.getParameter("mail")? Что говорит дебагер в браузере при отправке запроса на $('#eEmail').val()? Что говорит анализатор трафика, какие значения параметров проходят в посте?
Почему вытягиваешь элементы из формы, если можно сделать сабмит формы аяксом?

13 вложенных ифэлсов.
И каждый раз они у тебя проходят после успешной регистрации.
Возвращай из сервлета ответ с статус кодом ошибки, и обрабатывай его в error(){ } а не success(){ }. И в обработке ошибки switch а не 13 ифэлсов.
erEmail erLogin erPassword erRepeatPass - есть ли техническая потребность в отдельных блоках для каждой из ошибок?

Добавлено через 6 минут
Проверка соответствия пароля и подтверждения проходить должна на стороне клиента.
Так же как и уникальность логина, с соответствующим дополнительным ajax запросом.

На стороне сервера у тебя 3 разных процедуры валидации мыла, в 4 блоках проверки. то же самое с паролем и логином.
0
0 / 0 / 0
Регистрация: 28.06.2015
Сообщений: 16
18.03.2016, 14:55  [ТС]
Это вообще тестовый вариант, поэтому не заворачивался сильно на switch или if, а столько if else только для проверки разных вариантов. Вообщем и в браузере и при проверке трафика приходят нормальные параметры те что передал. Можно каким то образом отследить работу сервлетов у приложения когда оно на openshift залито, ведь браузер и например wireshark показывает только обработку запросов? Я имею ввиду есть инструмент чтобы дебажить на хосте.
0
149 / 162 / 48
Регистрация: 19.10.2012
Сообщений: 530
18.03.2016, 15:28
http://tools.jboss.org/documen... debug.html

Добавлено через 56 секунд
https://www.google.com.ua/webh... 0openshift
0
0 / 0 / 0
Регистрация: 28.06.2015
Сообщений: 16
18.03.2016, 15:33  [ТС]
Благодарю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.03.2016, 15:33
Помогаю со студенческими работами здесь

Возврат значения процедурой
Недавно начал изучать бейсик и застрял на процедурах. В книге сказано, что есть процедуры, которые возвращают значения, а есть которые не...

Возврат значения из функции
Добрый вечер. Не могу вернуть значение из функции после connect(сигнала) или не так делаю. И еще хотелось бы после выбора строки чтобы...

Возврат значения структуры
Приветствую Есть структура public struct Field { string _name; string _type; string _length; ...

Возврат значения переменной
Добрый день .Столкнулся с такой проблемой . Есть страничка на php в ней есть код js. &lt;script type=&quot;text/javascript&quot;&gt;...

Возврат значения из функции
Добрый вечер. Вопрос следующий , как возвратить из функции create последнее значение ЛС , чтоб в дальнейшем использовать в main. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru