Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/33: Рейтинг темы: голосов - 33, средняя оценка - 4.76
--Andrey--

Сессии в JSP

30.09.2009, 06:27. Показов 6247. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, я недавно начал изучать JSP, разбираюсь с сессиями, есть такой тестовый примерчик:

------------------------zavel.jsp-------------------------------
<%
request.getSession(true);
session.setAttribute('id', new String('1234567'));
session.setAttribute('im', new String('vasya pupkin'));
%>
<jsp:useBean id='id' class='String' scope='session'/>
<jsp:useBean id='im' class='String' scope='session'/>
<p>Сессия: '<%=session.getId()%>'</p>
<p>Атрибут 'id': '<%=id%>'</p>
<p>Атрибут 'im': '<%=im%>'</p>
<p>Время действия сессии: <%= session.getMaxInactiveInterval() %><.p>
<% session.setMaxInactiveInterval(10); %>
<p>Новое время действия сессии: <%= session.getMaxInactiveInterval() %><.p>
<p><a href='logout.jsp' target=_top>Выход</a></p>

------------------------------logout.jsp--------------------------
<%
session.invalidate();
%>
<p><a href='isses.jsp' target=_top>Существует ли сессия?</a></p>

-----------------------------isses.jsp----------------------------

<jsp:useBean id='id' class='String' scope='session'/>
<jsp:useBean id='im' class='String' scope='session'/>

<p>Сессия: '<%=session.getId()%>'</p>
<p>Атрибут 'id': '<%=id%>'</p>
<p>Атрибут 'im': '<%=im%>'</p>

<p><a href='zavel.jsp' target=_top>Завести сессию</a></p>
--------------------------------------------------------------------------

Вопрос №1: почему, после срабатывания logout.jsp, атрибуты 'id' и 'im' обнуляются, а id сессии нет?

Вообще-то я чат хочу написать, и в связи с этим вопрос №2, как лучше организовать представление списка активных пользователей?
Мне это видится так: пользователь после авторизации получает сессию, затем, id сессии и nik записываются в некую таблицу. Некий сервлет будет релоадиться через каждые 30 секунд и выводить из этой таблицы активных пользователей. Когда пользователь нажимает на кнопочку 'Выход', то сессия уничтожается и удаляется соответствующая ей запись из таблицы. Но вот непонятно, куда навешивать удаление записи из таблицы, если пользователь не нажал на кнопочку 'Выход' и сессия сама удалилась через полчаса?

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

И вопрос №3: если у пользователя отключены куки, то сессии работать не будут, как сделать так, чтобы id сессии всегда передавался через URL? encodeURL - это из той оперы? Как вообще это работает? Хорошо бы посмотреть на простенький примерчик.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.09.2009, 06:27
Ответы с готовыми решениями:

JSP. Сессии
Здравствуйте! Подскажите, пожалуйста, что я делаю не так? Мне нужно создать web-приложение - вывести на экран имя и фамилию человека. Как...

[JSP] Назначать класс элементов в header.jsp на разных страницах
Есть header.jsp, который я включаю в свои страницы: &lt;link href=&quot;${contextPath}/resources/css/header.css&quot;...

Пересылка запроса с jsp страницы на эту же jsp с другими параметрами
Хочу реализовать паджинацию страницы, на страницу приходить запрос со списком объектов, jsp страница отображает часть этого списка в...

1
0 / 0 / 2
Регистрация: 29.09.2009
Сообщений: 48
30.09.2009, 10:57
>Вопрос №1: почему, после срабатывания logout.jsp, атрибуты 'id' >и 'im' обнуляются, а id сессии нет?

попробую предположить - потому что вызван invalidate =)

>Но вот непонятно, куда навешивать удаление записи из таблицы, если >пользователь не нажал на кнопочку 'Выход' и сессия сама удалилась >через полчаса?

Servlet 2.3 Spec : class HttpSessionListener method: sessionDestroyed

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

Servlet API этого не предусматривает.

>если у пользователя отключены куки, то сессии работать не будут, как >сделать так, чтобы id сессии всегда передавался через URL? >encodeURL - это из той оперы? Как вообще это работает? Хорошо бы >посмотреть на простенький примерчик.

если куки отключены, то сессии будут работать при помощи перезаписывания урла(url rewriting).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.09.2009, 10:57
Помогаю со студенческими работами здесь

Как реализовать аналог <b onclick="<jsp:forward page=xxx.jsp/>menuN</b> ??
Smysl zadachi v sledujuschem: menu.jsp - formiruet menu ishodia iz znachenii v baze dannuh. Tam neskolko kategorii, i na etoi starnice...

Не могу передать значения из jsp в сервлет и снова в jsp
Имеется солидный проект, в котором суть такова: Сайт с просмотром новостей (меню новостей, название новости и текст новости, данные...

jsp и intellij idea (не реагирует на изменение jsp нишка)
есть web проект , файл jsp где в html прописаны divы и подключены cssники , я могу менять вид сайта изменяя css , но изменения jsp браузер...

Jsp-servlet-jsp, нужен совет
Доброго времени суток. Помогите разобраться есть сервлет и две jsp страницы. Код сервлета. import java.io.IOException; import...

PHP сессии, сортировка массива сессии
Доброе время суток, существует такая ситуация, у меня есть корзина, которая основана на сессиях, всё работает хорошо, кроме одного,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru