| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > проблеы с Servlet |
| Автор: konvict 26.4.2008, 16:45 |
| Привет всем! Итак, есть база данных на Access, которая подключена через JDBS-ODBC мост. Имеются классы для каждой таблицы БД и один класс - управляющий. Подключено к Tomcat. Написаны классы наследники от HttpServlet для каждой необходимой формы. Не пойму как обрабатывать кнопки. То есть с выводом содержания таблиц проблем нету, а занесение в БД не могу проверить(так как не работают кнопки). Реализация должна быть без JSP. |
| Автор: v2v 26.4.2008, 17:24 |
| нипанятно. покажи хоть кусок кода. где не работает и как должно быть? |
| Автор: konvict 26.4.2008, 17:29 | ||||
Предметная область - форум! Вот кусок кода, который выводит на экран темы. Все работает.
А это страничка авторизации. Мне нужно обработать кнопки, которые я положил на форму.
|
| Автор: v2v 26.4.2008, 18:17 | ||
а где ты видишь форму? добавь теги <form> поля , кнопка </form>, а потом делаешь
помоему так ... |
| Автор: konvict 26.4.2008, 18:43 | ||||
Сделал так:
вот insertUser
Пишет: "Слишком мало параметров. Требуется 2" и еще: "Поле Users.Login не может быть NULL" |
| Автор: v2v 26.4.2008, 22:18 | ||
| посмотри что ты передаёшь в функцию insertUser и в дальнейшем пиши на какой строчке вывалилась ошибка зы1. input type = password ps2 лучше делать так:
|
| Автор: konvict 26.4.2008, 22:21 | ||
| ошибка на строчке stmt.executeQuery PreparedStatement не могу использовать - Access не поддерживает. Добавлено через 6 минут и 23 секунды и еще я параллельно пытаюсь сделать авторизацию пользователя, вот так:
после нажатия кнопки entrance(submit) выдает названия, то бишь: Login, Password затем: checkpoint1 и checkpoint2 введенные значения в форме: xxx, yyy почему не выводит "nice"? и еще как после нажатия этой кнопки при правильной проверке перейти по ссылке?! |
| Автор: v2v 26.4.2008, 22:29 |
| ы? "INSERT INTO Users (Login, Password) VALUES ( ' "+log+" ' , ' "+pass+" ' )" |
| Автор: konvict 26.4.2008, 22:48 | ||
| точно )) что-то я запарился - во вторник сдавать уже надо а по поводу предыдущего поста?! и еще, авторизация у меня идет, кажется, после нажатия "entrance", а как сделать, чтобы добавление было по кнопке - "registration"? Добавлено через 7 минут и 28 секунд
пишет "No ResultSet was produced" но в БД заносит |
| Автор: konvict 27.4.2008, 00:43 | ||
Пытался вот так написать сравнение:
Не получается. Скажите, что не так?! Пишет: "SEVERE: Servlet.service() for servlet hello threw exception" И указывает на строчку: " if ((user1.getLogin().compareTo(log)) == 0) { " |
| Автор: v2v 27.4.2008, 03:32 |
| тебе надо использовать executeUpdate вместо executeQuery. А затем делаешь с помощью executeQuery SELECT и анализируешь его ResultSet. Добавлено через 1 минуту и 15 секунд я не понял что ты хочешь сделать в последнем посте , но попробуй вместо compareTo использовать equals |
| Автор: konvict 27.4.2008, 11:32 | ||||
Я Вас правильно понял:
А в последнем посте я пытаюсь пройти авторизацию на главной страничке будущего форума. И смотрю есть ли пользователь в БД. Разве нет? а equals не помогает ( |
| Автор: konvict 27.4.2008, 11:59 | ||||
Не могу пока проверить (. Как проверю, отпишусь. Точно, спасибо, наверно так сейчас и сделаю (я про функцию селекта из бд пользователя) И еще вопрос (надеюсь я не сильно надоел): у меня сервлет выполняется как только заходишь на страничку или же обновляешь ее, а как сделать, чтобы только на кнопку реагировал?! |
| Автор: v2v 27.4.2008, 12:15 | ||
| кнопка у тебя шлёт : req.getParameter("Login"); != null вот и добавь условие:
|
| Автор: konvict 27.4.2008, 12:23 |
| По поводу того запроса на добавление пользователь, про который обещал отписаться, так он работает. Спасибо. Авторизация тоже заработала, спасибо! Сейчас с этим юуду разбираться! |
| Автор: konvict 27.4.2008, 12:51 |
| Получилось! Он реагирует на кнопку )) спасибо а как сделать, чтобы после нажатия на кнопку - переходить по ссылке? |
| Автор: v2v 27.4.2008, 13:02 | ||
|
| Автор: konvict 27.4.2008, 13:12 | ||
| Спасибо большое! Получилось! У меня остался один вопрос(кажется), буду очень признателени если Вы и на него ответите:
это страничка с темами подфорумов (они постоянны, их нельзя добавлять, удалять итп) Выдает мне ссылки с их именами. Так вот когда я нажимаю на одну из них - вызывается другая страничка, с темами подфорума, причем того подфорума ID которого я передаю. Но я не могу узнать, на какую ссылку нажали и поэтому не могу передать параметр. P.S. System.out.print(mthemeName); выдает null |
| Автор: v2v 27.4.2008, 16:50 | ||
конечно нулл. ведь ты сначала запрашиваешь сервлет без параметров. а потом нажимаешь на ссылку и вызываешь это т же сервлет но с параметром. |
| Автор: konvict 27.4.2008, 17:07 | ||
| извиняюсь, я уже понял, что фигню написал, но забыл исправить. теперь сделал вот так:
а как считать его в другом сервлете?! |
| Автор: konvict 27.4.2008, 17:23 |
| извиняюсь, понял.. |
| Автор: konvict 27.4.2008, 19:36 | ||
помогите обмануть его:
Я так понял. Как мы только пришли на эту страничку по ссылке - все нормально, считываем необходимый параметр и работает. Но после того как нажимаем на кнопку, у нас меняется урл и параметр не считывается, т.е. считывается null и соответственно запрос не работает. Вопрос: как обмануть его, чтобы запоминалось значение параметра, как только ты зашел на страницу, а использовать его уже потом? или как перестроить структуру урл, чтобы считывалось? или Ваш вариант? |
| Автор: konvict 27.4.2008, 20:25 |
| Решил проблему. Сначала создал тему где было необходимо(так как есть параметр), но пустую(так как нету имени) А затем апдейтнул имя(так как уже появилось) |
| Автор: konvict 28.4.2008, 00:30 | ||||
| Либо я уже ничего не понимаю из-зи усталости, либо что-то здесь не то. Посмотрите, пожалуйста. Вот это работает:
а вот это нет:
пишет: ошибка синтаксиса инструкции INSERT INTO на строку stmt.executeUpdate(sql); вообще ничего не понимаю.... |
| Автор: konvict 28.4.2008, 13:27 |
| Блин, я даже в наглую в INSERT'е значение вписывал - тот же результат. В чем может быть дело? Имена всех полей и таблички совпадает с Acceess'овскими!!! |
| Автор: v2v 28.4.2008, 21:40 |
| а типы данных ? int в одинарные кавычки брать не стоит. |
| Автор: konvict 29.4.2008, 00:23 |
| Разобрался. В Access'е Text тип данных и поэтому INSERT не работал. Ну вроде все. Задание сделано. Всем спасибо! 2 v2v Еще раз отдельное, большое спасибо!!! |