Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблеы с Servlet 
:(
    Опции темы
konvict
Дата 27.4.2008, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 20.4.2008

Репутация: нет
Всего: нет



По поводу того запроса на добавление пользователь, про который обещал отписаться, так он работает. Спасибо.

Авторизация тоже заработала, спасибо!

Сейчас с этим юуду разбираться!
PM MAIL   Вверх
konvict
Дата 27.4.2008, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 20.4.2008

Репутация: нет
Всего: нет



Получилось! Он реагирует на кнопку )) спасибо

а как сделать, чтобы после нажатия на кнопку - переходить по ссылке?
PM MAIL   Вверх
v2v
Дата 27.4.2008, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 9
Всего: 56



Код

response.sendRedirect("адресс страницы");



--------------------
PM   Вверх
konvict
Дата 27.4.2008, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 20.4.2008

Репутация: нет
Всего: нет



Спасибо большое! Получилось!

У меня остался один вопрос(кажется), буду очень признателени если Вы и на него ответите:

Код

public void doGet(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException
    
    {
        resp.setContentType("text/html;charset=windows-1251");
              
          PrintWriter pw = resp.getWriter();
          
          pw.println("<html>");
          
          pw.println("<title>");
          pw.println("MainForum");
          pw.println("</title>");
          
          pw.println("<body>");
          pw.println("<form>");
          
          pw.println("<b><h2>Список подфорумов</h2></b>");
          pw.println("<p>");
          
         try {
            List l = ManagementSystem.getInstance().getMThemes();
            for (Iterator it = l.iterator(); it.hasNext();) {
              MainThemes mth = (MainThemes) it.next();
                         
              pw.println("<a href='sf'/actionservlet?mthemeName=>" + mth.getMainThemeName() + "</a>");
              pw.println("<p>");
             
            }
          } catch (SQLException e) {
            throw new ServletException(e);
          }
          
          String mthemeName = req.getParameter("mthemeName");
          System.out.print(mthemeName);
          
          pw.println("</form>");
          pw.println("</body>");
          
          pw.println("</html>");
            
    }


это страничка с темами подфорумов (они постоянны, их нельзя добавлять, удалять итп)
Выдает мне ссылки с их именами. Так вот когда я нажимаю на одну из них - вызывается другая страничка, с темами подфорума, причем того подфорума ID которого я передаю. 
Но я не могу узнать, на какую ссылку нажали и поэтому не могу передать параметр.

P.S. 
 System.out.print(mthemeName); выдает null

PM MAIL   Вверх
v2v
Дата 27.4.2008, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 9
Всего: 56



Цитата(konvict @  27.4.2008,  13:12 Найти цитируемый пост)
          
String mthemeName = req.getParameter("mthemeName");
          System.out.print(mthemeName);

конечно нулл.
ведь ты сначала запрашиваешь сервлет без параметров. а потом нажимаешь на ссылку и вызываешь это т же сервлет но  с параметром.


--------------------
PM   Вверх
konvict
Дата 27.4.2008, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 20.4.2008

Репутация: нет
Всего: нет



извиняюсь, я уже понял, что фигню написал, но забыл исправить.

теперь сделал вот так:

Код

 try {
            List l = ManagementSystem.getInstance().getMThemes();
            for (Iterator it = l.iterator(); it.hasNext();) {
              MainThemes mth = (MainThemes) it.next();
                         
              pw.println("<a href='sf?maintheme="+mth.getMainThemeID()+"'>" + mth.getMainThemeName() + "</a>");
                         
              pw.println("<input type=hidden name='"+mth.getMainThemeName()+"' value='"+mth.getMainThemeID()+"'>");
              pw.println("<p>");
             
            }
          } catch (SQLException e) {
            throw new ServletException(e);
          }


а как считать его в другом сервлете?!
PM MAIL   Вверх
konvict
Дата 27.4.2008, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 20.4.2008

Репутация: нет
Всего: нет



извиняюсь, понял..
PM MAIL   Вверх
konvict
Дата 27.4.2008, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 20.4.2008

Репутация: нет
Всего: нет



помогите обмануть его:
Код

public void doGet(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
        
        resp.setContentType("text/html;charset=windows-1251");
          
          PrintWriter pw = resp.getWriter();
          
          pw.println("<html>");
          
          pw.println("<title>");
          pw.println("New Theme");
          pw.println("</title>");
          
          pw.println("<body>");
          pw.println("<form>");
          
          pw.println("<p>");
          
          pw.println("<input type=text name='NewTheme' size=50>");
          
          pw.println("<input type='submit' value='add'>");
          pw.println("<p>");
          
          pw.println("<a href='mf'> Main </a>");
          
          String theme="";
          theme = req.getParameter("NewTheme");
          
          String qwe = req.getParameter("mth");
        
          System.out.print("8888888\n");
          System.out.print(qwe);
          System.out.print("8888888");
          
                 
          
          int b = Integer.parseInt(qwe);
          
                  
          if (req.getParameter("NewTheme") == null) {
              System.out.print("noNewTheme");
          }
          else {
              
          try {
                  
                ManagementSystem.getInstance().newTheme(theme, b);
                
                
              } catch (SQLException e) {
            
              e.printStackTrace();
              }   
          }
              
          pw.println("</form>");
          pw.println("</body>");
             
          pw.println("</html>");
    }


Я так понял. Как мы только пришли на эту страничку по ссылке - все нормально, считываем необходимый параметр и работает.

Но после того как нажимаем на кнопку, у нас меняется урл и параметр не считывается, т.е. считывается null и соответственно запрос не работает.

Вопрос: как обмануть его, чтобы запоминалось значение параметра, как только ты зашел на страницу, а использовать его уже потом?
или как перестроить структуру урл, чтобы считывалось?
или Ваш вариант?

PM MAIL   Вверх
konvict
Дата 27.4.2008, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 20.4.2008

Репутация: нет
Всего: нет



Решил проблему.
Сначала создал тему где было необходимо(так как есть параметр), но пустую(так как нету имени)
А затем апдейтнул имя(так как уже появилось)


PM MAIL   Вверх
konvict
Дата 28.4.2008, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 20.4.2008

Репутация: нет
Всего: нет



Либо я уже ничего не понимаю из-зи усталости, либо что-то здесь не то.
Посмотрите, пожалуйста.

Вот это работает:
Код

public void newTheme (String th, int mainth) throws SQLException
    {
        String sql=("INSERT INTO Themes (Name, maintheme) VALUES ('"+th+"', '"+mainth+"')");
        Statement stmt = con.createStatement();
        stmt.executeUpdate(sql);
        
        ResultSet rs = stmt.executeQuery("SELECT Name, maintheme FROM Themes WHERE (Name='"+th+"') AND (maintheme="+mainth+")");
        while (rs.next()) {
            Themes theme = new Themes();
            theme.setThemeName(rs.getString(1));
            theme.setMainTheme(rs.getInt(2));
        }
        rs.close();
        stmt.close();
    }


а вот это нет:
Код

public void newMessage (String text, int th, String user) throws SQLException
    {
        String sql=("INSERT INTO Messages (Text, theme, user) VALUES ('"+text+"', '"+th+"', '"+user+"')");
        Statement stmt = con.createStatement();
        stmt.executeUpdate(sql);
        
        ResultSet rs = stmt.executeQuery("SELECT Text, theme, user FROM Messages WHERE (Text='"+text+"') AND (theme="+th+") AND (user='"+user+"')");
        while (rs.next()) {
            Messages msg = new Messages();
            msg.setText(rs.getString(1));
            msg.setTheme(rs.getInt(2));
            msg.setUser(rs.getString(3));
        }
        rs.close(); 
        stmt.close();

пишет: ошибка синтаксиса инструкции INSERT INTO на строку stmt.executeUpdate(sql);
вообще ничего не понимаю....
PM MAIL   Вверх
konvict
Дата 28.4.2008, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 20.4.2008

Репутация: нет
Всего: нет



Блин, я даже в наглую в INSERT'е значение вписывал - тот же результат.

В чем может быть дело? Имена всех полей и таблички совпадает с Acceess'овскими!!!
PM MAIL   Вверх
v2v
Дата 28.4.2008, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 9
Всего: 56



а типы данных ?
int  в одинарные кавычки брать не стоит.


--------------------
PM   Вверх
konvict
Дата 29.4.2008, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 20.4.2008

Репутация: нет
Всего: нет



Разобрался. В Access'е Text тип данных и поэтому INSERT не работал.

Ну вроде все. Задание сделано. Всем спасибо!

v2v Еще раз отдельное, большое спасибо!!!
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0786 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.