Sie sind auf Seite 1von 6

Captulo 1

Patrn MVC
-
Review
Objetivos:
Al finalizar la sesin, el alumno podr:
.
Aplicar el patrn de arquitectura Modelo-Vista-Controlador.
.
Analizar y aplicar el modelo Vista Controlador con JSPs, Servlets, JavaBeans y
DAO.
Temas:
1. Elementos JSPs (View)
2. Servlets (Controller)
3. DAOs y JavaBeans (Model).
CIBERTEC
Java Application Developer - Java Web y Acceso a Datos
1. Elementos JSPs (View)
View o Vista es la capa que maneja el formato en el que son presentados
aquellos datos representados por la capa del Modelo. La cual genera una
representacin visual del Modelo y muestra los datos al usuario. Estas interfaces
visuales son las intermediarias entre los usuarios y la aplicacin; por ejemplo, si se
quiere guardar en la base de datos el nombre de un alumno, entonces habr en
el modelo, una representacin lgica de la operacin representada en una pantalla
por un formulario que pedir al usuario el ingreso de dicho nombre de alumno
para llevarlo a la base de datos.
En la vista existen elementos como las pginas, HTML, JSPs, librera de tags y
otros; los que son afectados por documentos de estilos para el control de la
presentacin y cdigo
javascript para la validacin de campos de datos.
A continuacin, se muestra como ejemplo de vista, el siguiente formulario:
Irtsr:r'ireirilt tlc Nuevr .\ltrlnno
CIBERTEC
Java Application Developer - Java Web y Acceso a Datos 3
2. Servlets (Controller)
Controller o controlador es la capa que proporciona un significado a las rdenes
del usuario, actuando sobre los datos representados por la capa de Modelo. Cuando
se realiza algn cambio, entra en accin, bien sea por cambios en la informacin
del Modelo o por modificaciones de la Vista. Asimismo, Interacta con el Modelo, a
travs de una referencia al propio Modelo.
El siguiente ejemplo muestra el controlador ServletAlumno, visto en laboratorio
de este tema:
tl
t2
r3
L4
t5
I6
r'1
t8
19
zn
2I
22
23
24
25
26
2'
28
29
30
3I
33
34
35
\j
i
publj. class ServletIrmo extends Hctpservlet {
prtrtectEd void processRequest(HtCpServIeERequesC requesE,
HLtpServIeEResponse response )
thrDrs ServleEException, IOExceptj-on {
String accicn = requesC. get,Parffieter (:':i,::i:j::.:rlr") j
if (accion == nr-Il) {
requesE.getsessonl).segAtEribute{"ii:i:i:",'i.i.rii:::i::.:i,: ii!,::'i::i: i:iri,:.::r,::,i:i);
) eI:e if (acclon.compareTo( .:"') == O) {
. .
: i j i::.:::r:r,::,,:-'il ,;irli_
'
:i: :i:.r'::
'::
r"\: I
::: i:: i. ,:::l
String nombre = requEsL. getParffiEter ( :i.. i : '::'rJ ;
, '
:::
: !::::: a.:i,::::::,:: ::,.:::ii:
EeanA.lffino ba = new EeanAlmn
O i
, .' i :: : ,:r. r:.:: :i: :::ri I :\:r i
'
,4i, , i':::
:;i':
ba. setNonbre ( nonbre) ;
, :
i
.t':
: ::,.:: i: .:ti:: .,. .. :: :. a:.,.
Stri-ng m=g = DaoAlmno.fnser (ha),;
-i,' i :::: ::,,,:t::r::, ,::: :r:rt::,
j.f
(nsg == nul-I) {
requesL.geLSession() .setAttribute (f':r:ri,:r'J,
",:i::,'::
!::\r:::::.,:ir: rrfi i:r ,:r::1.:l'fiJ;
request. geLSESsronO .sEtAttrlbute (i':r::::'ii", msg) i
)
CIBERTEC
Java Application Developer - Java Web y Acceso a Datos 4
36
JT
38
39
40
4I
42
43
44
45
46
47
48
49
50
5I
52
53
54
55
56
57
J
60
61
o4
OJ
64
65
66
67
r02
T
) else if (accj.on.compareTo
== 0l {
String idAlunno = reques. getParameter (":i.r*11::r*n*r'!
;
BeanAlllnno ba = neu BeanAlumno(l;
ba. setld.0,luffno (id.LumnoI
;
Ssring msg = DaoAlumno.dei.eelbal i
if (nsg
== nulll t
request,gecses8ionll.set.Etrihuel"r*$",
"Cr*r:*cri.*n ex:i.t$$Rl"li
) else {
requesE. gegsession(I .setAEEribute ("isgtf. msg ;
)
) else if (accion.compareTo(siF$ry == Ol {
Scring nonibre = request.getParaneter (r'rlnliiltrRtf)
;
String idIwnno = requesc. getParameEer (ti,LJlr$rrr'3f'l
;
BeanAlunno ba = ne Beanlurno(l;
ba, secldAlumno ( idlwnno) ;
ba, setNoibre (nonbre
;
Strinq msg = DaoAlumno. updde(bal ;
if (nsq
== nulll {
requesE.getsessionll .setAtEribute
f
r|r:"$$'r. '*trlRr$.{}i.,:.r
*xi.t*aa:f.l ;
) else {
requesE . getsess ion (
I
. seEAtgr ibute (
"*s
r'.
msg ;
)
)
response. EenClRedirect
f "nl*r*d'j*.
j$)"
;
)
CIBERTEC
Java Application Developer - Java Web y Acceso a Datos 5
3. DAOs y JavaBeans (Model)
Model o Modelo es la capa que representa los datos de la aplicacin. Adems, es
el que maneja los datos y controla todas sus transformaciones. Sin embargo, no
tiene conocimiento especfico de los Controladores o de las Vistas, porque contiene
solamente referencias de ellos. Es el sistema el que tiene asignado la
responsabilidad de mantener enlaces entre el Modelo, las Vistas, y la notificacin a
las Vistas, cuando cambia el Modelo.
Algunos ejemplos del modelo son BeanAlumno y DaoAlumno, con los siguientes
cdigos fuente:
CIBERTEC
Java Application Developer - lava Web y Acceso a Datos 6
public class BeanAJ-rEro implemencs SeriaIzahIe {
privEE SEring i'l-iLurr:',:,;
private Strinq u*$*i$i
pubLic BeanAi-r!|ro (I
{
)
6
I
9
t0
ll
t)
IJ
I4
I5
I6
I?
l8
I9
ZB
?L
J
24
?5
26
27
28
6
7
I
10
II
IZ
t3
L4
IJ
I6
I?
I8
L'
20
21
23
24
J
26
28
|:i
-i
T
rI
i:J
i
L
T
T
T
i
I
I
I
t-
f:l
Y
i
i
IT
I
I
I
public String getldAl-rtrro (
return i.1"\ililfirlti ;
)
puhli-c void setfdA-Irnlro (SEring idAlrt|no)
this. }d"\l .)iit$
= idAlumno;
)
puhlic St.ring getil|re
o
recurn iia,'riliI*i
)
publi void setl{rbre (String nombrel {
this.nt:di::R = nonbre;
)
)
public clas3 llaoAl-In|Ero {
Fuf'lic
st.atiE String .irr.ae.r(BeanAIumno ba) {
StEing sql =
rl.:.:!ljI:;i'i
i.i'l'il,:i i:ri.r"fi:1i::J iriijrrilrrij "
+
.,\r-i":.,ijs):i
getNonbrefl +,.,i,.;
rctrrrh
qtrl
"Drrflqdl1.
)
public aEaEic SErj.ng ilelete(BeanAluno bal {
qrr.inn qnl
=
f.i,iii"iiiii
ii:L,i.,l: i:rl:.i::.i:i:if :iiiii:.:ili:.ii:i".::.::l:i:r.::::* +
ba. get IdAlumno (
i
rtrrF
qdl
;D"f>lanll.
'
publc EEaEic String update(Bean,lumno ba) {
String sql = 'iiili"\iT.i:
,iij.rii*ri,::,*
lili:::,::,R*:,:: i..:,,"'fr + ba,geENorihre(l +
"' "
+
*
\iii:i iii:ri :i. i:i i...i ri::iirii::,,.
"
+ ba . gret I dA lrmno (
I ;
rEf irrh (al prrrfaadll.
)
)
CIBERTEC