jsp_curs 6____

Upload: florin-oprea

Post on 18-Jan-2016

8 views

Category:

Documents


0 download

DESCRIPTION

Curs de JSP(Java Server Pages)

TRANSCRIPT

  • 1

    JSP(Java Server Pages)

    Java Server Pages(JSP) reprezinta una dintre cele mai puternice tehnologii

    Web si este usor de utilizat.JSP combina HTML si XML cu servleturile si

    tehnologia JavaBeans pentru a crea un mediu destul de productive pentru

    dezvoltarea de situri Web independente de platform si de o inalta performanata.

    JSP prezinta o solutie Java pentru programarea pe partea de server,fiind o

    solutie la CGI-urile clasice.JSP integreaza numeroase tehnologii Java cum ar fi

    servleturile,JavaBeans si JDBC.

    JSP extinde limbajul HTML oferind posibilitatea inserarii de secvente de cod

    Java prin intermediul unor marcaje speciale.Programatorul are posibilitatea de a

    crea noi marcaje si component JavaBeans cu semnificatiile indicate de

    acesta.Astfel,se pot crea noi facilitate pentru cei care se ocupa de partea de Web

    design.

    In acelasi timp, JSP este o extensie a servleturilor.In loc sa scriem cod Java

    care sa genereze pagini Web,se creeaza pagini Web care vor contine elemente

    dinamice. Atunci cand se primeste prima cerere pentru o pagina JSP,se creeaza un

    servlet din respective pagina si acesta este executat;apoi rezultatul este trimis ca

    raspuns la cererea primita.

    Un avantaj important al JSP-urilor fata de servleturi este faptul ca se separa

    continutul HTML staticde cel dynamic.In cazul servleturilor,orice modificare

    minora asupra designului paginii Web implica recompilarea respectivului

    servlet.La JSP-uri,partea de generare a continutului dinamic este pastrata separate

    de cea static prin utilizarea componentelor JavaBeans externe.Orice modificare a

    partii statice va fii vizibila celor ce acceseaza respectivul JSP,intrucat la primirea

    cererii se recompileaza automat si foarte repede pagina JSP,apoi se executa si

    rezultatul este trimis ca raspuns la cererea primita.

    Odata scrisa o pagina JSP poate si stocata pe orice server Web (care trebuie sa

    aiba support pentru JSP), oricare ar fi platform pe care se afla acesta;pagina JSP nu

    va suferii modificari.

    Elemente JSP

    Comentarii

    Exista trei tipuri de comentarii care se pot utiliza in paginile JSP:

    Comentarii HTML;

    Comentarii JSP Directive

  • 2

    Directivele ofera posibilitatea de adaugare de informatii aditionale si pentru

    descrierea atributelor paginii. De exemplu,directivele sunt utilizate pentru

    importare pachetelor Java,includerea fisierelor si pentru accesarea bibliotecilor de

    marcaje definite de utilizator.

    Sintaza generala pentru directive este:

    sau utilizand spatiul de nume jsp:

    Directiva page

    Directiva page poate fi utilizata pentru a importa pachete si clase Java,la fel ca

    instructiunea import(tot din Java). Se observa ca directiva page stabileste

    informatiile privitoare la pagina JSP Directiva page poate avea atributele ca jos:

    Extends, Import, Session etc.

    Directiva include

    Directiva include conduce la includerea unui fisier in pagina JSP.Acest lucru

    este util atunci cand dorim sa cream un site unitar in care fiecare pagina sa contina

    acelasi meniu de navigare.Respectivul meniu va fi inclus intr-un fisier separat,iar

    acesta va fi inserat prin intermediul directivei include in cadrul tuturor

    paginilor.Daca respectivul fisier contine elemente JSP,acestea vor fi si ele

    considerate in momentul transformarii paginii JSP in servlet.Directiva include are

    un singur atribut(file) care indica numele si locul unde se gaseste respectivul fisier.

    Directiva tablib

    Crearea bibliotecilor de marcaje proprii este una dintre cele mai importante

    facilitati pe care le ofera tehnologia JSP.Noi capabilitati ale paginilor JSP se pot

    incapsula prin intermediul marcajelor particuarizate.Acestea pot fi utilizate de catre

    persoanele care nu au cunostinte de programare.Astfel se separa partea de interfata

    ed partea de functionalitate.

    Directiva taglib include o bliblioteca de marcaje definite de

    programatori.Aceasta contine doua atribute:uri,care stabileste fisierul ce contine

    definitia marcajelor,siprefix care fixeaza un prefix unic pentru respectiva biblioteca

    de marcaje,pentru a nu aparea conflicte la utilizarea unui acelasi marcaj care este

    definit in doua biblioteci distincte.Prefixul se utilizeaza ca si spatiile de nume

    XML.

    Declaratii

    In partea de declaratii se pot declara date si functii membre pentru

    utilizarea in cadrul paginilor JSP.Acestea vor face parte din srvletul generat din

    pagina JSP.

  • 3

    Syntax For JSP Declaratives

    While programming in jsp we have to know about the declaratives of jsp.

    Here the declaratives is explained for jsp files. For the beginners they should know

    how to declare the variables in jsp program. In this article its explained

    In jsp program mainly three declaratives are used to embed the jsp code into

    html.

    The three declaratives are:

    Syntax of JSP Declaratives is:

    JSP Declaratives begins with with .We can embed any

    amount of java code in the JSP Declaratives. Variables and functions defined in the

    declaratives are class level and can be used anywhere in the JSP page.

    Examplu: test_jsp.jsp

    Numarul este:

  • 4

    This program illustrates how to initialize the variables in jsp program. And the

    program is shows how to embed the jsp in html program. Here both ,

    ,

    Declaratiile se pot insera astfel:

    sau prin:

    declaratii

    Initializarea si terminarea unui JSP

    Inainte de executie se va apela metoda jspInit() pentru realiza de initializari

    suplimentare,iar la terminarea executiei unui JSP se va apela metoda jspDestroy()

    pentru eliberarea unor resurse.Nici una dintre metodele nu poseda

    parametri,ambele sunt publice si returneaza void.

    Obiecte implicite

    Exista numeroase obiecte implicite definite de arhitectura JSP.Acestea fac

    posibil accesul la mediul din momentul executiei.Se poate intampla de multe ori sa

    nu avem nevoie in mod direct de obiectele predefinite.Lista obiectelor predefinite

    si o scurta decriere a acestora se gasesc in tabelul urmator:

    Out Javax.servlet.jsp.JspWriter Este utilizat in scripleturi sau

    trimis ca parametru altor

    metode

    Request Javax.servlet.ServletRequest Ofera toate informatiile cu

    privire la cererea primita sau la

    navigator

    Response Javax.sevlet.ServletResponse Ofera acces la fluxul de iesire a

    servletului

    Session Java.servlet.http.HttpSession Este utilizat atunci cand se

    doreste o pseudoconexiune intre

    client si serverul Web

  • 5

    pageContext Javax.servlet.jsp.Page Este util pentru accesarea

    mediului JSP si a componetelor

    JavaBeans

    Config Javax.servlet.ServletConfig Ofera informatii despre

    proprietatile servletului.

    Page Java.lang.Object Contine o referinta la pagian

    JSP

    Exception Java.lang.Throwable Este continuta doar de paginile

    de eroare si contine informatii

    privind eroarea aparuta.

    Expresii

    O expresie JSP este o expresie Java,evaluata la momentul executiei,rezultatul

    fiind convertit la tipul String si scris in fluxul de iesire.Sintaxa generala este:

    respectiv

    expresie_Java

    Actiuni

    Actiunile sunt marcaje particulare predefinite.Acestea nu au corespondent un

    marcaj specific JSP ci sunt numia elemente XML cu spatiul de nume jsp.Actiunile

    confera un nivel inalt de functionalitate fata de declaratii,expresii si scripleturi.

    Exista trei categorii de actiuni standard:

    cele utilizate pentru componente Bean;

    cele pentru controlul din momentul executiei ,cum ar fi redirectarea sau includerea;

    cele care ofera suport pentru plug-in-uri Java.

    Integrarea componentelor JavaBean

    Tehnologia JSP ofera o integralitate foaret buna a formularelor XHTML cu

    componentele JavaBean.Pentru utilizarea unei componente JavaBeean avem la

    dispozitie actiunile din tabelul de mai jos:

    Jsp:useBean Pregateste o componeneta JavaBean

    pentru a fi utilizata in pagina JSP

    Jsp:setProperty Seteaza una sau mai multe proprietati

  • 6

    pentru o componenta JavaBean

    Jsp:getProperty Intoarce valoarea unei proprietati a

    unei componente JavaBean sub forma

    unui String

    Actiunea jsp:useBean se poate scrie ca element de sine statator(fara continut):

    sau cu element de continut:

    Corp_pentru_creare

    Aceasta actiune duce la crearea unui obiect corespunzator componentei

    JavaBean si va avea numele nume.

    Atributul scope indica durata de viata a componentei.Acesta poate avea valorile

    din tabelul urmator:

    page Componenta este disponibila doar in pagina JSP curenta si va fi

    recreata la fiecare cerere

    request Componeta este disponibila pe tot parcursul cererii,inclusiv in

    paginile inserate sau redirectate

    session Componenta este disponibila pe tot parcursul sesiunii stabilite

    aplication Componenta va fi disponibila pentru toate sesiunile si isi va inceta

    existenta odata cu aplicatia Web

    Elementul specificare este destul de flexibil si ofera o varietate de optiuni care sunt

    prezentate in tabelul de mai jos:

    Class=numeClasa Se specifica clasa corespunzatoare

    componentei(nume clasa)

    Type=numeTip

    Class=numeClasa

    Se indica tipul care se va utiliza in

    pagina pentru componenta,care trebuie

    sa fie compatibil cu tipul clasei.Se

    indica si numele clasei.

    Type=numeTip

    beanName=numeComp

    Se indica tipul care se va utiliza in

    pagina pentru componenta,precum si

    numele componentei.Acesta trebuie sa

    fie furnizat prin intermediul unei

    expresii JSP data in forma JSP

    Type=numeTip Se stabileste tipul componentei,care va

  • 7

    fi utilizat in cadrul paginii JSP.

    Sintaxa actiunii jsp:setProperty este urmatoarea:

    Numele componentei este cel stabilit de atributul id al actiunii jsp:useBean.De

    exemplu,daca avem inserata o componenta JavaBean astfel:

    Atunci stabilirea(sau obtinerea unei proprietati) se realizeaza prin intermediul

    numelui componenta:

    Elementul extensie trebuie sa aiba urmatoarele forme:

    Actiunea jsp:getProperty este utilizata pentru obtinerea valorii unei

    proprietati.Aceasta are urmatoarea forma generala:

    In mod automat valoarea obtinuta este convertita la tipul string.

    Platforma J2EE

    J2EE este o platforma ce ofera posibilitatea de a executa aplicatii Java pe partea de

    server.

    Aplicatii web J2EE

    Orice aplicatie care ruleaza intr-un container Servlet se numeste

    aplicatie web J2EE. Containerul servlet implementeaza specificatiile Servlet si

    JSP. El ofera diferite puncte de intrare pentru rezolvarea unei cereri (request)

    HTTP initiata de un browser web. Exista trei puncte de intrare pentru un

    browser in aplicatiile web J2EE Servlet, JSP si Filter.

    Property=numeProp

    Param=numeParam

    Stabileste proprietatea specificata pentru parametrul

    indicat

    Property=numeProp

    Value=valoare

    Seteaza proprietatea specificata cu valoarea

    data.Valoarea trebuie sa fie o expresie Jsp care se

    evalueaza in momentul executiei.

    Aceasta trebuie sa fie in forma JSP(cu

    simbolurile

  • 8

    - Servletii se pot crea, extinzand clasa javax.servlet.http.HttpServlet si implementand metodele doGet()

    si doPost() ale acesteia.

    - JSP urile se pot crea simplu, creand un fisier text care contine etichete de markup JSP (JSP markup tags).

    - Filtrele se pot crea implementand interfata javax.servlet.Filter.

    Crearea unui proiect Web Application

  • 9

  • 10

  • 11

    The request object is an instance of a class that implements the

    javax.servlet.http.HttpServletRequest interface. It represents the request made by

    the client and makes the following methods available.

    getAttribute() returns the value of the specified request attribute name. The return

    value is an Object or subclass if the attribute is available to the invoking

    ServletRequest object or null if the attribute isn't available:

    public Object getAttribute(String name) getAttributeNames() returns an

    Enumeration containing the attribute names available to the invoking

    ServletRequest object:

    public java.util.Enumeration getAttributeNames()

    Atentie: Aplicatiileau fost grupate in fisierul index.html

    Exemple JSP

    Declarare variabile

  • 12

    request.getParameterValues

    request.getRemoteAddr

    Preluare date formular

    Exemplu jsp Math.random

    request.getParameterValues

    Exemplu cu switch

    Autentificare

    Exemplu sesiuni

    Exemplu 1 cu Beans

    Exemplu 2 cu Beans

    Exemplu 3 cu Beans

    Exemplu 1 ex_1.jsp

    Primul exemplu JSP!

    Today is weekend

    Today is not weekend

    Exemplu 2

    Fisierul main.html

  • 13

    Formular

    Operatii matematice

    Adunare

    Scadere

    Inmultire

    Nr1:

    Nr2 :

    Fisierul ex_a1.jsp

    mesaj cu valuare parametru a1 din formular

  • 14

    %>

    Rezultatul este:

    Numarul este mai mare ca 0.9>

    Numarul este mai mic ca 0.9>

    Incearca din nou

    Exemplu 4 ex_4.jsp

    Alege valoare

    Alege valoare:

    A1

  • 15

    A2

    A3

    A4

    A5

    Ati selectat:

    revenire

    Atentie:

    The request.getParameterValues() is used to retrieve all the values of the query

    parameter. The values are echoed back using an unordered list.

    Atentie: You can use the pre-defined variables, such as request, in the

    expressions. For examples:

    Exemplu 5 ex_5.jsp

  • 16

    case 1: out.println("It\'s Monday."); break;

    case 2: out.println("It\'s Tuesday."); break;

    case 3: out.println("It\'s Wednesday."); break;

    case 4: out.println("It\'s Thursday."); break;

    case 5: out.println("It\'s Friday.");

    break; default: out.println("It's Saturday."); } %>

    Data curenta:

    Exemplu 6

    Autentificare.html

    .culoare {background-color:#ff0000}

    autentificare

  • 17

    autentificare_.jsp

    LoginError.jsp

    An exception has occurred

  • 18

    Message:

    Mai inceara logarea

    Exemplu 7 autilizarea sesiunilor

    sesiuni.html

    Definit cursul

    Sesiuni.jsp

    Continue

  • 19

    NextPage.jsp">

    Ati ales

    A JavaBean is a specially constructed Java class written in the Java and coded

    according to the JavaBeans API specifications.

    Following are the unique characteristics that distinguish a JavaBean from other

    Java classes:

    It provides a default, no-argument constructor.

    It should be serializable and implement the Serializable interface.

    It may have a number of properties which can be read or written.

    It may have a number of "getter" and "setter" methods for the properties.

    JavaBeans Properties:

    A JavaBean property is a named attribute that can be accessed by the user of the

    object. The attribute can be of any Java data type, including classes that you define.

    A JavaBean property may be read, write, read only, or write only. JavaBean

    properties are accessed through two methods in the JavaBean's implementation

    class:

    Method Description

    getPropertyName()

    For example, if property name is firstName, your method

    name would be getFirstName() to read that property. This

    method is called accessor.

    setPropertyName()

    For example, if property name is firstName, your method

    name would be setFirstName() to write that property.

    This method is called mutator.

    A read-only attribute will have only a getPropertyName() method, and a write-

    only attribute will have only a setPropertyName() method.

    Accessing JavaBeans:

    The useBean action declares a JavaBean for use in a JSP. Once declared, the bean

    becomes a scripting variable that can be accessed by both scripting elements and

  • 20

    other custom tags used in the JSP. The full syntax for the useBean tag is as

    follows:

    Here values for the scope attribute could be page, request, session or application

    based on your requirement. The value of the id attribute may be any value as a

    long as it is a unique name among other useBean declarations in the same JSP.

    Following example shows its simple usage:

    useBean Example

    The date/time is

    This would produce following result:

    The date/time is Thu Sep 30 11:18:11 GST 2010

    Accessing JavaBeans Properties:

    Along with , you can use action to access get

    methods and action to access set methods. Here is the full

    syntax:

    ...........

    The name attribute references the id of a JavaBean previously introduced to the

    JSP by the useBean action. The property attribute is the name of the get or set

    methods that should be invoked. Following is a simple example to access the data

    using above syntax:

    Student_beans.jsp

    get and set properties Example

  • 21

    Student First Name:

    Student Last Name:

    revenire

    Let us make StudentBeans.class available in CLASSPATH and try to access above

    JSP. This would produce following result:

    Student First Name: Zara

    Student Last Name: Ali

    public class StudentBeans implements java.io.Serializable

    {

    private String firstName = null;

    private String lastName = null;

    public StudentBeans() {

    }

    public String getFirstName(){

    return firstName;

    }

    public String getLastName(){

    return lastName;

    }

    public void setFirstName(String firstName){

    this.firstName = firstName;

    }

    public void setLastName(String lastName){

  • 22

    this.lastName = lastName;

    }

    }

    Exemplu 2 cu beans

    Introduceti numele

    Adresa email

    Varsta

    saveName.jsp

    Nume:

    Email:

    Varsta:

    Continue

    UserData.java

    public class UserData {

    String username;

    String email;

    int age;

  • 23

    public void setUsername( String value )

    {

    username = value;

    }

    public void setEmail( String value )

    {

    email = value;

    }

    public String getUsername() { return username; }

    public String getEmail() { return email; }

    }