- PVSM.RU - https://www.pvsm.ru -
Для начала немного уточним о чем идет речь. Wicket хранит последнюю просмотренную страницу в сессии, но в случае если страница очень большая, иногда это может стать проблемой. Для того что бы избежать этих проблем, можно попытаться сделать страницу Stateless(т.е. не имеющую состояния).
Итак, Stateless page — это страница не имеющая состояния, Statefull page — это страница с состоянием.
Stateless страницы не хранят никакого состояния из-за чего нет необходимости сохранять их от запроса к запросу.
Такие страницы не сохраняются ни в сессии ни в истории посещённых страниц хранящейся на диске, таким страницам не присваивается версия, как это происходит со statefull страницами. При каждом запросе к такой странице, её экземпляр создаётся заново.
Для того что бы страница стала stateless необходимо выполнить два условия:
При выполнении этих условий, такая страница автоматически становится stateless. Но если на странице используется хотя бы один компонент, который не является stateless, то вся страница становится statefull, и полностью сереализуется и сохраняется в сессии, и далее в истории на диске.
Рассмотрим подробнее эти два условия:
Bookmarkable страница означает, что этой странице можно самостоятельно назначить URL, и этот URL не содержит ни какой информации связанной с сессией(к примеру версии страницы), и
её можно открыть непосредственно набрав адрес в браузере, даже если сессия ещё не начата.
Для того, что бы страница была Bookmarkable, она должна иметь конструктор не принимающий параметров или конструктор принимающий единственный параметр класса PageParameter.
В случае если страница создаётся с помощью конструктора не удовлетворяющего этим условиям, страница не будет Bookmarkable.
Если страница не является Bookmarkable, то к ней можно получить доступ только создав её из другой страницы.
Является компонент stateless или statefull определяется с помощью метода getStatelessHint(), который возвращает true если компонент stateless и false если нет.
К stateless относятся следующие компоненты:
К statefull относятся следующие компоненты:
Важно: Link и Form являются statefull. Для использования этих компонентов в stateless страницах предназначены StatelessLink и StatelessForm.
Источники:
cwiki.apache.org/WICKET/stateless-pages.html [2]
cwiki.apache.org/WICKET/pages.html [3]
cwiki.apache.org/WICKET/bookmarkable-pages-and-links.html [4]
wicket.apache.org/apidocs/1.4/ [5]
www.wicket-library.com/wicket-examples/compref/ [6]
Автор: faradei
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/6934
Ссылки в тексте:
[1] github.com/jolira/wicket-stateless: https://github.com/jolira/wicket-stateless
[2] cwiki.apache.org/WICKET/stateless-pages.html: https://cwiki.apache.org/WICKET/stateless-pages.html
[3] cwiki.apache.org/WICKET/pages.html: https://cwiki.apache.org/WICKET/pages.html
[4] cwiki.apache.org/WICKET/bookmarkable-pages-and-links.html: https://cwiki.apache.org/WICKET/bookmarkable-pages-and-links.html
[5] wicket.apache.org/apidocs/1.4/: http://wicket.apache.org/apidocs/1.4/
[6] www.wicket-library.com/wicket-examples/compref/: http://www.wicket-library.com/wicket-examples/compref/
Нажмите здесь для печати.