![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Hardworker |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 15.4.2006 Репутация: нет Всего: нет |
Здравствуйте. Я пишу первое своё приложение для работы пользователя с БД через интернет и язык Java начал использовать тоже недавно.
У меня возникли некоторые проблемы. Приложение которое я хочу разработать соcтоит из html страниц и сервлета. Работа с приложением начинается с процедуры ввода логина и пароля к БД. Появляется html страница которая имеет поля для ввода логина и пароля . Пользователь вводит их и жмет на кнопку . Эти параметры передаются сервлету(первый сервлет)методом POST он получив их создает соединение с БД (создает Connection), или выводит ошибку. Если все прошло нормально то происходит
То есть я переадресую вызов html странички которая обеспечивает пользователя возможностью сформировать запрос к БД и опять же методом POST я посылаю введенные параметры в другой сервлет, который и обеспечит выполнение этого запроса и выдаст результат. Тут у меня возникают проблемы. Я не могу передать второму сервлету объект Connection созданный в первом сервлете (или мне нужно проверить произошло ли подключение к БД первым сервлетом затем закрыть его и отослать параметры пароля и логина второму сервлету, а он потом и произведет подключение заново, но это как-то некрасиво по моему). Или процедуру логина и бизнес логику мне нужно объединить в один сервлет, но тогда как быть с методом doPost в сервлете он получается вызывается несколько раз, а в нем будет происходить каждый раз еще и подключение к БД. Другая проблема с этим методом. На index.html будут ссылки на несколько html страниц на которых пользователь сможет организовывать разные типы запросов , и на каждой из этих страниц будут кнопки для посылки параметров в сервлет методом POST как мне разделить эти методы,ведь Я не могу написать несколько методов doPost в одном сервлете. Или как-то можно. Наверное мне надо писать на каждую кнопку по отсылке параметров свой сервлет для работы с этими параметрами, но тогда как все эти сервлеты подключить к одной БД? Помогите разобраться |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
Почему? Сохраняй connection как атрибут сессии/приложения. Как вариант - можно ввестий скрытое поле (hidden), и в него записывать тип запроса. А в чем у тебя трудность? Почему ты не можешь их подключить к одной и той же базе? -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
1.Объяви глобальную переменную: private Connection con;
И передавай ее как параметр другим классам. В чем проблема? 2.можешь в сервлет передавать вместе с ссылкой еще и id, с определенным значением. Получив его в сервлете, ты можешь сравнить что у тебя пришло и вызвать нужный метод для работы
в сервлете используешь request.getParameter("id") -------------------- менеджер по кодеврайтингу ![]() |
|||
|
||||
Hardworker |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 15.4.2006 Репутация: нет Всего: нет |
Здравствуйте LAmer George.
Я пытаюсь сохранить объект Connection как атрибут сессии, но почему-то у меня не получается вызватть его из второго сервлета. Хочу привести код, как Я это делаю.
После этого пользователь заполняя поля формирует запрос и методом post отправляет их к другому сервлету который его выполняет и отсылает результат Вот как Я пытаюсь получить обьект Connection во втором сервлете.
Помогите разобраться. как правильно сохранять и вызывать обьекты из дной сессии разными сервлетами???
Можно по подробнее расказать про реализацию такого метода. Тоесть мне что нужно организовать что то вроде case структуры и в зависимости что пришло запускать тот или иной блок в case соответствующий тому скрытому параметру, который получили. |
||||||
|
|||||||
batigoal |
|
||||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
Строка
не нужна. Но ты вроде все делаешь правильно. Что именно ты получаешь во втором сервлете - ошибку, null, еще что-нибудь?.. В первом сервлете соединение устанавливается без ошибок?
Да, именно так. Вместе с остальными полями формы будет передаваться еще одно, не видимое пользователю, а в сервлете - определенные действия в зависимости от значения этого параметра. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
||||
|
|||||
Hardworker |
|
||||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 15.4.2006 Репутация: нет Всего: нет |
У меня connect1 содержит null, Я не пойму почему. Причем Я решил передать еще несколько параметров из первого сервлета, это логин и пароль пользователя
, но Я не могу получить во втором сервлете даже список параметров сессии. А получаю Я его так
В результате ничего не выводится в цикле. Выводится только вторым сервлетом connect1=null. Подскажите как решить проблему?? |
||||
|
|||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
А как ты попадаешь во второй сервлет? Ты не уходишь с сайта между запросами к этим сервлетами? Т.е. не теряется ли сессия?
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
Hardworker |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 15.4.2006 Репутация: нет Всего: нет |
Первый сервлет у меня создает обьект Connection и если подключение удачное то Я перехожу на index.html
на этой странице Я формирую запрос заполняя поля . Там есть кнопка которая посылает эти параметры второму сервлету методом post. <form name="form1" method="post" action="http://127.0.0.1:8080/devserv/servlet/devserv"> Вот так Я перехожу во второй сервлет. Может быть тут и теряется что то. Но я не понимаю что. Ведь Я так понял что сессия к серверу у пользователя создана или нет, тут две сессии получается? |
|||
|
||||
Goliath |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 1.3.2005 Репутация: нет Всего: 5 |
HttpSession session=request.getSession(true); эта строка должна быть первой
--------------------
Наша жизнь растрачивается на мелочи… Упрощайте, упрощайте. [Генри Торо] |
||||
|
|||||
Hardworker |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 15.4.2006 Репутация: нет Всего: нет |
Здравствуйте Goliaf.
У меня нет такого метода session.putAttribute(), что это за метод, может тут ошибка. |
|||
|
||||
Goliath |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 1.3.2005 Репутация: нет Всего: 5 |
Я имел ввиду putValue:
--------------------
Наша жизнь растрачивается на мелочи… Упрощайте, упрощайте. [Генри Торо] |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
Хм. Я всегда использовал setAttribute, и не понял из доки, в чем вообще между ними разница. Это сообщение отредактировал(а) Lamer George - 17.4.2006, 08:37 -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |