p_struts

download p_struts

of 34

Transcript of p_struts

  • 8/8/2019 p_struts

    1/34

    PROGRAMACIN WEB CO

    FRAMEWORK STRUTSBeatriz Montero Fernndez -

    http://ousli.org

  • 8/8/2019 p_struts

    2/34

    NDICENDICE

    1) INTRODUCCIN

    2) J2EE

    3) MVC

    4) INSTALACIN DE UN ENTORNO DE DESENVOLVEMENTOEN UBUNTU 7.04

    5) STRUTS MODELO VISTA CONTROLADOR

  • 8/8/2019 p_struts

    3/34

    INTRODUCCININTRODUCCIN

    QUE STRUTS?

    Framework libre para o desenvolvemento de aplicacins web Baixo a plataforma J2EE Baixo o patrn MVC

  • 8/8/2019 p_struts

    4/34

    J2EEJ2EE

    Conxunto de estndares e especificacins para o desenvolvemento de

    aplicacin empresarias baseadas en compoentes de software modulares,

    que se executan sobre un servidor de aplicacins, baixo a tecnoloxa Java

    Java + Compoentes adicionais orientados a empresas

    Incle: Especificacins de API e define como coordinalas:JDBC,RMI,JMS,

    Servizos Web, XML,...

    Especificacins nicas: EJB's, servlets, JSP's,.. Varias tecnoloxas de servizos web

  • 8/8/2019 p_struts

    5/34

    J2EEJ2EE

  • 8/8/2019 p_struts

    6/34

    J2EEJ2EE

    CARACTERSTICAS

    - Aplicacins de empresas portables, escalables, integrables con tecnoloxas

    anteriores

    - Desarrolladores no desenvolvemento, deseadores no deseo

    - Pouco ou ningn gasto: Gratuito Moitas ferramentas de cdigo aberto:

    NetBeans IDE Eclipse IDE Apache Ant Apache Maven Junit Apache Tomcat ...

  • 8/8/2019 p_struts

    7/34

    MVCMVC

    CONTROLADOR: nico que recibe as peticins dos usuarios

    MODELO: estado interno da aplicacin (entidades e regras de negocio

    VISTAS: presentan o estado interno do sistema

  • 8/8/2019 p_struts

    8/34

    MVCMVC

    MODELO I (MVC1)

  • 8/8/2019 p_struts

    9/34

    MVCMVC

    MODEL II (MVC2)

  • 8/8/2019 p_struts

    10/34

    INSTALACIN DE UN ENTORNO DE DESARROLLOINSTALACIN DE UN ENTORNO DE DESARROLLO

    EN UBUNTU 7.04EN UBUNTU 7.04

    SDK Java

    Apache Tomcat

    EasyEclipse

    Struts

    MySQL

  • 8/8/2019 p_struts

    11/34

    STRUTSSTRUTS

    TRMINOS ESPECCOSActions

    Posible accin a invocar Regras de negocio

    ActionMapping Mapea as URL's

    ActionForm Formulario Encapsulan parmetros das peticins dos clientes

    ActionServlet.

    O controladorstruts-config.xml. A intelixencia do Controlador

  • 8/8/2019 p_struts

    12/34

    STRUTSSTRUTS

    FUNCIONAMENTO

  • 8/8/2019 p_struts

    13/34

    STRUTS: MODELOSTRUTS: MODELOJavaBeans

    Compoente software que pode serreutilizable. Implementan la interfaz serializableConstructor sen argumentos Propiedades accesibles mediante getXXX() y

    setXXX() Distnguense:

    JavaBeans de estado JavaBeans 'ActionForm' JavaBeans de Lxica de Negocio

  • 8/8/2019 p_struts

    14/34

    STRUTS: MODELOSTRUTS: MODELO

    Beans 'ActionForm'

    Herdan da clase org.apache.struts.action.ActionForm Non lxica de negocio Validacin automtica: validate()No struts-config.xml:

    ...

  • 8/8/2019 p_struts

    15/34

    STRUTS: MODELOSTRUTS: MODELO

    Beans Lxica de Negocio

    Clases que implementan a lxica

    Reciben os beans de estado para manipulalos Independentes e reutilizables. Segundo a complexidade da aplicacin:

    JavaBeans ordinarios que interaccionan con

    JavaBeans de estado JavaBeans ordinarios que acceden a BD usando

    JDBC EnterpriseJavaBeans(EJB's)

  • 8/8/2019 p_struts

    16/34

    STRTUS: MODELOSTRTUS: MODELO

    Acceso a BD RelacionalesPool de conexins As conexins un base de datos son caras, existe un nmero limitado de

    conexins que se poden mater abertas nun servidor en funcin da sa memoria,

    potencia, do sistema ao que accedemos -> non podemos arriesgarnos a esgotar

    as conexins. Conxunto limitado de conexin que se reutilizan continuamente para dar

    servizos aos clientes para aumentar a escalabilidade e o rendemento, o que fai

    posible que as conexins non se este abrindo continuamente. O pool de conexins inicializase con un nmero de conexins determinado. Os clientes abren a conexin, acceden ao servizo e por ltimo pechan a

    conexin. importante que o cliente abra e peche a conexin, porque si non se estara

    devolvendo o pool, e correramos o risco de esgotar os recursos do noso

    servidor.

  • 8/8/2019 p_struts

    17/34

    STRUTS: MODELOSTRUTS: MODELO

    Pool de conexins de Struts No struts-config.xml:

  • 8/8/2019 p_struts

    18/34

    STRUTS: MODELOSTRUTS: MODELO

    Pool de conexins con Struts. Libreras que precisamos:

    commons-pool1.2.1.jar mysql-connector-java-5.0.3-bin.jar commons-dbcp1.2.1.jar

    Accendo ao pool de conexins: A travs de javax.sql.DataSource

    ...

    javax.sql.DataSource dataSource = getDataSource(httpServletRequest);

    con = dataSource.getConnection();

    PreparedStatement pstmt = con.prepareStatement("SELECT * FROM tutoriales

    WHERE id < ?");

    ...

  • 8/8/2019 p_struts

    19/34

    STURTS: VISTASTURTS: VISTA

    JSP's

    Mensaxes internacionalizadosLibreras de Etiquetas personalizadas de

    JSPMaquetacin Tiles

  • 8/8/2019 p_struts

    20/34

    STRUTS: VISTASTRUTS: VISTA

    Mensaxes internacionalizados

    Struts permite construr aplicacins internacionalizadas e localizadas: Locale Eleccin do pas, idioma e formateo ResourceBundle Mensaxes en varios idiomas PropertyResourceBundle Implementacin do ResourceBundle.

    Ficheiro de recursosnome=valor

    MessageFormat Reemplezar porcins dun string dunha mensaxe,

    orde das palabras en funcin do idioma MessageResources Paquetes de recursos como bases e datos.

    STRUTS VISTASTRUTS VISTA

  • 8/8/2019 p_struts

    21/34

    STRUTS: VISTASTRUTS: VISTA

    Mensaxes internacionalizados

    Paquetes de recursos: MyResources.property Mensaxes do idioma por defecto do servidor

    ingls -> prompt.hello=hello MyResources_XX.property Mensaxes no idioma XX

    espaol -> prompt.hello=HolaNo web.xml:

    application

    com.mycompany.mypackage.MyResources

  • 8/8/2019 p_struts

    22/34

    STRUTS: VISTASTRUTS: VISTA

    Libreras de Etiquetas Personalizadas de JSP

    vs

    struts-html: formularios, mesaxes de erro, visualizacin de mensaxes struts-bean: traballar e definir beans

    struts-logic: manexar a xeracin condicional de sada de texto, bucles, ... struts-tiles: maquetacin mediante plantillas

    STRUTS VISTASTRUTS VISTA

  • 8/8/2019 p_struts

    23/34

    STRUTS: VISTASTRUTS: VISTA

    TilesMaquetacin da aplicacins Web mediante plantillasConstruccin de pxinas en base a plantillas con Struts:

    Plantilla que define elementos estticos e reas donde inserir outros contidos. Definir a plantilla no arquivo: tiles-def.xml

    A pxina real que utiliza a plantilla insertando textos e outras porcinsdinmicamente

    Porcins particulares reutilizables

  • 8/8/2019 p_struts

    24/34

    STRUT: CONROLADORSTRUT: CONROLADOR

    nico controlador: ActionServlet que a travs do

    struts-config mapea unha URI a unha Action Escribir a Action Configurar o ActionMapping(en XML) no struts-

    conf.xml

    Configurar o ficheiro descriptor de despregue:web.xml

    STRUTS CONTROLADORSTRUTS CONTROLADOR

  • 8/8/2019 p_struts

    25/34

    STRUTS: CONTROLADORSTRUTS: CONTROLADOR

    Action Obxectivo: procesar unha solicitude mediante o

    mtodo execute()

    1.Validar o estado actual da sesin do usuario2.Realiza o procesamento requerido para tratar a

    solicitude

    3.Actualizar o estado do sistema

    4.Devolve un obxecto ActionForwardqueidentifica a onde se debe reenviar o control da

    aplicacin, mediante o mtodo findForward()

  • 8/8/2019 p_struts

    26/34

    STRUTS: CONTROLADORSTRUTS: CONTROLADOR

  • 8/8/2019 p_struts

    27/34

    STRUTS: CONTROLADORSTRUTS: CONTROLADOR

    DispatchAction

    3. Indicar o servlet que accin executar mediante un parmetro 'action':

    ...

  • 8/8/2019 p_struts

    28/34

    STRUTS: CONTROLADORSTRUTS: CONTROLADOR

    DispatchAction

    4. Darlle valor a ese par

    metro 'action'Na altaLibro.jsp:

    Na baixaLibro.jsp:

    STRUTS: CONTROLADORSTRUTS: CONTROLADOR

  • 8/8/2019 p_struts

    29/34

    STRUTS: CONTROLADORSTRUTS: CONTROLADOR

    Implementacin do ActionMapping en struts-config.xml

    STRUTS: CONTROLADORSTRUTS: CONTROLADOR

  • 8/8/2019 p_struts

    30/34

    STRUTS: CONTROLADORSTRUTS: CONTROLADOR

    Configurar o ficheiro descriptor de despregue: web.xmlObxectivo. Indicar os compoentes Struts que vamos utilizar:

    ServletAction

    action

    org.apache.struts.action.ActionServlet

    config

    /WEB-INF/struts-config.xml

    debug

    2

    mapping

    org.apache.struts.example.ApplicationMapping

    CONTROLADOR: STRUTSCONTROLADOR: STRUTS

  • 8/8/2019 p_struts

    31/34

    CONTROLADOR: STRUTSCONTROLADOR: STRUTS

    Configurar o ficheiro descriptor de despregue: web.xml

    Mapeo do ServletAction: Define as URL's a ser procesadas polo ActionServlet

    a) action

    /execute/*

    URI: /logon URL: www.mycompany.com/myApplication/execute/logon

    b) action

    *.do

    URI: /logon URL:www.mycompany.com/myApplication/logon.do

    CONTROLADOR STRUTSCONTROLADOR STRUTS

  • 8/8/2019 p_struts

    32/34

    CONTROLADOR: STRUTSCONTROLADOR: STRUTS

    Configurar o ficheiro descriptor de despregue: web.xml

    Librera e etiquetas de Struts:

    /WEB-INF/struts-bean.tld /WEB-INF/struts-bean.tld

    /WEB-INF/struts-html.tld

    /WEB-INF/struts-html.tld

    /WEB-INF/struts-logic.tld

    /WEB-INF/struts-logic.tld

    /WEB-INF/struts-template.tld

    WEB-INF/struts-template.tld

    STRUTSSTRUTS

  • 8/8/2019 p_struts

    33/34

    STRUTSSTRUTS

    STRUTS A MELLOR OPCIN PARA

    TDOLOS PROXECTOS?

    DEPENDE...

    Gracias pola atencin!!Gracias pola atencin!!

  • 8/8/2019 p_struts

    34/34

    Gracias pola atencin!!Gracias pola atencin!!

    PROGRAMACIN WEB CO

    FRAMEWORK STRUTSBeatriz Montero Fernndez -http://ousli.org