PDF de programación - Java Servlets

Imágen de pdf Java Servlets

Java Servletsgráfica de visualizaciones

Publicado el 25 de Abril del 2017
811 visualizaciones desde el 25 de Abril del 2017
140,4 KB
13 paginas
Creado hace 15a (22/04/2008)
Java Servlets

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y Computación

Universidad Complutense de Madrid

22 de abril de 2008

Luis Fernando Llana Díaz

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

Java Servlets

¿Qué es un programa?

input

Programa

output

En pascal:

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

nombre : String ;

begin

readLn ( nombre );
writeLn ( ’ 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

Un servlet

input −→ HttpServletRequest.
output −→ HttpServletResponse (X)HTML, XML.

import javax . servlet .*;
import javax . servlet . http .*;
import java . io .*;
public class H o l a M u n d o extends 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 = request . 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 ; charset = UTF -8 " );
if ( nombre == null ) {

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

} else {

out . println ( " <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 extends H t t p S e r v l e t {

private 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 . . . . . . . . . . . .

private 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 ; charset = UTF -8 " );
out . println ( " <p > Numero de accesos : " + 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

private S e r v l e t C o n f i g config ;
private final static String s t r F i c h e r o = " fichero " ;

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 fichero = 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 ( fichero )));

c o n t a d o r = Integer . 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 destroy () {

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 fichero = 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 ( fichero ));
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 / webapps / 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

| - - classes
|
|
|
|
|
|
|
|
| - - 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 version = " 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 >
< servlet >

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

</ servlet >
< servlet >

< 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 > fichero </ param - name >
< param - value > c o n t a d o r . txt </ param - value >

</ init - param >

</ servlet >
< servlet - mapping >

< servlet - name > invoker </ servlet - name >
< url - pattern >/ http /* </ url - pattern >

</ servlet - mapping >
< servlet - mapping >

< servlet - name > invoker </ 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 - pattern >/ servlet /* </ url - pattern >

</ servlet - mapping >

</ 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 = request . 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 );
Integer n u m A c c e s o s = ( Integer ) 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 Integer (0);

}
sesion . s e t A t t r i b u t e ( strNumAccesos , new Integer ( 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.

private 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 peti
  • Links de descarga
http://lwp-l.com/pdf3209

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