|
|
|
Сессии в HttpServlet
|
|||
|---|---|---|---|
|
#18+
Добрый день, Начинаю изучать JavaEE и начал с сервлетов. В Eclipse создал "Dunamic Web Project", добавил сервлет с методами doGet и doPost. В doGet добавил каунтер, который при каждом запросе возвращается клиенту. Получилось вот так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Захожу на страницу через браузер, после каждого обновления каунтер растет. Захожу на страницу с другого компьютера, каунтер не обнулился, а остался в том состоянии в котором я его оставил с первого раза. Почему так? Переменная ведь не статическая. Возможно это какие-то настройки сервера(использую Tomcat 7)? Или мне необходимо при каждом запросе запускать отдельный поток с реализованной логикой для каждого отдельного запроса? Заранее благодарен за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 10:33:11 |
|
||
|
Сессии в HttpServlet
|
|||
|---|---|---|---|
|
#18+
Xsl , Сервлет конкретного типа обычно один на приложение. Но формально согласно спецификации конкретный контейнер может создавать больше одного инстанса сервлета, если сочтет это нужным. Поэтому сервлет всегда, абсолютно всегда, должен быть stateless - то есть не хранить в себе какие-либо изменяемые переменные или ссылки. Вы же, скорее всего, хотите, что бы каунтер увеличивался для конкретного пользователя. Тогда вам нужно класть каунтер в сессию, а не в поле сервлета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 10:50:44 |
|
||
|
Сессии в HttpServlet
|
|||
|---|---|---|---|
|
#18+
можно тут ченить почитать а так Код: java 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 10:51:51 |
|
||
|
Сессии в HttpServlet
|
|||
|---|---|---|---|
|
#18+
Xsl, логика сервлетов тупая до безобразия. При запросе, сервер берёт поток, и запускает МЕТОД doGet. На всё остальное ему по барабану. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 10:52:40 |
|
||
|
Сессии в HttpServlet
|
|||
|---|---|---|---|
|
#18+
Воспользовался приведенным примером: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. Вопрос... почему даже после перезагрузки сервера каунтер сохраняется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 12:14:25 |
|
||
|
Сессии в HttpServlet
|
|||
|---|---|---|---|
|
#18+
XslВопрос... почему даже после перезагрузки сервера каунтер сохраняется? А почему не должен? Сохранил все сессии на диск во время остановки. При запуске подчитал, чтобы юзеры продолжали работать с того же места. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 12:16:19 |
|
||
|
Сессии в HttpServlet
|
|||
|---|---|---|---|
|
#18+
XslВопрос... почему даже после перезагрузки сервера каунтер сохраняется?Разные могут быть варианты: 1) Может быть у вас что-то закешировалось в браузере, и он вместо отправки нового запроса на сервер, выдал вам результат из своего кеша 2) Может быть у вешго сервера стоит какой-нибудь shutdown hook, который сохраняет состяние сессии на диск при выключении, а при старте снова восстанаваливает. Маловероятно конечно, но все же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 12:18:02 |
|
||
|
Сессии в HttpServlet
|
|||
|---|---|---|---|
|
#18+
интересный случай)) Если в СУБД мы гарантированно скажем что произойдёт при перезагрузке, то в АппСервере мы не можем сказать. Хотя спецификаций - выше крыши. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 12:25:51 |
|
||
|
Сессии в HttpServlet
|
|||
|---|---|---|---|
|
#18+
svenom1) Может быть у вас что-то закешировалось в браузере, и он вместо отправки нового запроса на сервер, выдал вам результат из своего кеша Вы правы. Спасибо всем за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2012, 12:45:30 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37849820&tid=2131504]: |
0ms |
get settings: |
18ms |
get forum list: |
20ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
38ms |
get topic data: |
15ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 320ms |
| total: | 488ms |

| 0 / 0 |
