Сеансы калитки - PullRequest
       9

Сеансы калитки

0 голосов
/ 17 сентября 2010

Я получил форму и текст, который отображается после отправки формы. На данный момент он делает следующее:

Пользователь1 набирает текст и отправляет форму -> получить некоторый результат Пользователь2 заходит на сайт и видит входные данные от Пользователя1 -> должен удалить входные данные и вводит свой собственный -> получить новый результат ...

Я думаю, вы поняли проблему, User2 не должен видеть ввод User1! Дополнительно я хочу сохранить введенный ввод для User1. Поэтому, если он вернется на сайт, он сможет увидеть свои данные и ничего больше!

Я думаю, что мне нужно иметь дело с сессиями здесь - я слышал, что Уикет хорошо справляется с сессиями, но я не могу заставить его работать. Я попробовал что-то подобное:

public class MainStartApplication extends WebApplication {
    @Override
    public Session newSession(final Request request, final Response response) {
        return new MySession(request);
    }

     @Override
    public Class<? extends WebPage> getHomePage() {
        MySession.get().setUserId(user);
    }
}

public class MySession extends WebSession {
    private static final long   serialVersionUID    = 1L;
    private String              userId;

    public MySession(final Request request) {
        super(request);
    }

    public static MySession get() {
        return (MySession) WebSession.get();
    }

    public void setUserId(final String userId) {
        this.userId = userId;
    }

    public String getUserId() {
        return userId;
    }      
}

Но это не работает. (Без ошибок)

Может быть, вы можете дать мне несколько советов?

P.S. Я работаю с Tomcat v6!

Ответы [ 2 ]

4 голосов
/ 18 сентября 2010

Wicket выполняет достаточное количество обработки сессий должным образом, не прибегая к хулиганству с подклассами WebApplication и WebSession.

. Было бы лучше, если вы разместили форму и просмотрите код, который доставляет вам проблемыи позвольте нам помочь диагностировать реальную проблему.

Конечно, существуют ситуации, когда это правильно подклассировать их, но мне не ясно, что у вас есть такая потребность.

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

0 голосов
/ 17 сентября 2015

У Wicket очень хорошая обработка сессии, как сказал @Don Roby. Я использую сеанс wicket в основном для хранения информации о пользователе после того, как пользователь вошел в систему. И я могу получить информацию в любое время, пока у пользователя все еще активен сеанс.

Может быть, эта ссылка поможет вам: Wicket Custom WebSession

...