Logo Studenta

Introdução a Java para Web

¡Este material tiene más páginas!

Vista previa del material en texto

INTRODUCCIINTRODUCCIÓÓN A LAS N A LAS 
APLICACIONES WEB Y APLICACIONES WEB Y 
TECNOLOGTECNOLOGÍÍA JAVAA JAVA
Jaime FernJaime Fernáándezndez
Mayo 2006Mayo 2006
ÍÍndicendice
JavaJava
Aplicaciones Aplicaciones webweb
ServletsServlets –– JSPJSP
Servidores de aplicaciones Servidores de aplicaciones –– IDE`sIDE`s
EjemploEjemplo
JavaJava
HistoriaHistoria
Lenguaje orientado a objetos creado por Sun Lenguaje orientado a objetos creado por Sun 
MicrosystemsMicrosystems
•• EncapsulaciEncapsulacióónn –– ocultacion de datos y metodosocultacion de datos y metodos
•• HerenciaHerencia
•• Polimorfismo Polimorfismo –– circulo.areacirculo.area() , cuadrado.area()() , cuadrado.area()
ÉÉxito alcanzado gracias a:xito alcanzado gracias a:
•• Internet: aplicaciones Internet: aplicaciones webweb
•• ““IndependenciaIndependencia”” del del S.OS.O. y plataforma. y plataforma
•• MarketingMarketing
Plataforma JavaPlataforma Java
CaracterCaracteríísticassticas
El cEl cóódigo Java se estructura en clasesdigo Java se estructura en clases
Las clases se estructuran a su vez en paquetesLas clases se estructuran a su vez en paquetes
Clase Clase ObjectObject de la que derivan las demde la que derivan las demááss
Los tipos bLos tipos báásicos no son clasessicos no son clases
voidvoid, , charchar, , booleanboolean, , bytebyte, , intint, , arrayarray
Herencia simple:Herencia simple:
las clases derivadas pueden alas clases derivadas pueden aññadir variables y (adir variables y (re)definirre)definir
mméétodostodos
Herencia mHerencia múúltiple: interfacesltiple: interfaces
no definen ninguno de sus mno definen ninguno de sus méétodos y todos y úúnicamente declaran nicamente declaran 
constantesconstantes
classclass Circulo Circulo extendsextends Figura Figura implementsimplements SuperficieSuperficie
CONTROL DE ACCESOCONTROL DE ACCESO
-- En variables y mEn variables y méétodos miembrotodos miembro
-- Tres tipos:Tres tipos:
-- publicpublic
-- protectedprotected
-- privateprivate
Modificador acceso Public Protected Private 
Misma clase 
Subclase [*] 
Clase externa en el 
mismo paquete 
Clase externa en 
otro paquete 
 
Concepto de Concepto de staticstatic
-- Afecta a variables y mAfecta a variables y méétodostodos
-- Hacen referencia a la clase (no al objeto)Hacen referencia a la clase (no al objeto)
-- Se inicializan justo antes de utilizar por Se inicializan justo antes de utilizar por 
primera vez la claseprimera vez la clase
-- Llamada:Llamada:
-- Clase.variableClase.variable ((objeto.variableobjeto.variable --> no aconsejado).> no aconsejado).
-- Clase.metodoClase.metodo()()
-- EjEj: : Math.cosMath.cos()()
Aplicaciones WebAplicaciones Web
Pila de protocolosPila de protocolos
HTTP
TCP
MAC - LLC
FÍSICO
IP
HTML
Modelo Cliente ServidorModelo Cliente Servidor
Cuando un usuario desea acceder a una Cuando un usuario desea acceder a una 
determinada pdeterminada páágina gina webweb, utiliza un , utiliza un 
navegadornavegador
Similarmente en el otro extremo se Similarmente en el otro extremo se 
precisa un servidorprecisa un servidor
HTTP
EvoluciEvolucióónn
Inicialmente, Inicialmente, úúnicamente informacinicamente informacióón n 
estestáática.tica.
HTML estHTML estááticotico
Aplicaciones Aplicaciones ““pobrespobres””
Posteriormente, ejecuciPosteriormente, ejecucióón de cn de cóódigo en digo en 
el lado del cliente:el lado del cliente:
HTML dinHTML dináámicomico: : JavaScriptJavaScript
Principalmente mejoras de interfazPrincipalmente mejoras de interfaz
EvoluciEvolucióón (II)n (II)
ProgramaciProgramacióón en el lado del servidor:n en el lado del servidor:
CGIsCGIs
PPááginas ASPginas ASP
PPááginas JSP, ginas JSP, servletsservlets
PHPPHP
J2EE, .NETJ2EE, .NET
Zope, Zope, RubyRuby onon RailsRails
……
EvoluciEvolucióón (III)n (III)
Web Web ServicesServices
Interoperabilidad entre servidores y clientesInteroperabilidad entre servidores y clientes
ProgramaciProgramacióón de procedimientos remotosn de procedimientos remotos
WSDLWSDL
SOAP, XMLSOAP, XML--RPCRPC
WSWS--SecuritySecurity
SERVLET SERVLET –– JSPJSP
TECNOLOGTECNOLOGÍÍA SERVLETA SERVLET
INTRODUCCIONINTRODUCCION
Son la respuesta de la tecnologSon la respuesta de la tecnologíía Java a a Java a 
la programacila programacióón CGI.n CGI.
Programas Java que se ejecutan en el Programas Java que se ejecutan en el 
SERVIDOR y construyen dinSERVIDOR y construyen dináámicamente micamente 
una puna páágina HTML gina HTML 
ServletsServlets –– CaracteristicasCaracteristicas
Tienen acceso a todas las Tienen acceso a todas las ApisApis de Java: JDBC, de Java: JDBC, 
JavaMailJavaMail, etc.., etc..
Permiten utilizar Permiten utilizar cookiescookies y seguimiento de y seguimiento de 
sesiones (sesiones (HttpSessionHttpSession), muy ), muy úútiles para el tiles para el 
desarrollo de aplicaciones Web. desarrollo de aplicaciones Web. 
Define mDefine méétodos para atender a cada una de las todos para atender a cada una de las 
peticiones de HTTP que se puedan dar: peticiones de HTTP que se puedan dar: doGetdoGet, , 
doPostdoPost, , doPutdoPut......
Dos ParDos Paráámetros importantes:metros importantes:
•• HttpServletRequestHttpServletRequest: : modelizamodeliza la peticila peticióón del usuario y n del usuario y 
contiene informacicontiene informacióón de la peticin de la peticióón HTTP realizadan HTTP realizada
•• HttpServletResponseHttpServletResponse: objeto que implementa la conexi: objeto que implementa la conexióón n 
de salida con el usuariode salida con el usuario
ServletsServlets –– Comparativa con CGIComparativa con CGI
EficienciaEficiencia: CGI arranca un proceso por cada : CGI arranca un proceso por cada 
llamada. En llamada. En ServletsServlets, por cada llamada se , por cada llamada se 
controla por un controla por un threadthread de Javade Java
PotenciaPotencia: Permite hacer f: Permite hacer fáácilmente cosas que cilmente cosas que 
son complicadas de hacer con CGI normalson complicadas de hacer con CGI normal
PortabilidadPortabilidad: Escrito en Java: Escrito en Java
FuncionalidadFuncionalidad: acceso a la : acceso a la ApiApi de Javade Java
BaratoBarato: a: aññadir soporte para adir soporte para servletsservlets en un en un 
servidor servidor webweb es gratuito o muy baratoes gratuito o muy barato
ServletsServlets -- FuncionamientoFuncionamiento
cliente servidor
servlet
pagina.html
ServletsServlets -- EjemploEjemplo
http://http://miservidormiservidor:8080/:8080/HelloWorld?HelloWorld?nombrenombre=I=Iññakiaki
ServletServlet que escribe cque escribe cóódigo HTMLdigo HTML
publicpublic classclass HelloWorldHelloWorld extendsextends HttpServletHttpServlet { { 
publicpublic voidvoid doGet(HttpServletRequestdoGet(HttpServletRequest requestrequest, , 
HttpServletResponseHttpServletResponse response) response) throwsthrows ServletExceptionServletException, , 
IOExceptionIOException {{
response.setContentTyperesponse.setContentType("("texttext//htmlhtml"); "); 
StringString nomnom = = request.getParameterrequest.getParameter((““nombrenombre””););
PrintWriterPrintWriter out = out = response.getWriterresponse.getWriter(); (); 
out.printlnout.println(( "<HTML>"<HTML>\\nn" + " + 
"<HEAD><TITLE>"<HEAD><TITLE>HelloHello WWorldorld</TITLE></HEAD></TITLE></HEAD>\\nn" + " + 
"<BODY>"<BODY>\\nn" + " + 
"<H1>"<H1>HelloHello World, + nom + World, + nom + </H1></H1>\\nn" + " + 
"</BODY>"</BODY>++
</HTML>" ); </HTML>" ); 
}}
}}
TecnologTecnologíía JSP a JSP –– IntroduccionIntroduccion
Es un fichero de texto con etiquetas HTML Es un fichero de texto con etiquetas HTML 
y cy cóódigo java embebidodigo java embebido
Se compilan automSe compilan automááticamente segticamente segúún se n se 
necesitan: se convierte en un necesitan: se convierte en un servletservlet
Desde un JSP: uso de Desde un JSP: uso de JavaBeansJavaBeans, uso de , uso de 
JDBC. Cualquier clase de JavaJDBC. Cualquier clase de Java
JSP JSP -- EjemploEjemplo
<%@ <%@ pagepage import=import=““ java.util.*java.util.*”” %>%>
<html><html>
<<headhead>><<titletitle>Ejemplo >Ejemplo de de JSP</JSP</titletitle>>
</</headhead>>
<<bodybody>>
<% Date date = <% Date date = newnew Date();Date();
StringString hoy = hoy = DateFormat.getDateInstanceDateFormat.getDateInstance().().format(dformat(d);%>);%>
<h1> Hola, <<h1> Hola, <%request.getParameter%request.getParameter((““nombrenombre””)%></h2>)%></h2>
<<brbr>>
<h2>Hoy es : <h2>Hoy es : <%=<%= hoy %> </h2>hoy %> </h2>
</</bodybody>>
</html> </html> 
servletservlet
fichero jsp
compilación
JSP JSP vsvs ServletServlet
•• ServletsServlets: Java con HTML embebido: Java con HTML embebido
•• JSPsJSPs: HTML con Java embebido: HTML con Java embebido
Semejanzas:Semejanzas:
JSP son una extensiJSP son una extensióón de n de ServletsServlets. No aporta . No aporta 
funcionalidades nuevasfuncionalidades nuevas
Un JSP compilado es un Un JSP compilado es un ServletServlet
Misma funciMisma funcióón: construir contenido dinn: construir contenido dináámicomico
Diferencias:Diferencias:
JSP separa mJSP separa máás claramente el dises claramente el diseñño de la lo de la lóógicagica
MMáás sencillo modificar cs sencillo modificar cóódigo HTML que miles de digo HTML que miles de 
sentencias sentencias printlnprintln
CONTROLCONTROL
JSP JSP –– SERVLET: SERVLET: 
FUNCIONAMIENTO GENERALFUNCIONAMIENTO GENERAL
cliente servidor
servlet
jsp
MODELO
VISTA
IDEIDE´́SS -- SERVIDORESSERVIDORES
IDEIDE´́ss
Alternativa a la lAlternativa a la líínea de comandosnea de comandos
IntegraciIntegracióón de herramientas:n de herramientas:
CompilaciCompilacióónn
DepuraciDepuracióón (necesitan el SDK)n (necesitan el SDK)
AntAnt, CVS, CVS……
Modulares: ampliables mediante Modulares: ampliables mediante pluginsplugins
Ayuda a la programaciAyuda a la programacióónn
IDEIDE´́ss
Eclipse:Eclipse:
OpenOpen SourceSource, impulsado por IBM, impulsado por IBM
metameta--IDE: sirve para muchas cosasIDE: sirve para muchas cosas
SWT: sustituye a AWT y SwingSWT: sustituye a AWT y Swing
NetBeansNetBeans::
OpenOpen SourceSource, desarrollado por Sun, desarrollado por Sun
GeneraciGeneracióón automn automáática de plantillastica de plantillas
Java 100% estJava 100% estáándarndar
Otros IDEOtros IDE
BlueJBlueJ ((httphttp://://www.bluej.orgwww.bluej.org//) ) -- Software libreSoftware libre
jCreatorjCreator ((httphttp://://www.jcreator.comwww.jcreator.com//) ) -- Software Software 
propietariopropietario, versi, versióón gratuita disponible. n gratuita disponible. 
Sun Java StudioSun Java Studio
((httphttp://://wwws.sun.comwwws.sun.com/software//software/sundevsundev//jdejde//) ) --
Software propietarioSoftware propietario, extensi, extensióón de n de netBeansnetBeans. . 
JBuilderJBuilder ((httphttp://://www.borland.comwww.borland.com//jbuilderjbuilder//) ) --
Software propietarioSoftware propietario
IntelliJIntelliJ IDEAIDEA ((httphttp://://www.jetbrains.comwww.jetbrains.com/idea//idea/) ) --
Software propietarioSoftware propietario
Motor de Motor de ServletServlet
AplicaciAplicacióón que n que contienecontiene la aplicacila aplicacióón javan java
Necesario para Necesario para ejecutarejecutar los los servletservlet y y jspjsp
ProductosProductos
Apache Apache TomcatTomcat
BEA BEA WebLogicWebLogic
IBM IBM WebSphereWebSphere
Sun/Sun/NetscapeNetscape IPlanetIPlanet
MacromediaMacromedia JRunJRun
……
EJEMPLO PREJEMPLO PRÁÁCTICOCTICO

Continuar navegando

Materiales relacionados

163 pag.
Lenguaje de Programación II JAVA

SIN SIGLA

User badge image

Stiven Fajardo

27 pag.