Este documento proporciona una introducción al framework Struts para el desarrollo web. Explica conceptos clave como MVC, el modelo, la vista y el controlador. También cubre la instalación de Struts y conceptos como action forms, action mappings, pools de conexiones y mensajes internacionalizados.
3. INTRODUCCIÓN
¿QUE É STRUTS?
Framework libre para o desenvolvemento de aplicacións web
➢
Baixo a plataforma J2EE
➢
Baixo o patrón MVC
➢
4. J2EE
Conxunto de estándares e especificacións para o desenvolvemento de
●
aplicación empresarias baseadas en compoñentes de software modulares,
que se executan sobre un servidor de aplicacións, baixo a tecnoloxía Java
Java + Compoñentes adicionais orientados a empresas
Inclúe:
●
Especificacións de API e define como coordinalas:JDBC,RMI,JMS,
•
Servizos Web, XML,...
Especificacións únicas: EJB's, servlets, JSP's,..
•
Varias tecnoloxías de servizos web
•
7. MVC
CONTROLADOR: Único que recibe as peticións dos usuarios
●
MODELO: estado interno da aplicación (entidades e regras de negocio)
●
VISTAS: presentan o estado interno do sistema
●
11. STRUTS
TÉRMINOS ESPECÍCOS
Actions
➢ Posible acción a invocar
➢ Regras de negocio
ActionMapping
➢ Mapea as URL's
ActionForm
➢ Formulario
➢ Encapsulan parámetros das peticións dos clientes
ActionServlet.
➢ O controlador
strutsconfig.xml.
➢ “A intelixencia do Controlador”
15. STRUTS: MODELO
Beans Lóxica de Negocio
Clases que implementan a lóxica
●
● Reciben os beans de estado para manipulalos
● Independentes e reutilizables.
● Segundo a complexidade da aplicación:
• JavaBeans ordinarios que interaccionan con
JavaBeans de estado
• JavaBeans ordinarios que acceden a BD usando
JDBC
• EnterpriseJavaBeans(EJB's)
16. STRTUS: MODELO
Acceso a BD Relacionales
Pool de conexións
● As conexións un base de datos son caras, existe un número limitado de
conexións que se poden mater abertas nun servidor en función da súa memoria,
potencia, do sistema ao que accedemos > non podemos arriesgarnos a esgotar
as conexións.
● Conxunto limitado de conexión que se reutilizan continuamente para dar
servizos aos clientes para aumentar a escalabilidade e o rendemento, o que fai
posible que as conexións non se este abrindo continuamente.
● O pool de conexións inicializase con un número de conexións determinado.
● Os clientes abren a conexión, acceden ao servizo e por último pechan a
conexión.
● É importante que o cliente abra e peche a conexión, porque si non se estaría
devolvendo o pool, e correríamos o risco de esgotar os recursos do noso
servidor.
18. STRUTS: MODELO
Pool de conexións con Struts.
● Librerías que precisamos:
commonspool1.2.1.jar
•
mysqlconnectorjava5.0.3bin.jar
•
commonsdbcp1.2.1.jar
•
● Accendo ao pool de conexións:
A través de javax.sql.DataSource
•
...
javax.sql.DataSource dataSource = getDataSource(httpServletRequest);
con = dataSource.getConnection();
PreparedStatement pstmt = con.prepareStatement(quot;SELECT * FROM tutoriales
WHERE id < ?quot;);
...
20. STRUTS: VISTA
Mensaxes internacionalizados
Struts permite construír aplicacións internacionalizadas e localizadas:
●
• Locale – Elección do país, idioma e formateo
• ResourceBundle – Mensaxes en varios idiomas
• PropertyResourceBundle – Implementación do ResourceBundle.
Ficheiro de recursos
•“nome=valor”
• MessageFormat – Reemplezar porcións dun string dunha mensaxe,
orde das palabras en función do idioma
• MessageResources – Paquetes de recursos como bases e datos.
•
21. STRUTS: VISTA
Mensaxes internacionalizados
Paquetes de recursos:
●
MyResources.property – Mensaxes do idioma por defecto do servidor
•
•inglés > prompt.hello=hello
MyResources_XX.property – Mensaxes no idioma XX
•
•español > prompt.hello=Hola
●No web.xml:
<servlet>
<initparam>
<paramname>application</paramname>
<paramvalue>com.mycompany.mypackage.MyResources</paramvalue>
</initparam>
<.../>
</servlet>
22. STRUTS: VISTA
Librerías de Etiquetas Personalizadas de JSP
<input type=”text” name=”username” value=”<%=
loginBean.getUsername() %>”/>
vs
<html:text property=”username”>
strutshtml: formularios, mesaxes de erro, visualización de mensaxes
●
strutsbean: traballar e definir beans
●
strutslogic: manexar a xeración condicional de saída de texto, bucles, ...
●
strutstiles: maquetación mediante plantillas
●
23. STRUTS: VISTA
Tiles
Maquetación da aplicacións Web mediante plantillas
●
●Construcción de páxinas en base a plantillas con Struts:
Plantilla que define elementos estáticos e áreas donde inserir outros contidos.
•
Definir a plantilla no arquivo: tilesdef.xml
•
<tilesdefinitions>
<definition name=quot;plantillaAquot; path=quot;/jsp/defaultLayout.jspquot;>
<put name=quot;headerquot; value=quot;/jsp/header.jspquot; />
<put name=quot;menubarquot; value=quot;/jsp/mainMenu.jspquot; />
<put name=quot;copyleftquot; value=quot;/jsp/left.jspquot; />
</definition>
<tilesdefinitions>
A páxina real que utiliza a plantilla insertando textos e outras porcións
•
dinámicamente
Porcións particulares reutilizables
•
25. STRUTS: CONTROLADOR
Action
● Obxectivo: procesar unha solicitude mediante o
método execute()
1.Validar o estado actual da sesión do usuario
2.Realiza o procesamento requerido para tratar a
solicitude
3.Actualizar o estado do sistema
4.Devolve un obxecto ActionForward que
identifica a onde se debe reenviar o control da
aplicación, mediante o método findForward()
26. STRUTS: CONTROLADOR
DispatchAction
1. Definimos a clase que agrupará as diferentes accións
public class XestionLibrosAction extends DispatchAction{
....}
2. Definimos un método por cada acción:
public ActionForward altaLibro(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws
Exception{
Implentación da lóxica para dar de alta un libro
}
public ActionForward modificacionLibro(ActionMapping mapping,
ActionForm form, HttpServletRequest request, HttpServletResponse
response) throws Exception{
Implentación da lóxica para modificar un libro