Читать «Java 7 (Наиболее полное руководство)» онлайн - страница 403

Ильдар Шаукатович Хабибуллин

password = tf3.getText();

query = ta.getText();

if (th == null){

th = new Thread(this); th.start();

}

}

public void run(){ try{

Connection con = DriverManager.getConnection(url, login, password); Statement st = con.createStatement();

ResultSet rs = st.executeQuery(query);

ResultSetMetaData rsmd = rs.getMetaData();

// Узнаем число столбцов int n = rsmd.getColumnCount(); results = new Vector();

while (rs.next()){

String s = " ";

// Номера столбцов начинаются с 1! for (int i = 1; i <= n; i++) s += " " + rs.getObject(i);

results.addElement(s);

}

rs.close(); st.close(); con.close(); repaint();

}catch(Exception e){

System.err.println(e);

}

repaint();

}

public void paint(Graphics g){ if (results == null){

g.drawString("Can't execute the query", 5, 30); return;

}

int y = 30, n = results.size();

for (int i = 0; i < n; i++)

g.drawString((String)results.elementAt(i), 5, y += 20);

}

}

Замечание по отладке

В главе 24 упоминалось, что для отладки сетевой программы удобно запустить и клиентскую, и серверную часть на одном компьютере, обращаясь к серверной части по адресу

127.0.0.1 или доменному имени localhost. Не забывайте, что апплет может связаться по сети только с тем хостом, откуда он загружен. Следовательно, на компьютере должен работать Web-сервер. Если Web-сервер прослушивает порт 8080, то чтобы загрузить HTML-страницу с апплетом, надо в браузере указывать адрес URL вида JdbcApplet.html. При этом учтите, что Web-сервер устанавливает свою иерархию каталогов, и каталог public на самом деле может быть каталогом usr/local/http/public или каким-нибудь другим.

Таким образом, JDBC позволяет проделать весь цикл работы с базой данных. Подробно со всеми возможностями JDBC можно познакомиться, прочитав спецификацию JDBC, имеющуюся по адресу: .

В документации Java SE, в каталоге technotes/guides/jdbc/, есть ссылки на пособия по использованию JDBC.

Вопросы для самопроверки

1. Почему в Java создан свой формат архивирования JAR?

2. Нужно ли распаковывать jar-архивы для использования классов, содержащихся в них?

3. Можно ли упаковывать апплеты в j ar-архив?

4. Куда надо помещать jar-файлы для использования их в приложении?

5. Что такое JavaBeans: классы, интерфейсы, пакеты, правила оформления классов?

6. Что должно быть в классе, называемом JavaBean?

7. Где применяются JavaBeans?

8. Что такое JDBC?

9. Какие существуют типы драйверов JDBC?

10. Какие фирмы разрабатывают драйверы JDBC?

ГЛАВА 26

Сервлеты

Первоначально перед HTTP-серверами стояла простая задача: найти и отправить клиенту файл, указанный в полученном от клиента запросе. Запрос составлялся тоже очень просто по правилам протокола HTTP в специально придуманной форме URL.

Потом понадобилось сделать на сервере какую-либо небольшую предварительную обработку отправляемого файла. Появились включения на стороне сервера SSI (Server Side Include) и различные приемы динамической генерации страниц HTML. HTTP-сервер усложнился и стал называться Web-сервером.

Затем возникла необходимость выполнять на сервере процедуры. В запрос URL вставили возможность вызова процедур, а на сервере реализовали технологию CGI (Common Gateway Interface), о которой мы говорили в предыдущих главах. Теперь в запросе URL указывается процедура, которую надо выполнить на сервере, и записываются аргументы этой процедуры в виде пар "имя — значение", например: