Вход на сайт
Вопросик из области Web-Programmierung, Java
5645 просмотров
Перейти к просмотру всей ветки
в ответ MrSanders 04.09.15 16:17
В ответ на:
Например - браузер для большей скорости держит два процесса JVM.
Например - браузер для большей скорости держит два процесса JVM.
А как это можно предотвратить?
В ответ на:
Апплет в первом окне запускается в 1-м процессе, апплет второго - во втором, апплет третьего - снова в первом. Каждый аплет может (вообще говоря должен) грузится в своем Classloader-е. Тогда опять же у каждого свой вариант класса со своим значением статической переменной будет.
Но оно и не важно, потому что в крайнем случае если пользователь запустит два браузера, кадый запустит свою JVM, у каждого будет своя копия CurrentContext.
Апплет в первом окне запускается в 1-м процессе, апплет второго - во втором, апплет третьего - снова в первом. Каждый аплет может (вообще говоря должен) грузится в своем Classloader-е. Тогда опять же у каждого свой вариант класса со своим значением статической переменной будет.
Но оно и не важно, потому что в крайнем случае если пользователь запустит два браузера, кадый запустит свою JVM, у каждого будет своя копия CurrentContext.
Вот что-то такое у меня в голове и крутится...
Важное уточнение: для первого окна открывается Java Console, для второго тоже открывается своя, вторая Java Console.
В третьем окне своя консоль уже не открывается.
Вопрос: а к чему привязана консоль? К каждому отдельному апплету, сервлету или чему?
В ответ на:
Но оно и не важно, потому что в крайнем случае если пользователь запустит два браузера, кадый запустит свою JVM, у каждого будет своя копия CurrentContext.
Но оно и не важно, потому что в крайнем случае если пользователь запустит два браузера, кадый запустит свою JVM, у каждого будет своя копия CurrentContext.
Два браузера - это два разных типа браузера или просто две разных инстанции?
Если первое, то не страшно, у нас официально разрешен только один браузер.
В ответ на:
Так делать нельзя и это не исправить, только переделывать. Апплет по-хорошему не должен вылазить за свою песочницу (окно браузера).
Проверяйте на сервере есть ли уже сессия для этого же IP.
Так делать нельзя и это не исправить, только переделывать. Апплет по-хорошему не должен вылазить за свою песочницу (окно браузера).
Проверяйте на сервере есть ли уже сессия для этого же IP.
Есть! Я об этом уже написал. Сессия одна и та же. Даже если юзер вечером закроет браузер, а утром откроет новый (не удалив к черту все куки и прочее дерьмо), то это будет все та же сессия, видно по логам

И в этом проблема. А как сделать, чтобы сессия обновлялась?
Привязать к LogOffу нельзя, юзер может просто закрыть браузер, так все и делают.
В ответ на:
Кстати, привязывать сессии к IP-адресу тоже глупо. А что делать юзерам за NAT-ом? По очереди работать? У вас же пользователи логинятся, ну так и привязывайте сессии к залогиненному пользователю.
Кстати, привязывать сессии к IP-адресу тоже глупо. А что делать юзерам за NAT-ом? По очереди работать? У вас же пользователи логинятся, ну так и привязывайте сессии к залогиненному пользователю.
Так не получается. Сессия создается ДО логина.
Схема такая: стартует сервлет (StartsServer), потом иницируется апплет (init()), только потом делается логин...
Я пока что испробовал еще два варианта: создавать флаг, что один апплет уже существует и второй нельзя, не в CurrentContext, а в самом классе, и потом еще более серьезная проверка: создаю этот флаг в самом сервлете (StartsServer). Результат, как ни странно, один и тот же: второе окно создается, третье - нет..
Эй, фуфло, готовься к шмону, ты на стрём поставлен у ворот...
Присоединяйтесь: https://t.me/kudy_vadis