создание логина и welcomenpages с использованием JSP - PullRequest
0 голосов
/ 01 марта 2011

Я хочу создать страницу входа в систему, когда пользователь выбирает флажок запомнить имя пользователя или запомнить меня, должен быть создан файл cookie, когда установлен флажок запомнить имя пользователя, в нем должно храниться имя пользователя, если установлен флажок запомнить меня. выбранный он должен хранить имя пользователя и пароль, чтобы избежать повторного ввода, когда пользователь возвращается на страницу входа.

Я написал предыдущий код для включения функциональности, но при тестировании страницы пользователь должен повторно вводить имя пользователя при каждой загрузке страницы входа. Я не могу определить причину проблемы, может ли кто-нибудь помочь мне с этим?

<%
String userName = request.getParameter("username");
String password = request.getParameter("password");
String rm_me = request.getParameter("rm_me");
String rm_uname = request.getParameter("rm_uname");

if (userName != null && password != null) {
    if (rm_me != null) {
        Cookie ckU = new Cookie("username", userName);
        Cookie ckP = new Cookie("password", password);
        response.addCookie(ckP);
    } else {
        if (rm_uname != null) {
        Cookie ckU = new Cookie("username", userName);
    }
}

Cookie[] cookies = request.getCookies();
if (cookies != null) {
    for (int i = 0; i < cookies.length; i++) {
        if (cookies[i].getName().equals("username")) {
            userName = cookies[i].getValue();
        }
        if (cookies[i].getName().equals("password")) {
            password = cookies[i].getValue();
        }
    }
}
%>

Ответы [ 2 ]

1 голос
/ 01 марта 2011

Вы не должны делать подобные вещи в JSP. Вы должны использовать do в сервлете «controller», а затем перенаправить результат в JSP, чтобы (просто) отформатировать HTML-ответ.

И я думаю, что ваша проблема, скорее всего, связана с этим. В частности, я подозреваю, что ответ будет уже зафиксирован ко времени выполнения кода скриптлета. Это означает, что ваш response.addCookie(...); вызов будет слишком поздно для добавления заголовка SetCookie к ответу.

Вы сможете подтвердить это, сбросив заголовки ответов, когда они покидают сервер или когда они достигают вашего браузера ... или (реже), просматривая хранилище cookie браузера.

0 голосов
/ 01 марта 2011

Практически любая вводная книга или учебник по JSP будет содержать примеры всего, что вы хотите.Любой достаточно недавний автор также скажет вам, что использование кода Java в JSP действительно очень плохо, просто не делайте этого.Вместо этого используйте JSTL.

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