comparando struts 1 y 2

3
Inicio > Guías > Guía de migración > Comparación de Struts 1 y 2 Búsqueda De Google Apache Struts 2 Documentación Comparando Struts 1 y 2 Editar página Navegar Espacial Añadir página Añadir Noticias Característica Struts 1 Struts 2 Clases Action Struts 1 requiere clases de acción para extender una clase base abstracta. Un problema común en Struts 1 es la programación de las clases abstractas en vez de interfaces. Un Struts 2 Acción puede implementar una acción interfaz, junto con otras interfaces para que los servicios opcionales y personalizados. Struts 2 proporciona una clase ActionSupport de base para implementar interfaces de uso común. Aunque, es la interfaz de acción no requiere. Cualquier objeto POJO con un ejecutar la firma se puede utilizar como un objeto Action Struts 2. Enhebrado Modelo Struts1 acciones son únicos y deben ser flujos seguros ya que no sólo habrá una instancia de una clase para manejar todas las peticiones de esa acción. La estrategia singleton de imponer restricciones a lo que se puede hacer con Struts 1 Acciones y requiere un cuidado especial para desarrollarse. Recursos de acción deben ser flujos seguros o sincronizada. Objetos Struts 2 de acción se crean instancias para cada solicitud, por lo que no hay problemas de hilo de seguridad. (En la práctica, contenedores de servlets generan muchos objetos de usar y tirar por solicitud, y un objeto más no impone una penalización de rendimiento o la recolección de basura impacto.) Servlet Dependencia Struts 1 acciones tienen dependencias en la API de servlet desde el HttpServletRequest y HttpServletResponse se pasa a la ejecución de método cuando se invoca una acción. Struts 2 acciones no están acoplados a un contenedor. Muy a menudo los contextos servlet se representan como simples Maps, permitiendo acciones a ensayar en forma aislada. Struts 2 acciones aún pueden acceder a la solicitud y la respuesta original, si es necesario. Sin embargo, otros elementos arquitectónicos reducir o eliminar la necesidad de acceder a la HttpServetRequest o HttpServletResponse directamente. Comprobabilidad Un obstáculo importante para las pruebas de Struts 1 acciones es que la ejecución de método expone la API Servlet. Una extensión de terceros, Struts TestCase, ofrece un conjunto de objetos simulacro de Struts 1. Struts 2 acciones pueden ser probados por crear instancias de la acción, el establecimiento de propiedades y métodos de invocación. Dependencia apoyo inyección también hace pruebas más simple. La recolección Struts 1 utiliza un objeto ActionForm para capturar la entrada. Como acciones, todas ActionForms deben extender una clase base. Dado que otros JavaBeans no se pueden utilizar como ActionForms, los desarrolladores a Struts 2 utiliza las propiedades de acción como propiedades de entrada, lo que elimina la necesidad de un segundo objeto de entrada. Propiedades de entrada pueden ser ricos tipos de objetos que pueden tener sus propias propiedades. Las propiedades de acción se puede acceder desde la página web a través de los

Upload: ben-avraham

Post on 27-Sep-2015

4 views

Category:

Documents


0 download

DESCRIPTION

tip

TRANSCRIPT

  • 15/4/2015 ComparandoStruts1y2

    https://struts.apache.org/docs/comparingstruts1and2.html 1/3

    Inicio>Guas>Guademigracin>ComparacindeStruts1y2 BsquedaDeGoogle

    ApacheStruts2Documentacin

    ComparandoStruts1y2Editarpgina NavegarEspacial Aadirpgina AadirNoticias

    Caracterstica Struts1 Struts2

    ClasesAction

    Struts1requiereclasesdeaccinparaextenderunaclasebaseabstracta.UnproblemacomnenStruts1eslaprogramacindelasclasesabstractasenvezdeinterfaces.

    UnStruts2Accinpuedeimplementarunaaccininterfaz,juntoconotrasinterfacesparaquelosserviciosopcionalesypersonalizados.Struts2proporcionaunaclaseActionSupportdebaseparaimplementarinterfacesdeusocomn.Aunque,eslainterfazdeaccinnorequiere.CualquierobjetoPOJOconunejecutarlafirmasepuedeutilizarcomounobjetoActionStruts2.

    EnhebradoModelo

    Struts1accionessonnicosydebenserflujossegurosyaquenoslohabrunainstanciadeunaclaseparamanejartodaslaspeticionesdeesaaccin.LaestrategiasingletondeimponerrestriccionesaloquesepuedehacerconStruts1Accionesyrequiereuncuidadoespecialparadesarrollarse.Recursosdeaccindebenserflujossegurososincronizada.

    ObjetosStruts2deaccinsecreaninstanciasparacadasolicitud,porloquenohayproblemasdehilodeseguridad.(Enlaprctica,contenedoresdeservletsgeneranmuchosobjetosdeusarytirarporsolicitud,yunobjetomsnoimponeunapenalizacinderendimientoolarecoleccindebasuraimpacto.)

    ServletDependencia

    Struts1accionestienendependenciasenlaAPIdeservletdesdeelHttpServletRequestyHttpServletResponsesepasaalaejecucindemtodocuandoseinvocaunaaccin.

    Struts2accionesnoestnacopladosauncontenedor.MuyamenudoloscontextosservletserepresentancomosimplesMaps,permitiendoaccionesaensayarenformaaislada.Struts2accionesanpuedenaccederalasolicitudylarespuestaoriginal,siesnecesario.Sinembargo,otroselementosarquitectnicosreduciroeliminarlanecesidaddeaccederalaHttpServetRequestoHttpServletResponsedirectamente.

    Comprobabilidad

    UnobstculoimportanteparalaspruebasdeStruts1accionesesquelaejecucindemtodoexponelaAPIServlet.Unaextensindeterceros,StrutsTestCase,ofreceunconjuntodeobjetossimulacrodeStruts1.

    Struts2accionespuedenserprobadosporcrearinstanciasdelaaccin,elestablecimientodepropiedadesymtodosdeinvocacin.Dependenciaapoyoinyeccintambinhacepruebasmssimple.

    Larecoleccin

    Struts1utilizaunobjetoActionFormparacapturarlaentrada.Comoacciones,todasActionFormsdebenextenderunaclasebase.DadoqueotrosJavaBeansnosepuedenutilizarcomoActionForms,losdesarrolladoresa

    Struts2utilizalaspropiedadesdeaccincomopropiedadesdeentrada,loqueeliminalanecesidaddeunsegundoobjetodeentrada.Propiedadesdeentradapuedenserricostiposdeobjetosquepuedentenersuspropiaspropiedades.Laspropiedadesdeaccinsepuedeaccederdesdelapginawebatravsdelos

  • 15/4/2015 ComparandoStruts1y2

    https://struts.apache.org/docs/comparingstruts1and2.html 2/3

    deentrada menudocreanclasesredundantesparacapturarlaentrada.DynaBeanspuedeutilizarcomoalternativaalacreacindeclasesActionFormconvencionales,pero,tambinenestecaso,losdesarrolladorespuedenRedescribiendoJavaBeansexistentes.

    taglibs.Struts2tambinescompatibleconelpatrndeActionForm,ascomoobjetosdeformularioPOJOyPOJOacciones.Tiposdeobjetosricos,incluidoslosobjetosdenegocioodedominio,puedenserutilizadoscomoobjetosdeentrada/salida.LacaractersticaModelDrivensimplificareferenciastaglbaobjetosdeentradaPOJO.

    ExpressionLanguage

    Struts1integraconJSTL,porloqueutilizalaJSTLEL.ElPIEtienerecorridobsicogrficodeobjetos,perolarecopilacinrelativamentedbilysoportepropiedadindexada.

    Struts2puedeutilizarJSTL,peroelmarcotambinescompatibleconunlenguajedeexpresinmspotenteyflexiblellamado"objetogrficodenotacindeidiomas"(OGNL).

    Encuadernacinvaloresen

    puntosdevista

    Struts1utilizaelmecanismoestndardeJSPparavincularobjetosenelcontextodelapginadeacceso.

    Struts2utilizaunatecnologa"ValueStack"paraquelostaglibspuedenaccederavaloressinacoplamientodevisinparaeltipodeobjetoqueestprestando.LaestrategiaValueStackpermitelareutilizacindepuntosdevistaatravsdeunagamadetiposquepuedentenerelmismonombredelapropiedad,perodiferentestiposdepropiedad.

    Tipodeconversin

    Struts1propiedadesActionFormsonusualmentetodoslosStrings.Struts1utilizaCommonsBeanUtilsparalaconversindetipos.Convertidoressonporclase,ynoesconfigurableporinstancia.

    Struts2utilizaOGNLparalaconversindetipos.Elmarcoincluyeconvertidoresparatiposdeobjetosbsicosycomunesyprimitivas.

    Validacin

    Struts1soportalavalidacinmanualatravsdeunavalidacinmtodoenelActionForm,oatravsdeunaampliacindelaCommonsValidador.Lasclasespuedentenerdiferentescontextosdevalidacindelamismaclase,peronopuedecadenadevalidacionesensubobjetos.

    Struts2soportalavalidacinmanualatravsdelavalidacinmtodoyelmarcoXWorkvalidacin.LavalidacinMarcoXWorkpermitiendoencadenarvalidacinensubpropiedadesutilizandolasvalidacionesdefinidasparaeltipodepropiedadesdeclaseyelcontextodevalidacin.

    Controldelaejecucinde

    Accin

    Struts1soportaprocesadoresSolicitarseparados(ciclosdevida)paracadamdulo,perotodaslasaccionesenelmdulodebecompartirelmismociclodevida.

    Struts2soportesquecreandiferentesciclosdevidasobreunabaseporaccinatravsdelinterceptordePilas.Pilaspersonalizadospuedensercreadosyutilizadoscondiferentesacciones,segnseanecesario.

    VerTambinMattRaibleescribi(mediadosde2005)uninteresantedocumentotcnicodondecompardiversosframeworksweb.PuedeverelPDFaqu:

    https://equinox.dev.java.net/frameworkcomparison/WebFrameworks.pdfhttp://www.virtuas.com/files/osljwf01.pdf

  • 15/4/2015 ComparandoStruts1y2

    https://struts.apache.org/docs/comparingstruts1and2.html 3/3

    :Siguienteestrategiasdemigracin

    GeneradoporCXFSiteExporter