Zaawansowane aplikacje WWW - laboratorium

Podobne dokumenty
Aplikacje internetowe i rozproszone - laboratorium

Zaawansowane aplikacje WWW - laboratorium

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Aplikacje WWW - laboratorium

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Aplikacje WWW - laboratorium

Projektowanie aplikacji internetowych laboratorium

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Zaawansowane aplikacje internetowe laboratorium

Zaawansowane aplikacje internetowe - laboratorium

Bezpieczne uruchamianie apletów wg

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

Aplikacje WWW - laboratorium

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Tworzenie projektu zawierającego aplet w środowisku NetBeans. lab1. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Java pierwszy program w Eclipse «Grzegorz Góralski strona własna

Programowanie obiektowe zastosowanie języka Java SE

Programowanie w Javie Lista nr 1. Wybieramy kategorię Java, a wśród Projektów Java Application i [NEXT]

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Wykorzystywanie parsera DOM w programach Java i PL/SQL

Aplikacje internetowe i rozproszone - laboratorium

Java Platform Micro Edition

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

Programowanie wielowarstwowe i komponentowe

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Programowanie Obiektowe GUI

Wprowadzenie do laboratorium. Zasady obowiązujące na zajęciach. Wprowadzenie do narzędzi wykorzystywanych podczas laboratorium.

2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK

Web Services (SOAP) Ćwiczenie 1

ZSBD ćwiczenie 4. Obiektowe systemy zarządzania bazą danych. Przygotowanie środowiska pracy. Wymagania: ZSBD ćwiczenie 4

Aplikacje WWW - laboratorium

Db4o obiektowa baza danych wersja.net

Ćwiczenia 9 - Swing - część 1

Programowanie w Javie

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1

Podstawy XML-a. Zaawansowane techniki programowania

Zaawansowane aplikacje internetowe - laboratorium

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

Viatoll Calc v1.3. Viatoll Calc. Instrukcja użytkownika. Strona 1

Programowanie Systemów Czasu Rzeczywistego

WPROWADZENIE DO JĘZYKA JAVA

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Zaawansowane aplikacje internetowe

E:\DYDAKTYKA\ZAI\ZWWW\Laboratoria\L07\Java Persistence.doc 2011-lis-24, 17:0 Zaawansowane aplikacje internetowe Laboratorium Java Persistence.

Wybierz kategorię Java Web i typ projektu Web Application. Kliknij przycisk Next >.

Aplikacje w środowisku Java

JDK można pobrać ze strony

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Załącznik 1 instrukcje instalacji

Praca z programami SAS poza lokalną siecią komputerową UZ. Zestawienie tunelu SSH oraz konfiguracja serwera proxy w przeglądarce WWW

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Zaawansowane aplikacje internetowe laboratorium

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Załącznik 1 instrukcje instalacji

Katalog książek cz. 2

Git, Bitbucket, IntelliJ IDEA

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 2).

Wprowadzenie do tworzenia własnego modułu w kontrolerze Floodlight.

Laboratorium 9 (Więcej Aktywności, w Androidzie)

Języki i metody programowania Java Lab2 podejście obiektowe

Krótki kurs obsługi środowiska programistycznego Turbo Pascal z 12 Opracował Jan T. Biernat. Wstęp

Algorytmy z powrotami. Algorytm minimax

Laboratorium 01: Poznanie środowiska programowania w języku Java [2h]

ZAPOZNANIE SIĘ Z TWORZENIEM

Instalowanie VHOPE i plików biblioteki VHOPE

Język JAVA podstawy. Wykład 6, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Praca z programami SAS poza lokalną siecią komputerową UZ. Zestawienie tunelu SSH oraz konfiguracja serwera proxy w przeglądarce WWW

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Enterprise JavaBeans (EJB)

Programowanie urządzeń mobilnych. dr inż. Juliusz Mikoda

akademia androida Składowanie danych część VI

Instrukcja InPro BMS Siemens FC700A InPro Professional 4.1

5.2. Pierwsze kroki z bazami danych

Modelowanie obiektowe - Ćw. 1.

Pobieranie edytora CodeLite

Podstawy i języki programowania

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP002017_ Laboratorium 11 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Zaawansowane aplikacje internetowe

Laboratorium - Narzędzie linii uruchamiania w systemie Windows Vista

Ćwiczenie 1. Przygotowanie środowiska JAVA

System Zdalnej Obsługi Certyfikatów Instrukcja użytkownika

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

System Zdalnej Obsługi Certyfikatów Instrukcja użytkownika

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski SYSTEMY SCADA

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki

Poradnik użytkownika pomoc techniczna

System Zdalnej Obsługi Certyfikatów 2.0 Instrukcja użytkownika

JAVA I SIECI. MATERIAŁY:

Protokół JDBC współpraca z relacyjnymi bazami danych lab4. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Laboratorium - Użycie narzędzia Przywracanie systemu w systemie Windows 7

Wstęp - Prosta aplikacja internetowa w technologii Java EE 5. Programowanie komponentowe 1

Transkrypt:

Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 1) Celem ćwiczenia jest przygotowanie aplikacji w języku Java, która będzie służyła do stworzenia dokumentu XML za pomocą Java DOM API. Generowany dokument będzie zawierał spis części komputerowych wraz z ich cenami i stanami magazynowymi. Aplikacja powinna umożliwiać dodawanie i usuwanie części, wyświetlanie spisu części oraz transformację i zapis drzewa DOM do pliku XML. Do wykonania ćwiczenia wykorzystane zostanie środowisko programistyczne Eclipse SDK 3.1 (do pobrania z http://www.eclipse.org) Wymagane jest środowisko J2SE 1.4.2 (lub wyższe). Struktura drzewa DOM dla przechowywania informacji o częściach została przedstawiona na poniższym rysunku. korzeń węzeł elementu węzeł atrybutu węzeł tekstowy ID=10 procesorx 450 <part> <computer_parts> <name> <price> <quantity> <poznan> <warszawa> 35 24 <?xml version="1.0" encoding="utf-8"?> <computer_parts> <part ID="10"> <name>procesorx</name> <price>450</price> <quantity> <poznan>35</poznan> <warszawa>24</warszawa> </quantity> </part> <part ID="25"> <name>mysz</name> <price>65</price> <quantity> <poznan>5</poznan> <warszawa>16</warszawa> </quantity> </part>... </computer_parts> 1. Uruchom środowisko Eclipse. Na ekranie wyświetlone zostanie okienko z pytaniem o przestrzeń roboczą (ang. workspace), czyli katalog dyskowy, który będzie używany w bieżącej sesji programu Eclipse. Załóżmy, że tym katalogiem będzie c:\programy. Jeśli taki katalog nie istniał, zostanie on założony automatycznie.

2. Z menu głównego wybierz File New Project. 3. Wybierz typ kreatora Java Project. Kliknij przycisk Next >.

4. Podaj nazwę projektu, np. xmllab1. Kliknij przycisk Next >. 5. Kolejne okienko pozwala na zdefiniowanie dodatkowych lub zmianę istniejących ustawień dla projektu. Dla budowanej aplikacji wystarczy domyślna konfiguracja. Kliknij przycisk Finish.

6. Z menu głównego wybierz Window Open Perspective Java. (Ta czynność nie powoduje otwarcia żadnego, nowego okienka). 7. Zamknij zakładkę Welcome w głównym oknie (jeśli była otwarta). 8. Kliknij prawym przyciskiem myszy na nazwie projektu w zakładce Package Explorer. Z menu kontekstowego wybierz New Class.

9. Podaj nazwę pakietu, np. myxmlpackage oraz nazwę klasy, np. Shop. Zaznacz opcję public static void main(string [] args). Kliknij przycisk Finish. 10. Postępując podobnie jak w punktach 8-9, utwórz klasę XMLHandler. Uwaga! Nie zaznaczaj opcji public static void main(string [] args).

11. Klasa XMLHandler będzie odpowiedzialna za przechowywanie dokumentu XML w postaci drzewa DOM oraz za operacje wykonywane na tym dokumencie. Konstruktor klasy będzie tworzył nowy dokument XML. Wprowadź następujący kod do pliku tej klasy. package myxmlpackage; import org.w3c.dom.*; import javax.xml.parsers.documentbuilder; import javax.xml.parsers.documentbuilderfactory; import javax.xml.transform.transformer; import javax.xml.transform.transformerfactory; import javax.xml.transform.dom.domsource; import javax.xml.transform.stream.streamresult; import java.io.fileoutputstream; public class XMLHandler { Document xmldoc; public XMLHandler() { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); try { DocumentBuilder parser = factory.newdocumentbuilder(); xmldoc = parser.newdocument(); catch (Exception e) { System.out.println(e.toString()); 12. Dokument XML musi posiadać główny węzeł, który obejmuje całość dokumentu. W przypadku modelowanej aplikacji jest to węzeł computer_parts. Dodaj do klasy XMLHandler poniższą metodę odpowiedzialną za jego utworzenie. public void addroot() { Element root = (Element) xmldoc.createelement("computer_parts"); xmldoc.appendchild(root); 13. Kolejnym etapem ćwiczenia jest zdefiniowanie operacji służących do wstawiania i usuwania opisu podzespołów komputerowych z dokumentu XML. Dodaj poniższe definicje metod do klasy XMLHandler. public void addpart(string r_id, String r_name, String r_price, String r_quantity1, String r_quantity2) { Node namenode, pricenode, quantitynode, citynode; Node rootnode = xmldoc.getdocumentelement(); Element newpartnode = xmldoc.createelement("part"); newpartnode.setattribute("id", r_id); rootnode.appendchild(newpartnode); namenode = xmldoc.createelement("name"); Node newtextnode = xmldoc.createtextnode(r_name); namenode.appendchild(newtextnode); newpartnode.appendchild(namenode); pricenode = xmldoc.createelement("price"); newtextnode = xmldoc.createtextnode(r_price); pricenode.appendchild(newtextnode); newpartnode.appendchild(pricenode);

quantitynode = xmldoc.createelement("quantity"); newpartnode.appendchild(quantitynode); citynode = xmldoc.createelement("poznan"); newtextnode = xmldoc.createtextnode(r_quantity1); citynode.appendchild(newtextnode); quantitynode.appendchild(citynode); citynode = xmldoc.createelement("warszawa"); newtextnode = xmldoc.createtextnode(r_quantity2); citynode.appendchild(newtextnode); quantitynode.appendchild(citynode); public void delpart(string r_id) { Node rootnode = xmldoc.getdocumentelement(); Node partnode, idnode; NodeList docnodelist = rootnode.getchildnodes(); for (int i = 0; i < docnodelist.getlength(); i++) { partnode = docnodelist.item(i); idnode = partnode.getattributes().item(0); if (idnode.getnodevalue().equals(r_id)) { rootnode.removechild(partnode); System.out.println("usunięto część z id=" + r_id); break; 14. Użytkownik powinien mieć dostęp do wprowadzonych do dokumentu informacji na temat części komputerowych. Ponadto powinna istnieć możliwość zapisu dokument XML do pliku. Poniżej znajduje się implementacja dwóch metod służących do realizacji tych wymagań. Dodaj te metody do klasy XMLHandler. public void showxml() { Node rootnode = xmldoc.getdocumentelement(); Node mynode; Element tempelement; NodeList docnodelist = rootnode.getchildnodes(); String desc; for (int i = 0; i < docnodelist.getlength(); i++) { tempelement = (Element) docnodelist.item(i); desc = "[" + tempelement.getattribute("id") + "] "; mynode = tempelement.getelementsbytagname("name").item(0); desc += mynode.getfirstchild().getnodevalue(); desc += ", price:"; mynode = tempelement.getelementsbytagname("price").item(0); desc += mynode.getfirstchild().getnodevalue(); System.out.println(desc); public void savexml() { try { TransformerFactory tf = TransformerFactory.newInstance(); Transformer t = tf.newtransformer(); t.transform(new DOMSource(xmlDoc), new StreamResult( new FileOutputStream("wynik.xml"))); catch (Exception e) { System.out.println(e.toString());

15. Budowana aplikacja będzie działała w trybie tekstowym. Po uruchomieniu użytkownik będzie mógł wydawać kolejne polecenia (do momentu wpisania komendy exit, co skutkuje zakończeniem działania programu). Dodaj polecenia importu pakietów i uzupełnij metodę main w klasie Shop. import java.io.*; import java.util.stringtokenizer;... public static void main(string[] args) { XMLHandler xml = new XMLHandler(); xml.addroot(); try { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String input = ""; while(true) { System.out.print("> "); input = in.readline(); if (input.equals("")) continue; if ("exit".equals(input)) break; else parsejob(input, xml); catch(exception e) { System.out.println(e.getMessage()); 16. Dodaj metodę, która będzie realizowała polecenia wpisywane przez użytkownika. Polecenie add wymaga podania pięciu parametrów opisujących część (identyfikator, nazwa, cena, ilość w sklepie w Poznaniu, ilość w sklepie w Warszawie) oddzielonych znakiem spacji. Polecenie del wymaga podania identyfikatora usuwanej części. Polecenie show wyświetla aktualną listę części, save zapisuje dane do pliku XML. Dodaj poniższy kod do klasy Shop. public static void parsejob(string r_input, XMLHandler r_xml) { StringTokenizer st = new StringTokenizer(r_input," "); String command = st.nexttoken(); if (command.equalsignorecase("add")) r_xml.addpart(st.nexttoken(), st.nexttoken(), st.nexttoken(), st.nexttoken(), st.nexttoken()); else if (command.equalsignorecase("del")) r_xml.delpart(st.nexttoken()); else if (command.equalsignorecase("show")) r_xml.showxml(); else if (command.equalsignorecase("save")) r_xml.savexml();

17. Przejdź do edycji klasy Shop. Z głównego menu wybierz Run Run. W panelu Configurations zaznacz Java Application kliknij przycisk New. 18. Uruchom aplikację przez kliknięcie przycisku Run.

19. Przetestuj działanie programu używając wbudowanej w środowisko Eclipse konsoli. Dodaj klika podzespołów do dokumentu, wyświetl je, usuń wybrane, zapisz do pliku. 20. Zapisany plik XML możesz znaleźć w katalogu projektu (przy ustawieniach użytych w ćwiczeniu, ścieżka do pliku to C:\programy\xmllab1\wynik.xml). Sprawdź zawartość pliku, np. używając przeglądarki internetowej.