Java-апплет, касающийся пользовательских данных - PullRequest
2 голосов
/ 11 июня 2010

Как вообще Java-апплет управляет пользовательскими данными?Возьмем, к примеру, «корзины покупок» на веб-сайтах покупок - после того, как пользователь вводит данные, эти данные предварительно загружаются каждый раз, когда пользователь заходит на сайт?Или данные извлекаются, когда пользователь находится на странице?

Ответы [ 4 ]

1 голос
/ 11 июня 2010

Я никогда не видел апплет, который делает покупки похожими на корзину, это был бы неэффективный и удобный для пользователя подход.Так что где-то должно быть огромное заблуждение.Кроме того, Java не следует путать с JavaScript .

Такая информация обычно хранится в памяти на стороне сервера в сеансе .В PHP он хранится в $_SESSION и в JSP / Servlet в HttpSession.Сеанс, в свою очередь, поддерживается управляемым сервером куки-файлом, который сохраняется до тех пор, пока пользователь активен на веб-странице в том же экземпляре браузера.Некоторые веб-сайты даже связывают это с именем входа и базой данных, так что информация может быть сохранена / извлечена в базе данных или из нее в зависимости от текущего пользователя, вошедшего в систему, который, в свою очередь, сохраняется в сеансе.: код на стороне сервера (PHP, Java / JSP / Servlet, C # /. NET / ASP и т. д.) просто сохраняет саму информацию и отображает ее на странице.

0 голосов
/ 17 июня 2010

В целом апплетам запрещено хранить любые данные клиента-сайта.

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

0 голосов
/ 11 июня 2010

Чаще всего информация о корзине покупок обрабатывается JavaScript, а не Java-апплетом (по крайней мере из того, что я видел).Но апплет может делать интересные вещи, я думаю.Виртуальная машина Java-апплета существует только до тех пор, пока тег находится в браузере, поэтому апплет должен собирать свои данные с сервера при загрузке страницы, а затем делать все, что с ним происходит.Если пользователь уходит, ему придется начинать сначала.

Одной из альтернатив будет использование наборов фреймов, чтобы апплет оставался активным, пока пользователь перемещается в отдельном фрейме.Поскольку не существует отличного способа связи с апплетом AFAIK, ему придется периодически «пинговать» сервер, чтобы проверять наличие обновлений в корзине покупок.Однако этот запрос может быть сделан довольно легковесным - возможно, апплет отправляет идентификатор сеанса на сервер, и сервер отвечает в последний раз, когда корзина сеанса изменилась.Затем апплет может повторно запрашивать обновленное содержимое корзины только при необходимости.

0 голосов
/ 11 июня 2010

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

Обычно корзины покупок - это не апплеты Java, а просто страницы, которые динамически создаются веб-сервером.В этом случае большая часть информации сохраняется непосредственно на сервере , отправляется и принимается вместе с обычными запросами http.

Когда речь идет о апплетах Java , вы должны помнить,что это приложение, встроенное в веб-страницу, которая имеет собственную виртуальную машину .Таким образом, он хранит данные в памяти и может получать параметры с веб-страницы во время загрузки, динамически из javascript и с использованием реальных открытых сокетов TCP (для http или более низкоуровневых вещей).

...