Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
3. ПРИМЕРЫ ПРИЛОЖЕНИЙ3.1. Приложение, выполняющее получение содержимого Web-ресурсаРассмотрим на простом примере создание приложения, реализующего доступ по протоколу HTTP к Web-ресурсу, получение содержимого ресурса по URL и сохранение содержимого ресурса в локальном файле.
Рассмотрим основные функции такого приложения: 1. Реализация графического окна, обеспечивающего пользовательский интерфейс взаимодействия с приложением. 2. Сохранение и выборка индентификаторов ресурсов Интернет в базе данных. 3. Подключение к Web-узлу и получение содержимого ресурса. 4. Сохранение содержимого ресурса в локальном файле данных. Разработка пользовательского интерфейсаПользовательский интерфейс приложения включает одно графическое окно, проектирование которого выполнено с использованием дизайнера среды разработки Borland JBulder v. 10. Порядок взаимодействия с приложением следующий. Пользователь вводит в текстовый компонент (textField1) ссылку на Интернет-ресурс. После нажатия кнопки «Save», введенный ресурс сохраняется в БД и одновременно отображается в списке (list1) окна приложения. Далее пользователь выбирает в списке нужный ресурс и кликает на кнопке «Load». Выполняется загрузка содержимого ресурса и сохранение в файле данных в виде кода на языке HTML. Приведенный ниже код сгенерирован автоматически. private void jbInit() throws Exception { //textField1 - компонент для ввода URL Web-ресурса textField1.setText("www.yandex.ru"); textField1.setBounds(new Rectangle(19, 80, 144, 34)); this.setLayout(null); this.show(); this.setSize(400,400); //Save - компонент-кнопка для подтверждения записи ресурса в БД Save.setLabel("Save"); Save.setBounds(new Rectangle(54, 127, 87, 28)); //Обработчик события по нажатию кнопки Save Save.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { Save_actionPerformed(e); } }); //label1 - строка текста в окне label1.setText("Введите URL"); label1.setBounds(new Rectangle(44, 52, 92, 22)); //list1 - список сохраненных в БД ресурсов Web list1.setBounds(new Rectangle(209, 84, 161, 194)); //Load - компонент-кнопка для подтверждения загрузки ресурса Web Load.setLabel("Load"); Load.setBounds(new Rectangle(243, 292, 90, 33)); // Обработчик события по нажатию кнопки Load Load.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { Load_actionPerformed(e); } }); //label2 - строка текста в окне label2.setText("Список сохраненных ресурсов"); label2.setBounds(new Rectangle(200, 50, 182, 23)); //Обработчик события по закрытию окна this.addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(WindowEvent e) { this_windowClosing(e); } }); this.add(Load, null); this.add(textField1, null); this.add(Save, null); this.add(list1, null); this.add(label1, null); this.add(label2, null); } Взаимодействие с базой данныхДля взаимодействия приложения с БД используется технология JDBC. Создадим метод openDb(), в котором реализуем подключение к БД. Statement openDb() { Statement stm; try { //активизируем драйвер БД Class theDriver = sun.jdbc.odbc.JdbcOdbcDriver.class; //устанавливаем соединение с БД Connection myCon = DriverManager.getConnection("jdbc:odbc:html","",""); stm = myCon.createStatement(); } catch(Exception e) { System.err.println("драйвер не найден"); stm = null; } return stm; } Создадим метод-обработчик события по нажатию на кнопке «Save». void Save_actionPerformed(ActionEvent e) { try{ //читаем индентификатор ресурса из текстового поля String url = textField1.getText(); //добавляем его в список list1.add(url); //записываем его в БД String query = "INSERT INTO url (adres) VALUES ('" + url + "')"; int x = st.executeUpdate(query); } catch (Exception ex) { System.out.println("Ошибка подключения к БД "); } } Получение содержимого web-ресурса и сохранение в файле данных Создадим метод-обработчик события по нажатию на кнопке «Load». void Load_actionPerformed(ActionEvent e) { //Получаем строку ресурса из списка String url=list1.getSelectedItem(); try{ //Разбираем строку по элементам StringTokenizer name = new StringTokenizer(url,"/"); URL myURL = new URL(" http://" + url + "/ "); //Создаем буферизованный поток чтения данных из входного потока BufferedReader br = new BufferedReader(new InputStreamReader(myURL.openStream())); String line; //Создаем новый файл данных FileWriter fw = new FileWriter(name.nextToken()+".html", false); while ((line = br.readLine()) != null){ //Отображаем на консоли полученные данные System.out.println(line); //Записываем в файл полученные данные fw.write(line); } //Закрываем файл и входной поток fw.close(); br.close(); } catch(MalformedURLException me){ System.err.println("Unknown host: " + me); System.exit(0); } catch(IOException ioe){ System.err.println("Input error: " + ioe); } catch(NullPointerException o){ String name=url; } } Полный код приложения приведен в приложении 1, где выделенным шрифтом показан код, созданный самостоятельно, а обычным шрифтом код, сгенерированный средой разработки автоматически.
|
1 |
Оглавление
|