PDF de programación - Java servlets

Imágen de pdf Java servlets

Java servletsgráfica de visualizaciones

Publicado el 31 de Julio del 2017
636 visualizaciones desde el 31 de Julio del 2017
223,6 KB
21 paginas
Creado hace 16a (10/05/2007)
Java Servlets

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y Computación

Universidad Complutense de Madrid

10 de mayo de 2007

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid

Java Servlets

¿Qué es un programa?

En pascal:

pro gram h o l a M u n d o ( input , output );
var

nombre : String ;

begin

readLn ( nombre );
wri teLn ( ’ Hola ’ , nombre );

end .

1
2
3
4
5
6
7

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid

Java Servlets

Programainputoutput Un servlet

input −→ HttpServletRequest
output −→ HttpServletResponse

import javax . ser vlet .*;
import javax . ser vlet . http .*;
import java . io .*;
public class H o l a M u n d o ext ends H t t p S e r v l e t {

public final void doGet ( final H t t p S e r v l e t R e q u e s t request ,

final H t t p S e r v l e t R e s p o n s e r e s p o n s e )

throws S e r v l e t E x c e p t i o n , I O E x c e p t i o n {
S e r v l e t O u t p u t S t r e a m out = r e s p o n s e . g e t O u t p u t S t r e a m ();
String nombre = req uest . g e t P a r a m t e r ( " nombre " );
r e s p o n s e . s e t C o n t e n t T y p e ( " text / html " );
if ( nombre == null ) {

out . pri ntln ( " <p > Hola Mundo </ p > " );

} else {

out . pri ntln ( " <p > Hola " + nombre + " </p > " );

}

}

}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid

Java Servlets

Servidor de aplicaciones: Tomcat

Los severlet son controlados por servidor de aplicaciones.
Tomcat: http://jakarta.apache.org/tomcat/index.html
Cuando una petición llega

1 Si el objeto de la clase no ha sido creado

1 Carga la clase
2 Crea el objeto
3 Invoca el método init.
2 Llama al método service.

Si debe eliminar al servlet llama al método destroy.

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid

Java Servlets

Interfaz javax.servlet.Servlet

void destroy()

void init(ServletConfig config)

void service(ServletRequest req, ServletResponse res)

Clase javax.servlet.http.HttpServlet

void doGet(HttpServletRequest req, HttpServletResponse resp)

void doPost(HttpServletRequest req, HttpServletResponse resp)

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid

Java Servlets

Servlet contador I

public class C o n t a d o r ext ends H t t p S e r v l e t {

pri vate int c o n t a d o r ;

/*

*/

M e t o d o s para g u a r d a r el c o n t a d o r a n t e s de
f i n a l i z a r y l e e r l o al e m p e z a r . . . . . . . . . . . .

pri vate s y n c h r o n i z e d int i n c r e m e n t a () {

c o n t a d o r ++;
return c o n t a d o r ;

}

public final void doGet ( final H t t p S e r v l e t R e q u e s t request ,

final H t t p S e r v l e t R e s p o n s e r e s p o n s e )

throws S e r v l e t E x c e p t i o n , I O E x c e p t i o n {
int n = i n c r e m e n t a ();
S e r v l e t O u t p u t S t r e a m out = r e s p o n s e . g e t O u t p u t S t r e a m ();
r e s p o n s e . s e t C o n t e n t T y p e ( " text / html " );
out . pri ntln ( " <p > Numero de acc esos : " + n + " </p > " );

}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid

Java Servlets

Servlet contador II

pri vate S e r v l e t C o n f i g config ;
pri vate final static String s t r F i c h e r o = " fic hero " ;

public final void init ( final S e r v l e t C o n f i g c )

throws S e r v l e t E x c e p t i o n {
config = c ;
S e r v l e t C o n t e x t ctx = config . g e t S e r v l e t C o n t e x t ();
String fic hero = config . g e t I n i t P a r a m e t e r ( s t r F i c h e r o );
try {

B u f f e r e d R e a d e r f

= new B u f f e r e d R e a d e r (

new F i l e R e a d e r ( ctx . g e t R e a l P a t h ( fic hero )));

c o n t a d o r = Int eger . p a r s e I n t ( f . r e a d L i n e ());
f . close ();

} catch ( F i l e N o t F o u n d E x c e p t i o n e ) {

c o n t a d o r = 0;

} catch ( I O E x c e p t i o n e ) {

c o n t a d o r = 0;

}

}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid

Java Servlets

Servlet contador III

public final void des troy () {

S e r v l e t C o n t e x t ctx = config . g e t S e r v l e t C o n t e x t ();
String fic hero = config . g e t I n i t P a r a m e t e r ( s t r F i c h e r o );
try {

F i l e W r i t e r f = new F i l e W r i t e r ( ctx . g e t R e a l P a t h ( fic hero ));
f . write ( c o n t a d o r + " \ n " );
f . close ();

} catch ( I O E x c e p t i o n e ) {

throw new R u n t i m e E x c e p t i o n ( e . g e t L o c a l i z e d M e s s a g e ());

}

}

1
2
3
4
5
6
7
8
9
10
11

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid

Java Servlets

Aplicación Hola I

T O M C A T _ H O M E / web apps / hola

| - - c a b e c e r a . html
‘-- pie . html

| - - build . xml
| - - c o n t a d o r . txt
| - - html
|
|
| - - prj . el
| - - src
|
|
|
|
|
|
|
|
‘-- WEB - INF

| - - C o n t a d o r . java
| - - Debug . java
| - - E n v o l t o r i o H T M L . java
| - - Fecha . java
| - - H o l a M u n d o . java
| - - I n c l u y e F i c h e r o . java
| - - Login . java
‘-- Sesion . java

| - - cla sses
|
|
|
|
|
|
|
|
| - - lib

| - - C o n t a d o r . class
| - - Debug . class
| - - E n v o l t o r i o H T M L . class
| - - Fecha . class
| - - H o l a M u n d o . class
| - - I n c l u y e F i c h e r o . class
| - - Login . class
‘-- Sesion . class

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid

Java Servlets

Aplicación Hola II

‘-- web . xml

Fichero web.xml

<? xml ve rsio n = " 1.0 " e n c o d i n g = " utf -8 " ? >
< web - app >

< display - name > S e r v l e t s de prueba </ display - name >
< serv let >

< servlet - name > hola </ servlet - name >
< servlet - class > H o l a M u n d o </ servlet - class >

</ se rvle t >
< serv let >

< servlet - name > c o n t a d o r </ servlet - name >
< servlet - class > C o n t a d o r </ servlet - class >
< init - param >

< param - name > fic hero </ param - name >
< param - value > c o n t a d o r . txt </ param - value >

</ init - param >

</ se rvle t >
< servlet - mapp ing >

< servlet - name > inv oker </ servlet - name >
< url - patt ern >/ http /* </ url - pa tter n >

</ servlet - ma ppin g >
< servlet - mapp ing >

< servlet - name > inv oker </ servlet - name >

28

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid

Java Servlets

Aplicación Hola III

< url - patt ern >/ ser vlet /* </ url - pa tter n >

</ servlet - ma ppin g >

</ web - app >

22
23
24

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid

Java Servlets

Sesiones

Memoria entre diferentes invocaciones a servlets.

H t t p S e s s i o n sesion = req uest . g e t S e s s i o n ();
String nombre =( String ) sesion . g e t A t t r i b u t e ( s t r N o m b r e );
Int eger n u m A c c e s o s = ( Int eger ) sesion . g e t A t t r i b u t e ( s t r N u m A c c e s o s );
if ( n u m A c c e s o s == null ) {

n u m A c c e s o s = new Int eger (0);

}
sesion . s e t A t t r i b u t e ( strNumAccesos , new Int eger ( n u m A c c e s o s . i n t V a l u e ()+ 1));
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
if ( b o r r o S e s i o n != null ) {

c o n t e n i d o . append ( s e s i o n B o r r a d a ( r e s p o n s e ));
sesion . r e m o v e A t t r i b u t e ( s t r N u m A c c e s o s );
sesion . r e m o v e A t t r i b u t e ( s t r N o m b r e );

}

1
2
3
4
5
6
7
8
9
10
11
12
13
14

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid

Java Servlets

Sesiones

Reescritura de URL

Cookies

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid

Java Servlets

Sesiones

Toda URL debe ser codificada. Funciona tanto si tiene como si no
tiene las cookies habilitadas.

pri vate S t r i n g B u f f e r

f o r m u l a r i o C o n t i n u a ( H t t p S e r v l e t R e s p o n s e r e s p o n s e ) {

S t r i n g B u f f e r sb = new S t r i n g B u f f e r ();
sb . append ( " < form type =\" get \" action =\" " )
/* Se c o d i f i c a la URL , para que sea

i n d e p e n d i e n t e de las c o o k i e s */

<p > < button name =\" c o n t i n u a r \" type =\" submit \" > " );

sb . append ( r e s p o n s e . e n c o d e U R L ( config . g e t S e r v l e t N a m e ()));
sb . append ( " \" >\ n " );
sb . append ( "
sb . append ( " Continuar </ button > </ p >\ n " );
sb . append ( "
sb . append ( s t r B o r r a S e s i o n );
sb . append ( " \" type =\" submit \" > Borrar sesion </ button > </ p >\ n " );
sb . append ( " </ form >\ n " );
return sb ;

<p > < button name =\" " );

}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid

Java Servlets

Atributos

Se pueden guardar atributos

public void s e t A t t r i b u t e ( String name , Object o );
public void r e m o v e A t t r i b u t e ( String name );
public Object g e t A t t r i b u t e ( String name );
public E n u m e r a t i o n g e t A t t r i b u t e N a m e s ();

1
2
3
4

ServletRequest Atributos que sólo viven en una petición
  • Links de descarga
http://lwp-l.com/pdf5894

Comentarios de: Java servlets (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad