Descarga la aplicación para disfrutar aún más
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
Compartir