ΕΡΓΑΣΤΗΡΙΟ – No.7 Ηλεκτρονικού Εμπορίου Ε-Επιχειρείν Δρ. Χρήστος Κ. Γεωργιάδης - 2003 Java APIs για Web Services: ΧΜL και JSP.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
Advertisements

Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 9: Διανύσματα και λίστες.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 10: Graphical User Interfaces Εβδομάδα 10: Εισαγωγή στα Γραφικά Περιβάλλοντα.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 9: Input / Output Εβδομάδα 8: Είσοδος / Έξοδος [Input / Output]
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 4: Exceptions Εβδομάδα 4: Εξαιρέσεις [Exceptions]
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
Γραφικά Ενδιάμεσα Χρήστη στην Java
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) Methods, Constructors and Field.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING Επισκόπηση.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Συλλογές Εξαιρέσεις.
Επικοινωνία Ανθρώπου Μηχανής Καρακίτσος Ηλίας ΑΜ 614 Ιωάννου Ελένη ΑΜ 647.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γενικευμένες κλάσεις Συλλογές.
Γράφημα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Συνδυαστικό αντικείμενο που αποτελείται από.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
ΟΣΣ Δεκεμβρίου 2004 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων Ζωγραφάκης Ιωάννης.
Γλωσσική Τεχνολογία HTML/XML Processing – HTTP Services.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές.
Threads Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά η μία μετά.
#develop The open source IDE for.NET. Τι είναι το #develop? o Διαβάζεται SharpDevelop. o Είναι ένα opensource IDE για το.ΝΕΤ platform. o Είναι μία συλλογή.
Κεφάλαιο 4 Εξαιρέσεις. Όταν σε ένα πρόγραμμα συμβεί κάποιο λάθος, ο κώδικας εγείρει (throw) μία εξαίρεση. Στη Java oι εξαιρέσεις εκπροσωπούνται από αντικείμενα.
XML Parsing Γιώργος Θάνος Παρασκευή 14 Νοεμβρίου 2008.
Κεφάλαιο 3 Τύποι Δεδομένων - Τελεστές. Πρωτογενείς τύποι δεδομένων: int, float, double, chars ΤύποςΌνομαΜέγεθος byte 8-bit signed, short 16-bit.
Εισαγωγή στη Java (Μέρος B’) Για όσους γνωρίζουν C++ Βασίλης Στούμπος
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 10: Αφηρημένες τάξεις. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής.
Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): Προαπαιτούμενα: ΤΠ2003,2103.
Βασικές ένοιες Αντικειμενοστραφούς Προγραμματισμού - Κλάσεις ΕΡΓΑΣΤΗΡΙΟ AΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Διαφάνειες: ΧΟΧΟΛΗΣ ΔΙΟΝΥΣΙΟΣ Προσαρμογή 2014:
Γραφικά με Java 1 Διάλεξη 7Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο
Δικτυακός Προγραμματισμός (Θ)
Σημαντικές Κλάσεις του Android Fragments ViewPager TabHost
Εισαγωγή στον Προγ/μό Η/Υ
Αντικειμενοστραφής Προγραμματισμός ΙΙ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΕΡΓΑΣΤΗΡΙΟ Ηλεκτρονικού Εμπορίου Ε-Επιχειρείν
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Software Engineering for Web Applications
Πίνακες και αλφαριθμητικά
Εισαγωγή στον Προγ/μό Υπολογιστών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Web Services στη C# Εργαστήριο 2
ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΤΗΣ JAVA
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Swing II Εβδομάδα Νο. 6.
JAVA – Basic OOP Principles
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ
Ειδικά Θέματα στον Προγραμματισμό Υπολογιστών
Databases Θ. Βαρβαρίγου Καθηγήτρια ΕΜΠ Τηλ
Εισαγωγή στη Java (Μέρος Α’)
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Διάλεξη #10: Εκτέλεση Java χωρίς το BlueJ
Wrapper Classes, Abstract Classes and Interfaces
ΔΙΑ ΒΙΟΥ ΜΑΘΗΣΗ The “MiGreat Project”- n IT01-KA has been funded with support from the European Commission. This document reflects the.
Week 9: Input / Output Διάλεξη #16: Είσοδος / Έξοδος [Input / Output]
Εξαιρέσεις [Exceptions]
Week 10: Graphical User Interfaces
Επικοινωνίας Java με Swing
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Μεταγράφημα παρουσίασης:

ΕΡΓΑΣΤΗΡΙΟ – No.7 Ηλεκτρονικού Εμπορίου Ε-Επιχειρείν Δρ. Χρήστος Κ. Γεωργιάδης Java APIs για Web Services: ΧΜL και JSP

Δρ. Χρήστος Κ. Γεωργιάδης The Document Object Model (DOM) APIs Μοντέλο Αντικειμένων Εγγράφου Το πρότυπο DOM μετατρέπει ένα έγγραφο XML σε μια συλλογή αντικειμένων στο πρόγραμμά μας. Μπορούμε έπειτα να χειριστούμε το μοντέλο αντικειμένου με κάθε τρόπο που έχει νόημα. Αυτός ο μηχανισμός είναι επίσης γνωστός ως πρωτόκολλο τυχαίας «προσπέλασης», επειδή μπορούμε να επισκεφτούμε οποιοδήποτε μέρος των δεδομένων, σε οποιαδήποτε στιγμή. Μπορούμε έπειτα να τροποποιήσουμε τα δεδομένα, να τα αφαιρέσουμε, ή να παρεμβάλουμε νέα δεδομένα.

Δρ. Χρήστος Κ. Γεωργιάδης DOM APIs  Χρησιμοποιούμε τη κλάση javax.xml.parsers.DocumentBuilderFactory για τη δημιουργία ενός DocumentBuilder instance, το οποίο το χρησιμοποιούμε για τη παραγωγή ενός Document (ενός DOM) που ακολουθεί τη προδιαγραφή του DOM.  Ο builder που παίρνουμε, προσδιορίζεται από την ιδιότητα System, που επιλέγει τη συγκεκριμένη υλοποίηση του factory που χρησιμοποιήθηκε.  Μπορούμε ακόμη να χρησιμοποιήσουμε τη μέθοδο newDocument() του DocumentBuilder, για τη δημιουργία ενός άδειου Εγγράφου που υλοποιεί το interface του org.w3c.dom.Document.  Εναλλακτικά, μπορούμε να χρησιμοποιήσουμε μία από τις μεθόδους parse του builder, για τη κατασκευή ενός Εγγράφου από υπάρχοντα δεδομένα XML. Το αποτέλεσμα είναι ένα δένδρο DOM, όπως αυτό του διαγράμματος.

Δρ. Χρήστος Κ. Γεωργιάδης Τα πακέτα DOM  org.w3c.dom Προσδιορίζει τα DOM προγραμματιστικά interfaces για XML (και, προαιρετικά για HTML) έγγραφα, όπως προσδιορίστηκε από τον οργανισμό W3C.  javax.xml.parsers Ορίζει τη κλάση DocumentBuilderFactory και τη κλάση DocumentBuilder, που επιστρέφουν ένα αντικείμενο που υλοποιεί το W3C Document interface. Επίσης το πακέτο αυτό ορίζει τη κλάση ParserConfigurationException για αναφορά λαθών.

Δρ. Χρήστος Κ. Γεωργιάδης Παράδειγμα: DomEcho01.java Σκελετός εφαρμογής public class DomEcho01 { public static void main(String argv[]) { if (argv.length != 1) { System.err.println( "Usage: java DomEcho filename"); System.exit(1); } }// main }// DomEcho

Δρ. Χρήστος Κ. Γεωργιάδης Παράδειγμα: DomEcho01.java Imports import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.FactoryConfigurationError; import javax.xml.parsers.ParserConfigurationException; import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; import java.io.File; import java.io.IOException; import org.w3c.dom.Document; import org.w3c.dom.DOMException;

Δρ. Χρήστος Κ. Γεωργιάδης Παράδειγμα: DomEcho01.java Δήλωση DOM static Document document; Χειρισμός λαθών (όμοιος με SAX) try { } catch (SAXParseException spe) { // Error generated by the parser System.out.println("\n** Parsing error" + ", line " + spe.getLineNumber() + ", uri " + spe.getSystemId()); System.out.println(" " + spe.getMessage() ); // Use the contained exception, if any Exception x = spe; if (spe.getException() != null) x = spe.getException(); x.printStackTrace(); } catch (SAXException sxe) { // Error generated during parsing Exception x = sxe; if (sxe.getException() != null) x = sxe.getException(); x.printStackTrace(); } catch (ParserConfigurationException pce) { // Parser with specified options can't be built pce.printStackTrace(); } catch (IOException ioe) { // I/O error ioe.printStackTrace(); } }// main

Δρ. Χρήστος Κ. Γεωργιάδης Παράδειγμα: DomEcho01.java Δημιουργία στιγμιότυπου του factory  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); Απόκτηση parser και ανάλυση αρχείου  try { DocumentBuilder builder = factory.newDocumentBuilder(); document = builder.parse( new File(argv[0]) ); } catch (SAXParseException spe) {

Δρ. Χρήστος Κ. Γεωργιάδης Παράδειγμα: DomEcho02.java Εμφάνιση μιας ιεραρχίας DOM  Πρόσθεση νέων import // GUI components and layouts import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.JSplitPane; import javax.swing.JEditorPane; // GUI support classes import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.WindowEvent; import java.awt.event.WindowAdapter; // For creating borders import javax.swing.border.EmptyBorder; import javax.swing.border.BevelBorder; import javax.swing.border.CompoundBorder;

Δρ. Χρήστος Κ. Γεωργιάδης Παράδειγμα: DomEcho02.java Δημιουργία GUI Framework  public class DomEcho02 extends JPanel  static final int windowHeight = 460;  static final int leftWidth = 300;  static final int rightWidth = 340;  static final int windowWidth = leftWidth + rightWidth;  …  document = builder.parse( new File(argv[0]) );  makeFrame(); …

Δρ. Χρήστος Κ. Γεωργιάδης Παράδειγμα: DomEcho02.java makeFrame() public static void makeFrame() { // Set up a GUI framework JFrame frame = new JFrame("DOM Echo"); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} }); // Set up the tree, the views, and display it all final DomEcho02 echoPanel = new DomEcho02(); frame.getContentPane().add("Center", echoPanel ); frame.pack(); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); int w = windowWidth + 10; int h = windowHeight + 10; frame.setLocation(screenSize.width/3 - w/2, screenSize.height/2 - h/2); frame.setSize(w, h); frame.setVisible(true) } // makeFrame

Δρ. Χρήστος Κ. Γεωργιάδης Παράδειγμα: DomEcho02.java constructor, border και JEditPane public DomEcho02() { // Make a nice border EmptyBorder eb = new EmptyBorder(5,5,5,5); BevelBorder bb = new BevelBorder(BevelBorder.LOWERED); CompoundBorder cb = new CompoundBorder(eb,bb); this.setBorder(new CompoundBorder(cb,eb)); } // Constructor // Set up the tree JTree tree = new JTree(); // Build left-side view JScrollPane treeView = new JScrollPane(tree); treeView.setPreferredSize( new Dimension( leftWidth, windowHeight )); // Build right-side view JEditorPane htmlPane = new JEditorPane("text/html",""); htmlPane.setEditable(false); JScrollPane htmlView = new JScrollPane(htmlPane); htmlView.setPreferredSize( new Dimension( rightWidth, windowHeight ));

Δρ. Χρήστος Κ. Γεωργιάδης Παράδειγμα: DomEcho02.java split-pane view // Build split-pane view JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, treeView, htmlView ); splitPane.setContinuousLayout( true ); splitPane.setDividerLocation( leftWidth ); splitPane.setPreferredSize( new Dimension( windowWidth + 10, windowHeight+10 )); // Add GUI components this.setLayout(new BorderLayout()); this.add("Center", splitPane );