30
Τεχνολογίες Παγκόσμιου Ιστού 2η διάλεξη

2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

Embed Size (px)

DESCRIPTION

Introduction to HTTP, JSP

Citation preview

Page 1: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

Τεχνολογίες Παγκόσμιου Ιστού2η διάλεξη

Page 2: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

HTMLsXHTML

πλησίασε την XML

XHTML5

σεβασμός στους χρήστς και τους browsers

απλούστερες HTML προδιαγραφές

νέα σημασιαλογικά στοιχεία (header, footer, …)

πλούσια πολυμεσικά

Υποστήριξη WebApp (geolocation, …)

Page 3: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

Hypertext Transport Protocol (HTTP)Σύνολο εντολών που στέλνει browser και κατανοεί ο (web) server

Εντολές HTTP (εσωτερικές του browser):

GET filename : download

POST filename : send a web form response

PUT filename : upload

HEAD, OPTIONS, DELETE, CONNECT, …

Ctrl-Alt-Del

Page 4: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

HTTP• HTTP method

• Web Page (URL)

• Παράμετροι

• status

• content type

• content

Page 5: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

Response - HTML in HTTP

Page 6: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

Request

Page 7: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

Παραδείγματα

Page 8: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

Παράδειγμα

Page 9: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

POST & GETGET - περιορισμένο πλήθος χαρακτήρων.

GET - τα αποσταλόμενα δεδομένα επισυνάπτονται στο URL.

Δεν μπορείς να κάνεις bookmark μια φόρμα αν χρησιμοποιείς POST και όχι GET.

Αν η διαδικασία είναι idempotent, τότε GET.

Page 10: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

Ανατομία ενός GET request

Παράμετροι

Page 11: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

Ανατομία ενός HTTP POST

request

Δεδομένα

Page 12: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

Ανατομία μιας

HTTP response

Page 13: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
Page 14: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

URI

Page 15: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

Ports

Ένας 16-bit αριθμός που that που προσδιορίζει ΄ένα συγκεκριμένο πρόγραμμα σε μια μηχανή server.

0-1023 για τους sys-admins

Page 16: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού
Page 17: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

Apache file

system

Page 18: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

Στατικό και δυναμικό περιεχόμενο

Page 19: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

Δυναμικό περιεχόμενοΔυναμικές σελίδες δεν προυπάρχουν

Πρέπει να κατασκευασθεί εξ αρχής η HTML απόκριση

λαμβάνουμε το αίτημα

καλούμε την σχετική εφαρμογή γα να δημιουργησει το HTML

το στέλνουμε πίσω στον browser

Page 20: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

Common Gateway Interface (CGI)μια στάνταρτ μέθοδο των web servers για να αναθέσουνε την δημιουργία των δυναμικών σελίδων σε εκτελέσιμα αρχεία

τα αρχεία αυτά είναι γνωστά σαν CGI scripts

είναι προγράμματα που συνηθως είναι

αυτόνομα

γραμμένα σε μια scripting γλώσσα

Page 21: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

Παράδειγμα

Page 22: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

CGI (non-Java) προσέγγιση

C, PERL, python, PHP

Page 23: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

Το πρόβλημα με τα CGIΛογική

Η Java είναι η γλώσσα του ίντερνετ

Αποδοτικότητα

Light-weight

Εύκολη διαχείριση νημάτων

Παραγωγικότητα

J2EE

Page 24: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

Servlet: prepareΔημιούργησε το δενδροειδές directory

Γράψε τα δύο αρχεία

Page 25: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

Servlet: Συγγραφή

του servlet.java

import'javax.servlet.*;'

import'javax.servlet.h3p.*;'

import'java.io.*;'

'

public'class'Ch1Servlet'extends'H3pServlet'{''

''''''''public'void'doGet(H3pServletRequest'request,''

'H3pServletResponse'response)''

'throws'IOExcepHon'{''

'

''''''''PrintWriter'out'='response.getWriter();''

'''''''''java.uHl.Date'today'='new'java.uHl.Date();''

''''''''out.println(“<html>'“'+''

'''''''''''''''''''''''''''''“<body>”'+''

'''''''''''''''''''''''''''''“<h1'align=center>HF\’s'Chapter1'Servlet</h1>”'+''

'''''''''''''''''''''''''''''“<br>”'+'today'+'“</body>”'+'“</html>”);''

'''''''''}'

}'

Page 26: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

Servlet: Συγγραφή

του Deployment

Descriptor (DD) web.xml

<?xml&version=”1.0”&encoding=”ISO9885191”&?>&<web9app&xmlns=”hBp://java.sun.com/xml/ns/j2ee”&&&&&&&&&&&xmlns:xsi=”hBp://www.w3.org/2001/XMLSchema9instance”&&&&&&&&&&&xsi:schemaLocaMon=”hBp://java.sun.com/xml/ns/j2ee&&&&&&&&&&&hBp://java.sun.com/xml/ns/j2ee/web9app_2_4.xsd”&&&&&&&&&&&version=”2.4”>&&&&&&&&&&<servlet>&&&&&&&&&&&&&&&<servlet9name>Servlet</servlet9name>&&&&&&&&&&&&&&&<servlet9class>Ch1Servlet</servlet9class>&&&&&&&&&&</servlet>&&&&&&&&&&&<servlet9mapping>&&&&&&&&&&&&&&&<servlet9name>Servlet</servlet9name>&&&&&&&&&&&&&&&<url9paBern>/Serv1</url9paBern>&&&&&&&&&&</servlet9mapping>&</web9app>&

Page 27: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

Servlet: deploymentΑποθήκευσε τα αρχεία στο κατάλληλο μέρος

Page 28: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

Servlet: Deploy and use

Μετέφρασε

Μετέφερε στο σύστημα αρχείων του Tomcat

Ξεκίνα τον Tomcat

Κτύπα τον συνδεσμο στον browser σου

Page 29: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

Όμως!Ενσωμάτωση HTML σαν string μέσα σε java (println)?

Γιατί όχι ενσωμάτωση Java μέσα σε HTML (ή XML)?

Page 30: 2η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού

JSP

Apps developer Web page developer