Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 8 η Διάλεξη: Προγραμματισμός στην πλευρά του εξυπηρετητή: Τεχνολογία Java Server Pages (JSP)

Σχετικά έγγραφα
Εισαγωγή στις Σελίδες Εξυπηρετητή Java Java Server Pages (JSP)

Τεχνολογίες Διαδικτύου. Server Side Scripting I PHP

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 12η Διάλεξη: Επανάληψη / Ανακεφαλαίωση

Java & Java EE 1o Μέρος: Servlets και Java Server Pages. Κακαρόντζας Γεώργιος

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

Βασικές Έννοιες Web Εφαρμογών

Τεχνικός Εφαρμογών Πληροφορικής

Πληροφορίες για το μάθημα

Java & Java EE 3o Μέρος: Διασφάλιση ασφάλειας σε εφαρμογές Java Enterprise Edition. Κακαρόντζας Γεώργιος

Εργαλεία ανάπτυξης εφαρμογών internet Ι

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15

NetBeans και σχετικά προγράμματα. Κακαρόντζας Γεώργιος Κέντρο Αριστείας Ανοιχτού Λογισμικού ΑΠΘ 1ο Θερινό Σχολείο Κώδικα

Διαδικτυακές Εφαρμογές Ενότητα 5: Servlets και JSPs

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

Κατανεµηµένα Συστήµατα ΙΙ Μάθηµα Ελεύθερης Επιλογής, Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Τεχνολογίες Ανάπτυξης Ηλεκτρονικού Καταστήματος Μικρομεσαίας Επιχείρησης. Μικρομεσαίες Επιχειρήσεις και Καινοτομία

2. ΕΙΣΑΓΩΓΗ ΣΤΗΝ HTML ΓΙΩΡΓΟΣ ΓΙΑΝΝΑΚΑΚΗΣ, ΜΑΝΩΛΗΣ ΤΣΙΚΝΑΚΗΣ

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Διαδικτυακές Εφαρμογές. Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Προβλήµατα CGI, SSI CGI: Απόδοση Έναρξη νέας διαδικασίας για εκτέλεση (2 διαδικασιών σε περίπτωση διερµηνευόµενης γλώσσας, π.χ. perl). Κοινές διαδικασ

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP.

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 10η Διάλεξη: Web Services

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

Εργαστήριο 6. Προγραμματιστικές Εφαρμογές στο Διαδίκτυο. Στόχος. Προετοιμασία περιβάλλοντος εργασίας. a) Εκκίνηση XAMPP

Java Servlets: Principles and Programming 1/19

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ

HelloApplet. Παύλος Εφραιμίδης Java Applets 1

Εισαγωγή στην PHP. ΕΣΔ 232 Διαχείριση Δεδομένων στη Κοινωνία της Πληροφορίας. Περιεχόμενα. Περιεχόμενα

PHP 1. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Δ. Ζήνδρος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Cloud Computing Database with Amazon SimpleDB

Εισαγωγή στη J2EE. Μέρος 2

Κεφάλαιο 1. Βασικά Στοιχεία της Java... 13

Java & Java EE 2o Μέρος: Διασφάλιση ευκολίας τροποποίησης με το πρότυπο MVC (Model View Controller) Κακαρόντζας Γεώργιος

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Περιεχόμενα. Πρόλογος... xiii

Εφαρµογές διαδικτύου µε PHP

Εργαστήριο 1-1 η Άσκηση - Ανάλυση

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet.

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 3: Server Side Scripting II PHP & MySQL

ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΤΕΧΝΟΛΟΓΙΩΝ ΓΙΑ ΤΗΝ ΑΝΑΠΤΥΞΗ WEB ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΕΡΙΒΑΛΛΟΝ JAVA» ΜΠΑΣΛΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ A.M 1737

Ειδικά Θέματα Προγραμματισμού

Injection Attacks. Protocol Host FilePath. field1=valuex&field2=valuey. Query String. Web server HTTP GET.

Η γλώσσα προγραμματισμού C

Θέματα Προγραμματισμού Διαδικτύου ~ PHP ~

Δομή και Στόχοι του Μαθήματος - Εισαγωγή

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #1 ο : Εισαγωγή στο Περιβάλλον Ανάπτυξης (IDE)

Εισαγωγή στην Ανάπτυξη Εφαρμογών Web με Χρήση της Python, του Apache και του mod_python

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

Πληροφορική στιςεπιχειρήσεις

Ανάπτυξη Υπηρεσίας Τηλεκπαίδευσης σε ΙP Δίκτυα. Υλοποίηση Σύγχρονης Τηλεκπαίδευσης

ΤΕΙ Σερρών Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πληροφορικής & Επικοινωνιών. Επώνυμο Όνομα: Α.Μ. : Εξάμηνο : Αίθουσα

Συλλογή και Επεξεργασία Δεδομένων με Φόρμες

Βασική δομή ενός HTML εγγράφου

Διαδίκτυο: Ιστορία, Δομή, Υπηρεσίες

Εισαγωγή στην ASP.NET. Σημειώσεις Σεμιναρίου Επιμέλεια: Βασίλης Κόλιας 4.0

Δημιουργία μιας εφαρμογής Java με το NetBeans

Διαδικασιακός Προγραμματισμός

Αντικειµενοστρεφής Προγραµµατισµός

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΜΕ ΧΡΗΣΗ PHP

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #1 ο : Εισαγωγή στο Περιβάλλον Ανάπτυξης (IDE)

Αξιολόγηση Υπηρεσιών ιαδικτύου µέσω Περιπτώσεων Μελέτης

Web Programming for Dummies

JOOMLA CMS ΒΑΣΙΚΗ ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ (PART I)

A J A X AJAX Γιάννης Αρβανιτάκης

ΜΑΘΗΜΑ: Διαδικτυακές Εφαρμογές

Περιεχόμενα ΕΥΧΑΡΙΣΤΙΕΣ ΕΙΣΑΓΩΓΗ Σχετικά με τους συγγραφείς...24

ΔΕ10: Πληροφοριακά Συστήματα Διοίκησης IΙ Εργαστήριο # 2

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Εφαρµογές WebGIS Open Source

Σε αυτό το μάθημα θα ασχοληθούμε με τη βελτίωση της εμφάνισης ενός ιστοτόπου, αλλά και τον εύκολο χειρισμό όλων των αλλαγών τις οποίες επιθυμούμε να

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ: ΠΡΟΤΥΠΩΝ ΣΧΕΔΙΑΣΗΣ» της ΜΑΡΙΑΣ ΜΟΥΡΑΤΙΔΟΥ

Κεφάλαιο 3.1, : Συναρτήσεις I. (Διάλεξη 11)

TEC510 Ανάπτυξη Δικτυακών Τόπων (Ε εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Επιστημονικός συνεργάτης Εργαστηρίου: Γιώργος Μηλιώτης

Σύστημα διαχείρισης περιεχομένου (Content Management System)

Εργαστήριο 8. Προγραμματιστικές Εφαρμογές στο Διαδίκτυο

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Τεχνολογίες και Εφαρμογές Διαδικτύου

Διαδικτυακές Εφαρμογές Ενότητα 3: Ανάπτυξη JavaEE 6 εφαρμογής με JSF2, EJB3 και JPA

Η Βίβλος σχετικά με το JDBC. Περιέχει τρία βασικά tutorials στα οποία θα βασιστεί το μάθημα και περιγράφει όλες τις τάξεις και τις μεθόδους που

Αντικειμενοστρεφής Προγραμματισμός

5 η Διάλεξη: Προγραμματισμός στην πλευρά του εξυπηρετητή: προχωρημένα θέματα PHP

Άσκηση 5 -Δηµιουργία ιστοσελίδων µε HTML µέρος 5 ο

Εργαστήριο 7. Προγραμματιστικές Εφαρμογές στο Διαδίκτυο

ίκτυα - Internet Υπηρεσίες Internet O Παγκόσµιος Ιστός (World Wide Web) Ηλεκτρονική Αλληλογραφία ( ) Υπηρεσία FTP (File Transfer Protocol)

Διαχείριση Πληροφοριών στο Διαδίκτυο. Εργαστήριο 1

Σχολή Κοινωνικών Επιστημών Τμήμα Πολιτισμικής Τεχνολογίας Και Επικοινωνίας

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

B. Ενσωμάτωση Ιθαγενών Μεθόδων

Τεχνολογίες Ανάπτυξης Εφαρμογών στο WEB

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

Προγραμματισμός Διαδικτύου ΕΡΓΑΣΤΗΡΙΟ. Τμ. ΔΕ- Χειμ

ΑΣΚΗΣΗ. Συγκομιδή και δεικτοδότηση ιστοσελίδων

8ο Πανελλήνιο Συμποσιο Ωκεανογραφίας & Αλιείας 637

Εισαγωγή στις ΤΠΕ ΙΙ Γιάννης Βρέλλης ΠΤΔΕ-Πανεπιστήμιο Ιωαννίνων. World Wide Web. Παγκόσμιος Ιστός

1. ΕΙΣΑΓΩΓΗ 2. ΠΕΡΙΓΡΑΦΗ

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Προγραμματισμός στην πλευρά του εξυπηρετητή: Τεχνολογία Servlet

Transcript:

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 8 η Διάλεξη: Προγραμματισμός στην πλευρά του εξυπηρετητή: Τεχνολογία Java Server Pages (JSP) Δρ. Απόστολος Γκάμας Λέκτορας (407/80) gkamas@uop.gr Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 1

Προγραμματισμός στην πλευρά του εξυπηρετητή (server side) Πελάτης Web Browser Τελική HTML σελίδα Διαδίκτυο Τελική HTML σελίδα Επικοινωνία HTTP Εξυπηρετητής Web Server Επεξεργασία php κώδικα και παραγωγή HTML σελίδας Επεξεργασία Δεδοì ένων Βάση Δεδομένων Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 2 Χρήστης

Τι είναι Servlet Java Server Pages (JSP) H τεχνολογία JavaServer Pages (JSP) είναι server-side τεχνολογία Βασίζεται στην τεχνολογία των Java Servlets Η κύρια διαφορά τους είναι πως ενώ ο κώδικας των Servlets είναι δοµηµένος σε κλάσεις που γράφονται, µεταγλωττίζονται και εκτελούνται όπως κάθε κλάση Java, οι JSP σελίδες αποτελούνται από στατικό HTML και δυναµικά παραγόµενο HTML περιεχόµενο τα οποία είναι διαχωρισµένα µε ειδικά tags Με απλά λόγια, η JSP τοποθετεί Java κώδικα µέσα σε HTML έγγραφα Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 3

Τι είναι Servlet Java Server Pages (JSP) Μία JSP σελίδα έχει extension *.jsp (αυτό πληροφορεί τον web server ότι η σελίδα πρέπει να φορτωθεί από έναν JSP container για να διερµηνεύσει και να εκτελέσει τον JSP κώδικα Ο JSP container διερµηνεύει τα JSP tags και τα scriptlets, παράγει το δυναµικό περιεχόµενο και το στέλνει πίσω στον client ως HTML ή XML σελίδα. <HTML> <BODY> Hello! The time is now <%= new java.util.date() %> </BODY> </HTML> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 4

JSP σε µια 3-tier αρχιτεκτονική Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 5

Προϋποθέσεις για να τρέξουμε JSP κώδικα Ο web server πρέπει να υποστηρίζει την τεχνολογία JSP ηλαδή πρέπει να υπάρχει εγκατεστημένος ένας JSP container ή application server, π.χ. Blazix, ServletExec, JRun, WebLogic,Tomcat, WebSphere, Για την εκτέλεση JSP κώδικα στον NetBeans χρησιμοποιείται ο ενσωματωμένος application server Tomcat Ta JSP αρχεία, όπως και οι Java Servlets κλάσεις, πρέπει να είναι τοποθετημένα σε ένα συγκεκριμένο directory του application server Οι application servers μεταγλωττίζουν τον JSP κώδικα µόνο την πρώτη φορά που εκτελείται (φυσικά, κάθε φορά που τροποποιείται, ο JSP κώδικας επαναμεταγλωττίζεται) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 6

JSP: Πως δουλεύει Βήματα που λαμβάνουν χώρα όποτε ζητείται μια JSP σελίδα: 1. Ο web browser κάνει ένα request µέσω Internet για μια *.jsp σελίδα 2. Το request φτάνει στον Web server 3. Ο Web server αναγνωρίζει ότι ζητήθηκε ένα ειδικό αρχείο (*.jsp), και περνάει το JSP αρχείο στο JSP Servlet Engine (application server) 4. Αν το JSP αρχείο ζητείται για πρώτη φορά, τότε διερμηνεύεται (parsing), διαφορετικά η διαδικασία προχωράει στο βήμα 7 Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 7

JSP: Πως δουλεύει 5. Στη συνέχεια παράγεται ένας Servlet από το JSP αρχείο. Όλο το στατικό HTML που περιέχεται στη JSP σελίδα μετατρέπεται σε out.println εντολές 6. Ο πηγαίος κώδικας του Servlet που προκύπτει μεταγλωττίζεται σε ένα class αρχείο 7. Ο Servlet εκτελείται, καλούνται οι κατάλληλες μέθοδοί 8. O HTML κώδικας που προκύπτει από το Servlet output στέλνεται στον web browser 9. O HTML κώδικας εμφανίζεται στον web browser του χρήστη Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 8

JSP: Πως δουλεύει Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 9

Hello World µε JSP <html> <head> <title>hello World JSP page</title> </head> <body> <h3>αυτή είναι απλή HTML. Ακολουθεί δυναµικά παραγόµενη HTML από JSP...</h3> <h4>hello World!!! The date is: <%= java.text.dateformat.getdatetimeinstance(java.text.dat eformat.medium, java.text.dateformat.medium).format(new java.util.date())%> </h4> </body> </html> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 10

JSP tags Στην JSP χρησιμοποιούνται 5 κύρια tags (ετικέτες): Declaration tag Expression tag Directive tag Scriptlet tag Action tag Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 11

JSP tags: Expression tag ( <%= %>) Αυτή η ετικέτα επιτρέπει την ενσωμάτωση Java εκφράσεων (expressions) Τo ερωτηματικό ( ; ) ΕΝ προστίθεται στο τέλος του κώδικα που τοποθετείται ανάμεσα σ αυτές τις ετικέτες <HTML> <BODY> <%= new java.util.date() %> </BODY> </HTML> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 12

JSP tags: Declaration tag ( <%! %> ) Χρησιμοποιείται για δηλώσεις μεταβλητών και μεθόδων Οι δηλώσεις τοποθετούνται ανάμεσα στις ετικέτες <%! και %> Ο κώδικας που τοποθετείται ανάμεσα σε αυτές τις ετικέτες πρέπει να τελειώνει µε ερωτηματικό ( ; ) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 13

JSP tags: Declaration tag ( <%! %> ) <HTML> <BODY> <%! java.util.date d = new java.util.date(); String getdate() { return "The current date is: " + d; } %> <h2> <%= getdate() %> </h2> </BODY> </HTML> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 14

JSP tags: Directive tag ( <%@ directive... %>) Μια JSP directive (οδηγία) παρέχει ειδικές πληροφορίες σχετικά µε τη JSP σελίδα στην JSP Engine Υπάρχουν τρεις κυρίως τύποι οδηγιών (directives): page - πληροφορίες για την επεξεργασία της JSP σελίδας include - αρχεία που θα χρησιμοποιηθούν από αυτή τη JSP σελίδα Tag library - βιβλιοθήκη ετικετών (tag library) που θα χρησιμοποιηθεί από αυτή τη JSP σελίδα Οι οδηγίες (directives) δεν παράγουν κάποιο ορατό αποτέλεσμα όταν φορτώνεται η σελίδα, αλλά αλλάζουν τον τρόπο που η JSP Engine επεξεργάζεται τη σελίδα Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 15

JSP tags: Directive tag: page directive Αυτή η οδηγία (directive) έχει 11 προαιρετικά ορίσματα που παρέχουν στη JSP Engine ειδικές πληροφορίες για την επεξεργασία της JSP σελίδας, π.χ.: Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 16

JSP tags: Directive tag: page directive <html> <head> <title>hello World JSP page</title> </head> <body> <h3>αυτή είναι απλή HTML. Ακολουθεί δυναµικά παραγόµενη HTML από JSP...</h3> <%@ page contenttype="text/html;charset=windows-1253" language="java" import="java.util.*, java.text.*"%> <h4>hello World!!! The date is: <%= DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM).format(new Date())%> </h4> </body> </html> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 17

JSP tags: Directive tag: include directive Επιτρέπει να συμπεριλάβουμε τα περιεχόμενα μιας HTML ή JSP σελίδας μέσα σε μια JSP σελίδα Συνήθως χρησιμοποιείται για να συμπεριλάβουμε navigation bars, headers και footers που είναι κοινά σε πολλές σελίδες ενός site. <%@ include file = myfolder/privacy.html" %> <%@ include file = "navigation.jsp" %> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 18

JSP tags: Directive tag: tag lib directive Eνα tag lib είναι μια συλλογή από προσαρμοσμένες ετικέτες (custom tags) που μπορούν να χρησιμοποιηθούν σε αυτή τη JSP σελίδα <%@ taglib uri = "tag library URI" prefix = "tag Prefix" %> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 19

JSP tags: Scriptlet tag ( <%... %> ) Java κώδικας τοποθετηµένος ανάµεσα στις ετικέτες <% και %> ονοµάζεται Scriptlet Αυτός ο κώδικας έχει πρόσβαση σε οποιαδήποτε µεταβλητή, µέθοδο ή java bean έχει προηγούµενα οριστεί Ο κώδικας που τοποθετείται ανάµεσα σε αυτές τις ετικέτες πρέπει να ακολουθείται από ερωτηµατικό ( ; ) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 20

JSP tags: Scriptlet tag ( <%... %> ) <%! int n = 5; %> <table border=2> <% for ( int i = 0; i < n; i++ ) { %> <tr> <td>number</td> <td><%= i+1 %></td> </tr> <% } %> </table> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 21

Scriplets που παράγουν HTML Ta scriptlet δεν παράγουν από μόνα τους HTML. Για να παράγει HTML, ένα scriptlet πρέπει να χρησιμοποιήσει τη μεταβλητή out (της κλάσης javax.servlet.jsp.jspwriter), η οποία δεν χρειάζεται να δηλωθεί. <HTML> <BODY> <% java.util.date d = new java.util.date(); %> Hello! The time is now <% out.println(d.tostring(); %> </BODY> </HTML> Άλλες χρήσιμες μεταβλητές request: επιτρέπει πρόσβαση σε πληροφορίες σχετικά µε τη συνομιλία από τον browser στο server, π.χ. διάβασμα παραμέτρων που στάλθηκαν από HTML φόρμα στη JSP σελίδα response: επιτρέπει πρόσβαση σε πληροφορίες σχετικά µε τη συνομιλία από το server στον browser Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 22

JSP tags: Action tag Υπάρχουν τρεις κύριοι ρόλοι για τα action tags : 1. Ενεργοποίηση της χρήσης των server side Javabeans 2. Μεταφορά ελέγχου ανάμεσα σε σελίδες 3. Υποστήριξη applets ανεξαρτήτως browser Javabeans: Το Javabean είναι μια ειδική κατηγορία κλάσης (class) µε ένα αριθμό μεθόδων. Μια JSP page μπορεί να καλέσει αυτές τις μεθόδους και να αφήσει τον περισσότερο κώδικα ενσωματωμένο σε αυτά τα Javabeans. Για παράδειγμα, αν θέλατε να έχετε μια feedback form που αυτοματοποιεί την αποστολή e-mail. Έχοντας μια JSP σελίδα µε μια φόρμα, όταν ο επισκέπτης πατάει το submit button που στέλνει δεδομένα σε ένα Javabean που αναλαμβάνει να στείλει το e- mail. Με αυτόν τρόπο, η JSP σελίδα δεν θα έχει κώδικα που αναλαμβάνει την αποστολή e-mails (JavaMail API) και το ίδιο Javabean μπορεί να χρησιμοποιηθεί και από άλλη σελίδα (επανάχρηση κώδικα) Για να χρησιμοποιήσουµε ένα Javabean σε µια JSP σελίδα, ακολουθείται η σύνταξη: <jsp : usebean id=".." scope = "application" class = "com..." /> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 23

ιάβασμα παραμέτρων HTML φόρμας από JSP σελίδα (Ι) <html> <head> <title>hello form...</title> </head> <body> <form method="post" action="helloname.jsp"> <P>Give me your name: <input type="text" name="name"/> </P> <P> <input type="submit" value="submit"/> </P> </form> </body> </html> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 24

ιάβασμα παραμέτρων HTML φόρμας από JSP σελίδα (ΙΙ) <% String name = request.getparameter("name"); out.println("<h1>hello " + name + "</h1>"); %> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 25

Άλλες λειτουργίες Χρήση Session (δες παράδειγμα) Χρήση cookies (δες παράδειγμα) Αλληλεπίδραση με βάση δεδομένων (δες παράδειγμα) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 26

Εφαρμογές JavaServer Pages Η τεχνολογία είναι ευρέως χρησιμοποιούµενη στο χώρο του www Μπορούμε εύκολα να διασυνδέσουμε JSP σελίδες σε βάσεις δεδομένων για να επιτύχουμε ανάκτηση, προσθήκη ή ενημέρωση δεδομένων, µε την ίδια περίπου μέθοδο που διασυνδέσαμε Java Servlets µε Β Χρήση JSP για έλεγχο και παρακολούθηση συνόδων (sessions tracking & control) Χρήση JSP για αυτοματοποιηµένη αποστολή e-mail, αρκεί να γνωρίζουμε τον SMTP server του δικτύου όπου εκτελείται η JSP σελίδα Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 27

Συμπεράσματα: JSP vs Servlets Η JSP δεν προσφέρει κάτι που δεν μπορούμε να επιτύχουμε µε Java Servlets, άλλωστε βασίζεται στην τεχνολογία των Servlets H διαφορά έγκειται κυρίως στη διαφορετική προσέγγιση, καθώς στους Servlets ή παραγωγή στατικού ή δυναμικού HTML είναι ενσωματωμένη σε κώδικα Java Αντίθετα, στη JSP το στατικό HTML περιεχόμενο είναι ξεκάθαρα διαχωρισμένο από το δυναμικό HTML που παράγεται από JSP (Java) κώδικα. Αυτό συνιστά έναν πιο «καθαρό» σχεδιασμό καθώς διαχωρίζει τον απλό HTML κώδικα από την προγραμματιστική λογική και αφήνει τον web designer να επικεντρωθεί στην παρουσίαση και μορφοποίηση του περιεχομένου (HTML) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 28

Πλεονεκτήματα των JSPs Είναι ευκολότερη και ταχύτερη η ανάπτυξή τους, κυρίως για μικρά projects Με τους servlets είναι δυσκολότερη η παραγωγή στατικού HTML κώδικα, χρειάζονται πολλές out.println εντολές, π.χ. out.println("<body>"); out.println("<h2>hello " + user + "</h2>"); ίνουν έμφαση στην μορφή και παρουσίαση της σελίδας (HTML) και αφήνουν την προγραμματιστική λογική σε Java κώδικα Αν έχουμε έτοιμο JSP κώδικα, μπορεί εύκολα να ενσωματωθεί σε HTML σελίδες από web authors που δε γνωρίζουν προγραμματισµό Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 29

Μειονεκτήματα των JSPs Εύρεση και διόρθωση λαθών (debugging) είναι πολύπλοκη Μεγάλες ποσότητες ενσωματωμένου κώδικα σε scriplets μπορεί να οδηγήσουν σε σελίδες που είναι δύσκολο να συντηρηθούν Η απόδοση JSPs είναι κατώτερη των servlets (το compilation 200 JSPs θα δημιουργήσει 200 servlets). Αν χρησιμοποιούσαµε τεχνολογία Servlets θα μπορούσαμε να ενσωματώσουμε περισσότερη λειτουργικότητα σε λιγότερους servlets. Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 30

JSP Tutorials /Servlet Tutorials Java http://java.sun.com/j2se/1.5.0/docs/api/index.html JSP http://www.jsptut.com/index.html http://www.caucho.com/resin-3.0/jsp/tutorial/index.xtp http://www.roseindia.net/jsp/jsp.shtml Servlet: http://www.apl.jhu.edu/~hall/java/servlet-tutorial/ http://www.novocode.com/doc/servlet-essentials/ http://www.iti.cs.tu-bs.de/doc/jsdk2.0/doc/servlet_tutorial.html http://www.cs.bham.ac.uk/~tmw/servlet_tutorial/index.shtml Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 31