Проблема получения имени пользователя и пароля с помощью Ajax и Java - PullRequest
1 голос
/ 02 февраля 2011

Я использую Ajax на странице jsp, где у нас есть форма заполнения с именем пользователя и паролем Я могу получить их на той же странице. Но при передаче его сервлету, т.е. файлу Admin.java, имя пользователя и пароль не передаются.

Код:

function prepareLoginDialog(){
        $dialog = $('<div></div>')
        .html('<div id="dialog-confirm" title="Enter the login details here :">'+
            'User: <input type="text" id="u" name="u" ></input><br />'+
            'Pass: <input type="password" id="p" name="p" ></input>'+
            '</div>')

            //System.out.println(user);
        //System.out.println(pass);
        .dialog({
            autoOpen: false,
            modal: true,
            title: 'Login',
            buttons: {
                'Login': function() {
                    //Send Login Request to Server
                    var user = document.getElementById("u").value;
                    var pass = document.getElementById("p").value;
                    alert(user);
                    alert(pass);
                    //System.out.println(u.text);
                    login(user,pass);

                    $(this).dialog('close');
                },
                Cancel: function() {
                    $(this).dialog('close');
                }
            }

Функция входа в систему:

function login(user, pass) {
        //ToDo: User Login check
        alert(user);

        $.ajax({
            type:"GET",
            url: "Admin?action=login",
            dataType: "html",
            data: { username: user, password: pass },
            success: function(response){
                prepareLogoutDialog();
                prepareLoggedIn();
            }
        });

В файле Java это

request.getSession().setAttribute("access", true);
            System.out.println("Admin:doGet:login:true");
            System.out.println("u");
            String userName = request.getParameter("u");

            String password = request.getParameter("p");
            System.out.println(userName);
            System.out.println(password);

Не печатается. Нужно ли преобразовывать имя пользователя и пароль в строку перед передачей? Если да, то как нам это сделать?

Пожалуйста, помогите.

1 Ответ

4 голосов
/ 02 февраля 2011

Вы ожидаете их как параметры запроса u и p, поэтому вы должны также передать их так:

data: { u: user, p: pass },

или изменить свой сервлет, чтобы получать их с заданными именами в data {}

String userName = request.getParameter("username");
String password = request.getParameter("password");

С другой стороны, System.out.println() печатает на стандартный вывод (который заканчивается в лог-файле), а не на ответ HTTP.Если вы ожидаете их в ответе, так что он доступен в виде содержимого response в function(response), то вам необходимо распечатать ответ HTTP.

response.setContentType("text/plain;charset=UTF-8");
PrintWriter writer = response.getWriter();
writer.println(userName);
writer.println(password);

Вопросы, связанные с данной:

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