|
|
|
Кто знает как правильно это сделать?
|
|||
|---|---|---|---|
|
#18+
Надо реализовать авторизацию по средствам JSP я хочу сделать это так -первая страничка - login.jsp имеет простую форму где два поля user и password и кнопка submit, после нажатия submit, user и password передается process.jsp, которая использует бин, в который передает user и password. В бине есть метод boolean login, который сравнивает переданый ему user и password с БД и возвращает true или false в process.jsp. В process.jsp есть условие, что если возвращается true, тогда переход на index.jsp, если false то на login.jsp. Естественно используется сессия. Как по Вашему мнению, это хороший способ или есть лучше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2006, 14:55 |
|
||
|
Кто знает как правильно это сделать?
|
|||
|---|---|---|---|
|
#18+
авторВ бине есть метод boolean login, который сравнивает переданый ему user и password с БД и возвращает true или false в process.jsp. В бине д.б. только сеттеры и геттеры. Лучше с jsp получаем логин и пароль, в сервлете проверяем. Если все Ок, ложим в сессию бин с данными пользвателя. А на др странице проверяем его наличие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2006, 16:04 |
|
||
|
Кто знает как правильно это сделать?
|
|||
|---|---|---|---|
|
#18+
А еще лучше использовать фильтр. Т.е все как сказал ТимоН , т.е. кладем в сессию бин с данными пользователя, (например userInfo). А вот проверять наличие бина не на другой странице, а в фильтре, иначе придется проверять наличие бина на каждой странице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2006, 16:15 |
|
||
|
Кто знает как правильно это сделать?
|
|||
|---|---|---|---|
|
#18+
авториначе придется проверять наличие бина на каждой странице. :) я имел ввиду создать сервлет с проверкой и унаследовать от него все страници каторым нужна авторизация. Но с фильтрами как-то удобнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2006, 16:25 |
|
||
|
Кто знает как правильно это сделать?
|
|||
|---|---|---|---|
|
#18+
Че то как-то тяжеловато, а по проще нет решения? А вообще есть какие нибудь паттерны - процесс логина на jsp, не трогая сервлеты. Ведь можно просто даже без бина - на первой же страничке jsp сравнить user и password c БД. Но это наверно будет не очень красиво, с точки зрения максимального разделения логики и дизайна. Был бы очень благодарен ответившим, если бы Вы нашли время и написали листинг, предлогаемых Вами решений! Спасибо в любом случае откликнувшимся! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2006, 16:29 |
|
||
|
Кто знает как правильно это сделать?
|
|||
|---|---|---|---|
|
#18+
DiletantЧе то как-то тяжеловато, а по проще нет решения? А вообще есть какие нибудь паттерны - процесс логина на jsp, не трогая сервлеты. Ведь можно просто даже без бина - на первой же страничке jsp сравнить user и password c БД. Но это наверно будет не очень красиво, с точки зрения максимального разделения логики и дизайна. Был бы очень благодарен ответившим, если бы Вы нашли время и написали листинг, предлогаемых Вами решений! Спасибо в любом случае откликнувшимся! Вам шашечки или ехать? (с) То что здесь написано - типовое решение. По поводу проверки на первой странице: а если пользователь сразу выберет другую страницу с супер-пупер секретными данными, как узнать на этой супер-пупер секретной странице - проверился пользователь на login/password или нет? Еще есть одно типовое средсто смотреть в сторону спецификации сервлетов и искать Form Based Authentication и прочее. (j_security_check, j_username и т.д.) Листинг придется самому, так лучше если что, думаю помогут, да и примеры в сти должны быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2006, 16:54 |
|
||
|
Кто знает как правильно это сделать?
|
|||
|---|---|---|---|
|
#18+
Я понимаю, что изобретать велосипед не всегда хорошо, эту задачу можно просто решить при помощи сервлета, который сам конектится к БД и проверяет user и password, и при соответствии перенаправляет на другой сервлет, который будет являться управляющим сервлетом в моделе Model-View-Controller. Но тогда это наверно будет уже извращенное использование патернов, так как добавляется сервлет логина. Какую модель для логина по Вашему мнению лучше использовать: servlet+db или jsp+bean+db А Вы как реализуете процесс логина? P.S. Способ с стандартными средствами Томката не предлогать, надо чтобы вся инфа, в данном случае user и password хранилась в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 08:29 |
|
||
|
Кто знает как правильно это сделать?
|
|||
|---|---|---|---|
|
#18+
авторКакую модель для логина по Вашему мнению лучше использовать: servlet+db или jsp+bean+db Никакую. Допустим вы пишете какой нибудь проект (jsp+bean+db допустим), он постоянно растет, логика все сложнее. А потом в какой нибудь момент нужно полностью изменить дизайн, будете плакать кровавыми слезами разбираясь в этой каше. Поэтому вся логика (соединение с БД, проверки ...) в сервлетах. Отображение информации на jsp и только отображение !!!! А информацию, из БД допустим, проще хранить в бинах, коллекциях в сессии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 09:45 |
|
||
|
Кто знает как правильно это сделать?
|
|||
|---|---|---|---|
|
#18+
Еще совет, посмотрите в сторону Struts, на многое откроются глаза.... Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 09:46 |
|
||
|
Кто знает как правильно это сделать?
|
|||
|---|---|---|---|
|
#18+
Спасибо за совет, но я только начал изучать j2ee, надо пару приложений без фреймворков наверно написать, проникеуться азами, а потом конечно доберусь до Struts ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 10:05 |
|
||
|
Кто знает как правильно это сделать?
|
|||
|---|---|---|---|
|
#18+
Diletant P.S. Способ с стандартными средствами Томката не предлогать, надо чтобы вся инфа, в данном случае user и password хранилась в БД. а чем котяра не угодил? можно его настроить на твою базу с изерами и он остальное сделает за тебя.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 10:32 |
|
||
|
Кто знает как правильно это сделать?
|
|||
|---|---|---|---|
|
#18+
ТимоНПоэтому вся логика (соединение с БД, проверки ...) в сервлетах. Отображение информации на jsp и только отображение !!!! А информацию, из БД допустим, проще хранить в бинах, коллекциях в сессии. вся логика - в бинах! сервлет только собирает параметры запроса, проверяет на валидность, передает данные бину, разбирает результат, приводит его к виду, понятному для jsp и рулит форвардами с помощью RequestDispatcher. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 10:44 |
|
||
|
Кто знает как правильно это сделать?
|
|||
|---|---|---|---|
|
#18+
авторвся логика - в бинах! сервлет только собирает параметры запроса, проверяет на валидность, передает данные бину, разбирает результат, приводит его к виду, понятному для jsp и рулит форвардами с помощью RequestDispatcher. Вы че??? какая в бинах логика??? Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 10:50 |
|
||
|
Кто знает как правильно это сделать?
|
|||
|---|---|---|---|
|
#18+
ТимоНot] Вы че??? какая в бинах логика??? Код: plaintext 1. 2. 3. 4. гм... я имел ввиду ejb beans. если без ejb, то нужно использовать отдельные классы типа ClientManager. тогда действия сервлета (например, переименование клиента): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Действия по соединению с БД выносятся опять же в отдельный класс (например, ConnectionManager), который используется ClientManager и сервлету про него знать не надо - он избавлен от деталей реализации хранения данных. В идеале конечно лучше ClientManager сделать интерфейсом, тогда для сервлета (а также и swing приложения) будет прозрачна подмена реализации в виде простого класса на ejb bean. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 13:50 |
|
||
|
Кто знает как правильно это сделать?
|
|||
|---|---|---|---|
|
#18+
а по сабжу, фильтр - это лучшее решение. должен быть аутентифицирующий сервлет (LoginServlet), который собирает логин + пароль, ищет пользователя с такими данными, если нашел - кладет ключик (например, самого пользователя) в сессию и перенаправляет дальше, если нет - снова кидает на страницу аутентификации. фильтр мапим, например, на /private/*. в фильтре просто проверяем, есть ли ключик в сессии, если есть - пускаем дальше, нет - редиректим на страницу аутентификации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 14:52 |
|
||
|
Кто знает как правильно это сделать?
|
|||
|---|---|---|---|
|
#18+
Вот я упертый, несмотря на то,что это просто делается при помощи сервлета, я все таки написал на jsp, к сожалению не работает. Логика хоть правильная? login.jsp: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. loginwork.jsp: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. dbaseBean: Код: 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. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 15:16 |
|
||
|
Кто знает как правильно это сделать?
|
|||
|---|---|---|---|
|
#18+
DiletantВот я упертый, несмотря на то,что это просто делается при помощи сервлета, я все таки написал на jsp, к сожалению не работает. Логика хоть правильная? у меня под полом стучит. Где ошибка??? Что не работает? а теперь смотри, что будет если пользователь в браузере наберет http://address.to.prog:8080/mycoolprog.welcome.jsp ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 15:54 |
|
||
|
Кто знает как правильно это сделать?
|
|||
|---|---|---|---|
|
#18+
ну и до кучи, что мешает написать? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 16:01 |
|
||
|
Кто знает как правильно это сделать?
|
|||
|---|---|---|---|
|
#18+
думаю при попытке сделать форвард в jsp он ругнется на response has already been commited. вы на php писали до этого чтоли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 16:04 |
|
||
|
Кто знает как правильно это сделать?
|
|||
|---|---|---|---|
|
#18+
Насчет того, что просто в браузере набрать http://somehost:8080/myapp/welcome.jsp - это понятно, надо сессиию применять, я интересовался правильна ли логика написана - или нет? По поводу работает или нет - при переходе к loginwork.jsp томкат пишет ошибку: An error occurred at line: 9 in the jsp file: /loginwork.jsp Generated servlet error: dbaseBean cannot be resolved to a type Типа не может определить тип бина, в той строке где инициализируется бин, но параметр type как правило не используется, так в книжках написано, А насчет PHP вы правы - было немного, наверно я еще до конца не проникся концепцией ООП. Стараюсь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 16:45 |
|
||
|
Кто знает как правильно это сделать?
|
|||
|---|---|---|---|
|
#18+
а так? Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 17:19 |
|
||
|
Кто знает как правильно это сделать?
|
|||
|---|---|---|---|
|
#18+
а у меня бин лежит в \WEB-INF\classes\dbaseBean.class тоесть при написании строки Код: plaintext Или все-таки лучше все-таки разместить его \WEB-INF\classes\com\somepackage\dbaseBean.class и потом соответствено прописать в JSP ???: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2006, 09:15 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=33912043&tid=2148423]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
175ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 477ms |

| 0 / 0 |
