jsp_curs 6____
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; }
}