Documente Academic
Documente Profesional
Documente Cultură
Laborator 9
29.11.2011
1Ca tehnologie, CGI era caracterizat prin dependena de platform i lips de scalabilitate,
eliminate prin Java Servlets.
1
Aplicaii Integrate pentru ntreprinderi Semestrul de Toamn 2011
Laborator 9
Pagina web afiat atunci cnd ruleaz serverul web Apache Tomcat
2 O cerere este transmis n momentul n care n browser este precizat o pagin disponibil la
adresa unde este instalat serverul web.
3 Versiunea 7.0.23 care suport specificaia 3.0 pentru tehnologia Java Servlet poate fi descrcat
2
Aplicaii Integrate pentru ntreprinderi Semestrul de Toamn 2011
Laborator 9
5 Opional, poate fi specificat un parametru load-on-startup care, atunci cnd are valoare pozitiv
indic ordinea n care sunt ncrcate clasele respectiv, las la latitudinea container-ului care
conine servlet-ul s ncarce clasele atunci cnd este necesar, dac este dat o valoare negativ.
6 n exemplul de fa exist i un director sources n care se gsesc sursele claselor i care conine
fiiere batch deploy.bat respectiv deploy.sh care compileaz clasele, le mut n directorul classes
i reiniializeaz serverul web Apache Tomcat astfel nct modificrile realizate la nivelul claselor
s fie vizibile n cadrul aplicaiei.
7 Totui, n aceast situaie, ncrcarea driver-ului trebuie s se fac explicit (prin apelarea
3
Aplicaii Integrate pentru ntreprinderi Semestrul de Toamn 2011
Laborator 9
4
Aplicaii Integrate pentru ntreprinderi Semestrul de Toamn 2011
Laborator 9
Exemplu
identificatorul comenzii (un numr de ordine) n timp ce pozitie specific un produs din cadrul
comenzii respective (comanda este format din unul sau mai multe produse).
5
Aplicaii Integrate pentru ntreprinderi Semestrul de Toamn 2011
Laborator 9
...
...
while(parameters.hasMoreElements())
{
String parameter = (String)parameters.nextElement();
if (parameter.contains("..."))
values.add(request.getParameter(parameter)));
...
}
response.setContentType("text/html");
displayForm(pw);
pw.close();
}
6
Aplicaii Integrate pentru ntreprinderi Semestrul de Toamn 2011
Laborator 9
HttpServlet este o clas abstract prin care pot fi creai servlei HTTP care
s funcioneze n contextul unei aplicaii web.
public abstract class HttpServlet
extends GenericServlet implements java.io.Serializable
Orice clas derivat din HttpServlet trebuie s implementeze cel puin
una dintre metodele:
doGet, dac servlet-ul trateaz cereri HTTP GET;
doPost, dac servlet-ul trateaz cereri HTTP POST;
doPut, dac servlet-ul trateaz cereri HTTP PUT;
doDelete, dac servlet-ul trateaz cereri HTTP DELETE;
init i destroy10, pentru a gestiona resursele alocate n timpul n care
servlet-ul este n execuie;
getServletInfo, folosit de servlet pentru a oferi informaii despre el;
Nu este necesar implementarea metodei service (apelat atunci cnd
exist o instan a clasei Servlet), deoarece este definit n clasa abstract
HttpServlet, implementarea apelnd mai departe metoda responsabil de tipul
de cerere HTTP11.
Un servlet se gsete de regul pe un server capabil s ruleze mai multe
fire de execuie, astfel nct n condiiile unor cereri simultane, trebuie
sincronizat accesul la resurse partajate, cum ar fi date din memorie (variabile tip
instan sau clase) sau obiecte externe (fiiere, conexiuni la baze de date sau
conexiuni n reea).
10 n general, n metodele init i destroy sunt alocate i dezalocate resurse partajate cum ar fi
conexiunea la baza de date sau accesul la fiiere.
11 De asemenea, nu este necesar implementarea metodelor doOptions i doTrace.
12 Aceste metode sunt motenite din clasa ServletRequest.
7
Aplicaii Integrate pentru ntreprinderi Semestrul de Toamn 2011
Laborator 9
(contexul aplicaiei web n care ruleaz servlet-ul), calea ctre servlet (care indic componenta
care proceseaz cererea) precum i alte informaii. Acestea pot fi obinute apelnd metodele:
getContextPath, getServletPath i getPathInfo.
19 Pentru transmiterea de date de tip caracter se folosete un obiect PrinterWriter ntors de
8
Aplicaii Integrate pentru ntreprinderi Semestrul de Toamn 2011
Laborator 9
9
Aplicaii Integrate pentru ntreprinderi Semestrul de Toamn 2011
Laborator 9
while (values.hasMoreTokens())
columns.add(values.nextToken());
result += "<tr>";
result += "</tr>";
try
{
Statement statement =
connection.createStatement
(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet source = statement.executeQuery(query);
while (source.next())
{
result += "<tr>";
for (String column: columns)
result += "<td>"+source.getString(column)+"</td>";
result += "</tr>";
}
}
catch (Exception e) { e.printStackTrace(); }
result += "</table>";
return result;
}
...
}
21Spre diferen de protocolul FTP care este un protocol cu stri (clientul se conecteaz la server,
realizeaz operaiile pe baza conexiunii dup care se realizeaz deconectarea).
10
Aplicaii Integrate pentru ntreprinderi Semestrul de Toamn 2011
Laborator 9
11
Aplicaii Integrate pentru ntreprinderi Semestrul de Toamn 2011
Laborator 9
Activitate de Laborator
Bibliografie
[1] James Goodwill, Developing Java Servlets Web Applications with servlets
and JSP, 2nd Edition, SAMS, 2001
[2] Eric Jendrock, Ian Evans, Devika Gollapudi, Kim Haase, Chinmayee Srivathsa,
The Java EE 6 Tutorial, Basic Concepts, 4th Edition, Addison Wesley, 2011
[3] Java Servlets School of Electronic Engineering, Dublin City University,
http://wiki.eeng.dcu.ie/ee448/g2/850-EE.html
12