|
|
|
Struts - обработка удаления HTTP-сессии
|
|||
|---|---|---|---|
|
#18+
Допустим, пользователь заполняет некую форму на веб-странице. По какой-то причине на момент ее submit'а сессии уже не существует. В результате у меня на экране выводится примерно следующее сообщение: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Причем ошибка возникает раньше попадания в метод Action.execute(). Вопрос - можно ли как-нибудь корректно обработать эту ситуацию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 17:20 |
|
||
|
Struts - обработка удаления HTTP-сессии
|
|||
|---|---|---|---|
|
#18+
фильтром? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 17:21 |
|
||
|
Struts - обработка удаления HTTP-сессии
|
|||
|---|---|---|---|
|
#18+
А что в нем ловить? М.б. что-то можно сделать и через HttpSessionListener (ловить факт создания сессии), остается только понять что. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 17:33 |
|
||
|
Struts - обработка удаления HTTP-сессии
|
|||
|---|---|---|---|
|
#18+
тык саму сессию и ловить: SomeFilter.java Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 17:39 |
|
||
|
Struts - обработка удаления HTTP-сессии
|
|||
|---|---|---|---|
|
#18+
можно и HttpSessionListener, что более симпатичным решением будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 17:40 |
|
||
|
Struts - обработка удаления HTTP-сессии
|
|||
|---|---|---|---|
|
#18+
Так интересно знать, а что делать дальше? получается, что в doFilter() надо делать разбор, мол: если в request'е есть форма, а экземпляра именно этой Struts'овской формы нигде нет, поэтому следует идти куда-то, логинится или еще чего... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 18:24 |
|
||
|
Struts - обработка удаления HTTP-сессии
|
|||
|---|---|---|---|
|
#18+
Denis PopovТак интересно знать, а что делать дальше? получается, что в doFilter() надо делать разбор, мол: если в request'е есть форма, а экземпляра именно этой Struts'овской формы нигде нет, поэтому следует идти куда-то, логинится или еще чего...редирект сделать куда надо обычными средствами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 20:10 |
|
||
|
Struts - обработка удаления HTTP-сессии
|
|||
|---|---|---|---|
|
#18+
Ага. Теперь требуется сформулировать условия, когда редиректить, а когда пропускать. Получается примерно следующее: редиректить надо, если - session.isNew(); - в request'е форма; - это не форма логина. Что-то тут смущает, м.б. есть какой способ через сам Struts. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 20:22 |
|
||
|
Struts - обработка удаления HTTP-сессии
|
|||
|---|---|---|---|
|
#18+
Denis PopovАга. Теперь требуется сформулировать условия, когда редиректить, а когда пропускать. Получается примерно следующее: редиректить надо, если - session.isNew(); - в request'е форма; - это не форма логина. Что-то тут смущает, м.б. есть какой способ через сам Struts. вот насчет штратса ничего не могу сказать - для меня знатоком его являешься ты :) а если стандартными средствами, то этими тремя условиями можно обойтись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2005, 09:14 |
|
||
|
Struts - обработка удаления HTTP-сессии
|
|||
|---|---|---|---|
|
#18+
я делаю так так: юзер логиниться, его session и другие данные добавляется в свой Bean(extends EventListener). Потом в своем RequestProcessor делается центральная проверка для всех Action в методе process, если юзер не зарегестрирован и находится не на login.jsp и не на relogin.jsp, то forward перенаправляет его на relogin.jsp. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2005, 11:17 |
|
||
|
Struts - обработка удаления HTTP-сессии
|
|||
|---|---|---|---|
|
#18+
вполне вероятно не правильно попурейтеться get ы и set ы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2005, 12:03 |
|
||
|
Struts - обработка удаления HTTP-сессии
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. форма заполняется перед вызовом Action.execute(), поэтому если session истекла или по другой причине больше не существует, то и формы тоже нет, отсюда и Exception. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2005, 12:30 |
|
||
|
Struts - обработка удаления HTTP-сессии
|
|||
|---|---|---|---|
|
#18+
concat Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. форма заполняется перед вызовом Action.execute(), поэтому если session истекла или по другой причине больше не существует, то и формы тоже нет, отсюда и Exception. слушай. ты как посты читаешь, а? никого не интересует твое понимание поста и его смысла. всех интересует твой ответ на вопрос, заданный автором поста: "Вопрос - можно ли как-нибудь корректно обработать эту ситуацию?" PS да и термины твои не понятны: "попурейтеться". это че? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2005, 12:40 |
|
||
|
Struts - обработка удаления HTTP-сессии
|
|||
|---|---|---|---|
|
#18+
дежавю слушай. ты как посты читаешь, а? никого не интересует твое понимание поста и его смысла. всех интересует твой ответ на вопрос, заданный автором поста: "Вопрос - можно ли как-нибудь корректно обработать эту ситуацию?" PS да и термины твои не понятны: "попурейтеться". это че? так я уже и ответила как можно. concatя делаю так так: юзер логиниться, его session и другие данные добавляется в свой Bean(extends EventListener). Потом в своем RequestProcessor делается центральная проверка для всех Action в методе process, если юзер не зарегестрирован и находится не на login.jsp и не на relogin.jsp, то forward перенаправляет его на relogin.jsp. насчет попурейты, то это не моё, вы ошиблись автором. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2005, 12:53 |
|
||
|
Struts - обработка удаления HTTP-сессии
|
|||
|---|---|---|---|
|
#18+
concat дежавю слушай. ты как посты читаешь, а? никого не интересует твое понимание поста и его смысла. всех интересует твой ответ на вопрос, заданный автором поста: "Вопрос - можно ли как-нибудь корректно обработать эту ситуацию?" PS да и термины твои не понятны: "попурейтеться". это че? так я уже и ответила как можно. concatя делаю так так: юзер логиниться, его session и другие данные добавляется в свой Bean(extends EventListener). Потом в своем RequestProcessor делается центральная проверка для всех Action в методе process, если юзер не зарегестрирован и находится не на login.jsp и не на relogin.jsp, то forward перенаправляет его на relogin.jsp. насчет попурейты, то это не моё, вы ошиблись автором.гы. извини :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2005, 13:07 |
|
||
|
Struts - обработка удаления HTTP-сессии
|
|||
|---|---|---|---|
|
#18+
concatя делаю так так: юзер логиниться, его session и другие данные добавляется в свой Bean(extends EventListener). Потом в своем RequestProcessor делается центральная проверка для всех Action в методе process, если юзер не зарегестрирован и находится не на login.jsp и не на relogin.jsp, то forward перенаправляет его на relogin.jsp. А где указывается свой RequestProcessor, можно пример? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2005, 13:29 |
|
||
|
Struts - обработка удаления HTTP-сессии
|
|||
|---|---|---|---|
|
#18+
в struts-config.xml Код: plaintext 1. 2. 3. 4. 5. 6. 7. eсли используется tiles, то public class МyProcessor extends TilesRequestProcessor если нет, то public class МyProcessor extends RequestProcessor ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2005, 13:42 |
|
||
|
Struts - обработка удаления HTTP-сессии
|
|||
|---|---|---|---|
|
#18+
Спасибо. Насколько я понимаю, в своем RequestProcessor'е можно переопределять методы типа processActionPerform(), в котором имеется доступ в текущим действиям и форме? Тогда, действительно, это удобнее фильтра. Вдогонку, а каково положение дел у Tiles? Последняя новость в tiles-documentation датируется ноябрем 2002, или эта библиотека воплотилась во что-то другое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2005, 14:51 |
|
||
|
Struts - обработка удаления HTTP-сессии
|
|||
|---|---|---|---|
|
#18+
сначала вызывается метод process в RequestProcessor, который ищет подходящую Action в ActionMapping,затем параметрами из request заполняется принадлежащая к Action ActionForm и т.д. я переписала этот метод таким образом Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. Tiles как были так и остались, насколько мне известно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2005, 15:24 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=32959418&tid=2152810]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
72ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 374ms |

| 0 / 0 |
