Вход на сайт
Вопросик из области Web-Programmierung, Java
5645 просмотров
Перейти к просмотру всей ветки
в ответ v0id* 05.09.15 14:39, Последний раз изменено 06.09.15 14:05 (MrSanders)
В ответ на:
Да, но на третьем окне всегда строго срабатывает. Всегда!
Да, но на третьем окне всегда строго срабатывает. Всегда!
Всегда это значит на одной и той же машине на одном и том же браузере одной и той же версии запускающем JRE одной и той же версии. То что эта проверка срабатывает сейчас, не факт что она сработает с другим браузером и с другой версией явы.
url поправлен
К сожалению, параноидальные настройки форума портят всё, где слово скрипт и апплет в английской транскрипции написаны.
http://docs.oracle.com/javase/6/docs/technotes/guides/jweb/applet/applet_execution.html
Так должно сработать
Сейчас апплеты загруженные с того же самого codebase и с тем же самым архивом могут быть запущены в одном JRE. Никто не гарантирует что они будут запущены в одном.
Вроде как есть трюк - из неподписанного апплета писать и читать куки через яваскрипт используя JSObject. Опять же - трюк, даже если он у вас сработает сейчас не факт что он сработает после апдейта явы или браузера.
В ответ на:
И Ява-консоли всегда две. Не говорит ли это о том, что и ява-машины в браузере запускаются ровно две?
И Ява-консоли всегда две. Не говорит ли это о том, что и ява-машины в браузере запускаются ровно две?
Говорит. Говорит ли это что-то о том что никогда не будет запущена третья или четвертая? Нет.
В ответ на:
Да, RMI, да, точно апплетка.
Да, RMI, да, точно апплетка.
Подведем итоги. Процесс у вас такой.
1. Запускается веб-сервер.
2. На вебсервере поднимается ваш сервлет.
3. Ваш сервлет запускат с помощью класса StartServer RMI сервер на той же машине, на которой поднят веб-сервер.
4. Юзер Ю открывает в браузере страничку на которой находится ваш апплет.
5. В это момент у вас (под контролем непонятно кого) запускается (вернее этот кто-то по волшебству узнает что за клиент и откуда-то берет или делает новую сессию) ваша "сессия" (точно не томкатовская HttpSession?). Апплет к RMI серверу пока что не обращался.
6. Апплет А1 предлагает юзеру залогинится, юзер вводит логин/пароль Х.
7. А1 по RMI аутентифицирует логин юзера Ю как Х.
8. Ю открывает второе окно браузера, в котором открывает ту же страничку.
9. Каким-то колдунством кто-то выясняет что это юзер Ю с той же машины, и диалог с 2-м апплетом (А2) пойдет в той же самой сессии что и с А1.
10. А2 предлагает юзеру залогинится, юзер вводит логин/пароль У.
11. А2 по RMI аутентифицирует логин юзера Ю как У.
12. А1 и А2 параллельно работают с данными через RMI, оба логина и Х и У имеют права не только на чтение но и на модификацию данных, так как доступ к данным авторизируется сессией, а она у них одна.
13. А1 и А2 помирают, потому как Ю не логаутится а просто выключает браузер. Сессия остается (все там же, черт знает где).
Поправьте меня где я ошибся. Или если все неправильно - напишите как оно на самом деле происходит.