Tehnologii Java Frasinaru

download Tehnologii Java Frasinaru

of 60

Transcript of Tehnologii Java Frasinaru

Tehnologii JavaCurs Cristian [email protected]

Facultatea de Informatica Universitatea Al. I. Cuza Iasi

Java Server Pages

Tehnologii Java p.1/5

CuprinsCe sunt paginile JSP ? JSP vs. alte tehnologii Ciclul de viaa al unei pagini t Sintaxa JSP Obiecte implicite Tratarea cererilor concurente Tratarea excepiilor t Aciuni standard t Modele de acces

Tehnologii Java p.2/5

Introducere

Tehnologii Java p.3/5

ContextulNivelul de prezentare din cadrul nivelului Web: interfaa graca cu utilizatorul t sufera schimbari frecvente (legate de design) Abordarea cu servleturi: dicil de dezvoltat si ntreinut t t t lipsa exibilitaii si modularitaii lipsa separarii rolurilor

Tehnologii Java p.4/5

Exemplu simplu: hello.jsp Exemplu de pagina JSP

  • Ora curenta:
  • Serverul folosit:
  • ID-ul sesiunii:
  • Parametrul nume primit din formular: Hello ${param.nume} !

Tehnologii Java p.5/5

View Helper

View: text formatat Helper: bean-uri, taguri proprii, servleturi, etc.

Tehnologii Java p.6/5

View Helper

Tehnologii Java p.7/5

Ce sunt paginile JSP ?Modalitate pentru generarea de coninut dinamic pe t Web. Se bazeaza pe tehnologia servleturilor Strategia Java EE pentru generarea prezentarii (View) Sunt formate din tipar (componenta statica - HTML, XML) taguri JSP secvene de cod (scriptleturi) t

Tehnologii Java p.8/5

JSP vs. servleturi Orice pagina JSP poate rescrisa sub forma unui servlet JSP ofera nsa unele avantaje: Metoda declarativa, orientata pe prezentare de creare a servleturilor Separarea coninutului static (HTML) de cel dinamic t Sunt mai comod de scris Nu trebuie compilate explicit Sunt mai u or de instalat pe server s

Tehnologii Java p.9/5

Mai folosim servleturi ?DA Servleturile vor implementa componente care extind functionalitatea serverului Web autenticare control conectare la baze de date, etc. Paginile JSP vor folosite pentru generarea de coninut dinamic specic aplicaiei t t

Tehnologii Java p.10/5

Arhitectura JSP

Tehnologii Java p.11/5

Ciclul de viaa al unei pagini t1. Translaia t Pagina JSP este transformata ntr-un servlet. hello.jsp hello jsp.java 2. Compilarea Servletul este compilat. hello jsp.java hello jsp.class 3. Execuia t Cererile catre pagina JSP sunt direcionate catre t servlet, care va da raspunsul.

Tehnologii Java p.12/5

Tehnologii Java p.13/5

Translaia t Orice pagina JSP este transformata ntr-un servlet printr-un procedeu numit translatie. Translaia se t s desfa oara automat: la prima solicitare venita catre pagina JSP respectiva daca pagina JSP a fost modicata Servletul generat extinde clasa HttpJspBase si deneste metodele jspInit, jspService, jspDestroy.

Tehnologii Java p.14/5

Structura clasei generatepackage org.apache.jsp; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.jsp.*; public final class hello_jsp extends org.apache.jasper.runtime.HttpJspBase implements org.apache.jasper.runtime.JspSourceDependent { ... public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException { ... out.write(""); ... out.write(""); } }

Tehnologii Java p.15/5

Sintaxa JSP

Tehnologii Java p.16/5

Elementele constitutiveTiparul Reprezinta coninutul static al documentului, t comentarii, etc. Directive Instruciuni care specica cum trebuie construita t pagina, ce alte documente trebuie incluse, etc. Elemente scriptice: declaratii, expresii, scriptleturi Includ cod Java n pagina JSP. Aciuni t Furnizeaza unei pagini JSP funcionalitate de nivel t nalt.

Tehnologii Java p.17/5

Sintaxa elementelorElement Comentarii vizibile Comentarii ascunse Declaraii t Expresii Scriptleturi Directive Aciuni t Sintaxa % Sintaxa XML

Tehnologii Java p.18/5

Tiparul Reprezinta tot ce nu este element JSP dintr-o pagina JSP. Va aparea nealterat in orice document generat. Uzual, tiparul reprezinta coninutul static al t documentului. Pagina JSP de mai jos este formata doar din tipar. Hello world !

Tehnologii Java p.19/5

ComentariiComentarii HTML Comentarii proprii JSP Comentarii Java incluse n elementele scriptice ale paginii Hello world ! // comentariu Java /* urmeaza un bloc de instructiuni Java sau nu... */

Tehnologii Java p.20/5

Directive Furnizeaza informaii despre pagina respectiva. t Controleaza crearea servletului. Cele mai utilizate directive sunt: page: importul unor pachete Java include: includerea altor documente taglib: accesarea unor librarii de taguri proprii. Sintaxa este:

sau

Tehnologii Java p.21/5

Directiva page Furnizeaza informaii despre crearea paginii: t Atribut import session autoFlush isThreadSafe info errorPage isErrorPage contentType Valoare pachete importate true / false true / false true / false text URL-ul paginii de eroare true / false codicare MIME Implicit java.lang.*, javax.servlet.http.*, javax.servlet.*, javax.servlet.jsp.* true true true nimic nimic false text/html

Tehnologii Java p.22/5

Directiva includeAre ca efect includerea (inserarea) continutului unui document specicat n rezultatul nal ce va transmis solicitantului. s Includerea se va face la poziia la care se gase te t directiva.

Tehnologii Java p.23/5

Exemple de directive ... ... ...

Tehnologii Java p.24/5

Declaraii tPermit denirea de variabile/metode globale n cadrul unei pagini JSP. Acestea vor variabile/metode membre ale clasei servletului generat. Sintaxa este:

sau declaratii Java

Tehnologii Java p.25/5

Exemple de declaraii t public static final int MAX = 100; int v[] = new int[MAX]; java.util.ArrayList a; public String salut(String nume) { return "Bine ai venit" + nume; } public void init() { for(int i=0; i

Tehnologii Java p.27/5

ScriptleturiSunt secvene de cod Java care contribuie la realizarea t unui ux logic. Sintaxa este: t sau bloc Java Scriptleturile pot combinate cu coninutul static al t paginii JSP:

Tehnologii Java p.34/5

Tratarea cererilor concurente Implicit, metoda jspService este executata ntr-un r de execuie propriu. t Putem nsa impune ca servletul sa implementeze interfaa SingleThreadModel: t Sincronizarea accesului la atribute

Tehnologii Java p.35/5

Tratarea excepiilor t Redirectarea excepiilor catre o pagina JSP anume se t face prin directiva: Denirea unei pagini pentru tratarea excepiilor: t A aparut exceptia: !

Tehnologii Java p.36/5

Folosirea sesiunilor Implicit, toate paginile JSP participa la o sesiune HTTP. Obiectul corespunzator de tip HttpSession este session. Intr-o sesiune se pot memora date sub forma cheie-valoare.

Daca nu dorim ca o pagina JSP sa participe la o sesiune:

Tehnologii Java p.37/5

Tehnologii Java p.38/5

Aciuni standard t

Tehnologii Java p.39/5

Ce sunt aciunile ? t Aciunile permit denirea de taguri corespunzatoare t t unei anumite funcionalitai. Sunt de doua tipuri: t Standard - predenite Proprii - create de utilizator Scop Minimizarea utilizarii scriptlet-urilor Crearea de componente reutilizabile Dezvoltarea mai ecienta a aplicaiilor t

Tehnologii Java p.40/5

Aciunile standard tInstanierea unor componente JavaBean t Comunicarea cu resursele serverului Web

Tehnologii Java p.41/5

Componente JavaBeansComponentele JavaBeans sunt: componente de sine statatoare, reutilizabile, independente de platforma pot folosite pe orice platforma de programare sunt conforme cu o serie de specicaii t denesc un model pentru crearea de componente software. Un container reprezinta un context in care componentele pot grupate si cu care acestea pot interactiona.

Tehnologii Java p.42/5

Componente JavaBeansSunt descrise de clasa publice Constructorul fara argumente trebuie sa existe si sa e public Fiecare proprietate gestionata trebuie sa conina t metode de accesare de tipul getProprietate setProprietate In arhitectura JSP, sunt folosite pentru stocarea de informaii la un anumit nivel de vizibilitate. t

Tehnologii Java p.43/5

Caracteristici JavaBeanst Proprietai - pentru individualizare si programare Introspecie - pentru analizarea componentei de t catre container Personalizare - pentru modicarea aspectului si functionalitatii Evenimente - pentru comunicare t Persistena - salvare / restaurare proprietai t

Tehnologii Java p.44/5

Crearea componentelor JavaBean O componenta JavaBean va descrisa prin: ID-ul sau Clasa din care face parte Domeniul de vizibilitate

//Cod Java de initializare user.setNume("Ion"); ...

Tehnologii Java p.45/5

Folosirea componentelor JavaBeanUn Bean va folosit prin setarea / obtinerea proprietatilor sale.

Tehnologii Java p.46/5

Bean-uri pentru formularet Corespondena ntre numele proprietailor si numele t cmpurilor din formular. Procesul de redirectare formular-bean este realizat prin mecanismul instrospeciei. t Maparea poate si explicita:

Tehnologii Java p.47/5

Exemplu: login.jsp

Tehnologii Java p.48/5

Exemplu: formular.html Autentificare Nume:
Parola:

Tehnologii Java p.49/5

Exemplu: clasa Utilizatorpackage test; public class Utilizator { private String nume; private String parola; public String getNume() { return nume; } public void setNume(String nume) { this.nume = nume; } public String getParola() { return parola; } public void setParola(String parola) { this.parola = parola; } }

Tehnologii Java p.50/5

Exemplu: conrmare.jsp Confirmare Salut, !

Tehnologii Java p.51/5

Exemplu: refuz.jsp Eroare Parola este invalida!

Tehnologii Java p.52/5

Redirectarea cererilor: forward

Tehnologii Java p.53/5

Inlantuirea cererilor

Tehnologii Java p.54/5

Inlantuirea cererilor (cont.)

public void doPost (HttpServletRequest req, HttpServletResponse res) { FormBean f = (FormBean) req.getAttribute("fBean"); f.setName("..."); // actualizam starea componentei Bean getServletContext().getRequestDispatcher("Result.jsp") .forward(req, res); }

Tehnologii Java p.55/5

Includerea altor rezultate: include

directiva include = aciunea include t

Tehnologii Java p.56/5

Modele de acces

Tehnologii Java p.57/5

Modelul simplu

Tehnologii Java p.58/5

Model - View - Controller

Tehnologii Java p.59/5