Struts. Características Avançadas

Save this PDF as:
 WORD  PNG  TXT  JPG

Tamanho: px
Começar a partir da página:

Download "Struts. Características Avançadas"

Transcrição

1 Struts Características Avançadas

2 Agenda Tags do Struts DispatchAction Multiplos arquivos de configuração Command Pattern DynaActionForm Array s Validation Framework JSP2.0 Expression Language

3 html html:submit html:cancel html:button html:hidden html:checkbox html:messages html:errors html:file html:form html:javascript html:image/img

4 html html:link html:messages html:multibox html:selection/option/options/optionscollection html:radio html:reset html:rewrite html:text html:textarea

5 bean bean:cookie bean:header bean:parameter bean:define bean:include bean:message bean:page bean:resource bean:size

6 bean bean:struts bean:write

7 logic logic:empty logic:present logic:iterate logic:{...}

8 Preparação do Ambiente Crie dois projetos (SistemaDeNoticias e SistemaDeNoticiasWeb) Configure o nome do contexto web para noticia Adicione a lib struts-extras.jar. Utilize, claro, a versão mais recente Crie as páginas Menu.jsp e index.jsp

9 Menu.jsp page language="java" contenttype="text/html; charset=utf-8"%> taglib uri="/tags/struts-html" prefix="html"%> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>.: Menu :.</title> <link rel="stylesheet" href="css/estilo.css" type="text/css" /> </head> <body> <table> <tr> <td><html:link page="/paginainicial.do">página Inicial </html:link></td> </tr> </table> </body> </html>

10 index.jsp <body onload="window.location='paginainicial.do';">

11 DispatchAction Subtipo de Action que implementa o padrão Command Ao invés de ter várias classes Action, você centraliza todas as ações num único DispatchAction e seleciona a uma ação específica através de um parâmetro (comando) na url Muito prático, economiza várias classes, pois uma mesma Action responde a várias solicitações

12 NoticiaAction package net.noticias.action; import java.util.*; import javax.servlet.http.*; import net.noticias.form.*; import net.noticias.persistencia.*; import org.apache.struts.action.*; import org.apache.struts.actions.*; public class NoticiaAction extends DispatchAction { public ActionForward listar(actionmapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { DAONoticia daonoticia = new DAONoticia(); request.setattribute("noticias", daonoticia.consultanoticias()); return mapping.findforward("mostrarpaginadeconsulta"); } }

13 Invocando um método do Dispatch Essa é uma subclasse de DispatchAction Todos os métodos devem ter a seguinte lista de parâmetros: ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response O nome do método (no nosso caso listar) será invocado pela url Noticia.do?comando=listar A url completa é

14 Parâmetros do dispath Noticia.do Chama a ação respectiva no strutsconfig.xml, acionando a classe NoticiaAction O método listar faz carrega uma coleção de notícias na variável noticias e chama o forward MostrarPaginaDeConsulta abrindo a página ConsultarNoticias.jsp comando=listar Parâmetro http utilizado para escolher o método

15 NoticiaForm package net.noticias.form; import org.apache.struts.action.*; public class NoticiaForm extends ActionForm { private String id; private String texto; private String titulo; private String data; private String tipodenoticia; private String[] noticiasselecionadas; {...} }

16 Detalhes Crie os métodos getter e setters Temos um atributo do tipo array Array s são utilizados para recuperar valores de componentes como listas de seleção múltipla e checkboxes Essa é uma característica do html, não do Struts

17 DAONoticia package net.noticias.persistencia; import java.util.*; import net.noticias.form.*; public class DAONoticia { public Collection<NoticiaForm> consultanoticias() { Collection<NoticiaForm> lista = new ArrayList<NoticiaForm>(); NoticiaForm n = new NoticiaForm(); n.setid("1"); n.setdata(" "); n.settexto("texto da notícia 1"); n.settitulo("título da notícia 1"); lista.add(n); n = new NoticiaForm(); n.setid("2"); n.setdata(" "); n.settexto("texto da notícia 2"); n.settitulo("título da notícia 2"); lista.add(n); n = new NoticiaForm(); n.setid("3"); n.setdata(" "); n.settexto("texto da notícia 3"); n.settitulo("título da notícia 3"); lista.add(n); return lista; }

18 DAONoticia public NoticiaForm consultanoticiapeloid(string id) { NoticiaForm n = new NoticiaForm(); n.setid(id); n.setdata(" "); n.settexto("texto da notícia " + id); n.settitulo("título da notícia " + id); n.settipodenoticia("3"); return n; } }

19 web.xml <?xml version="1.0" encoding="iso "?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" " <web-app> <display-name>sistema de Notícias</display-name> <servlet> <servlet-name>action</servlet-name> <servlet-class> org.apache.struts.action.actionservlet </servlet-class> <init-param> <param-name>config</param-name> <param-value> /WEB-INF/struts-config.xml,/WEB-INF/struts-config-form-beans.xml </param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>

20 web.xml <!-- Standard Action Servlet Mapping --> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <taglib> <taglib-uri>/tags/struts-bean</taglib-uri> <taglib-location>/web-inf/lib/struts-bean.tld</taglib-location> </taglib> <taglib> <taglib-uri>/tags/struts-html</taglib-uri> <taglib-location>/web-inf/lib/struts-html.tld</taglib-location> </taglib> <taglib> <taglib-uri>/tags/struts-logic</taglib-uri> <taglib-location>/web-inf/lib/struts-logic.tld</taglib-location> </taglib> </web-app>

21 Múltiplos arquivos de configuração Arquivos de configuração tendem a crescer bastante, dificultando sua visualização Nesse exemplo separamos os form-beans do resto da aplicação Para isso, adicione os arquivos de configuração no parâmetro config separados por vírgula

22 struts-config.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" " <struts-config> <global-forwards> <forward name="abrirpaginaprincipal" path="/paginainicial.do" /> </global-forwards> <action-mappings> <action path="/paginainicial" forward="/menu.jsp" /> <action path="/noticia" type="net.noticias.action.noticiaaction" name="noticiaform" parameter="comando"> <forward name="mostrarpaginadeedicao" path="/editarnoticia.jsp" /> <forward name="mostrarpaginadeconsulta" path="/consultarnoticias.jsp" /> </action> </action-mappings> <message-resources parameter="messageresources" /> </struts-config>

23 Command Pattern A ação Noticia deve ter um parâmetro O nome padrão é comando Esse parâmetro será usado para escolher o método a ser executado

24 Forwards globais São forwards que podem ser utilizados por todos os actions <global-forwards> <forward name="abrirpaginaprincipal" path="/paginainicial.do" /> </global-forwards>

25 struts-config-form-beans.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" " <struts-config> <form-beans> <form-bean name="noticiaform" type="net.noticias.form.noticiaform" /> <form-bean name="tipodenoticiaform" type="net.noticias.form.tipodenoticiaform" /> </form-beans> </struts-config>

26 ConsultarNoticias.jsp page language="java" contenttype="text/html; charset=utf-8"%> taglib uri="/tags/struts-html" prefix="html"%> taglib uri="/tags/struts-bean" prefix="bean"%> taglib uri="/tags/struts-logic" prefix="logic"%> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>.: Consulta Notícias :.</title> <link rel="stylesheet" href="css/estilo.css" type="text/css" /> </head> <body> <table width=90% border> <tr> <td colspan=4 align=center> <h2>consulta Notícias</h2> </td> </tr> <tr> <td align=center>data</td> <td>título</td> <td>texto</td> <td>editar</td>

27 ConsultarNoticias.jsp </tr> <logic:iterate id="noticia" name="noticias"> <tr> <td align=center><bean:write name="noticia" property="data" /></td> <td><bean:write name="noticia" property="titulo" /></td> <td><bean:write name="noticia" property="texto" /></td> <td><html:link page="/noticia.do?comando=editar" paramid="iddanoticia" paramname="noticia" paramproperty="id"> <html:image src="imagens/edit.gif" /> </html:link> </tr> </logic:iterate> <tr> <td colspan=4 align=center><html:button onclick="window.location='paginainicial.do'" property="btnvoltar" value="sair" /></td> </table> </body> </html>

28 html:link e html:button html:link <html:link page="/noticia.do?comando=editar" paramid="iddanoticia" paramname="noticia" paramproperty="id"> /Noticia.do?comando=editar chama a mesma action (NoticiaAction) executando dessa vez o comando editar paramid nome do parâmetro passado na url paramname nome do bean paramproperty valor da propriedade html:button <html:button onclick="window.location='paginainicial.do'" property="btnvoltar" value="sair" /> Botão com javascript para voltar à página inicial

29 Novo Menu.jsp page language="java" contenttype="text/html; charset=utf-8"%> taglib uri="/tags/struts-html" prefix="html"%> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>.: Menu :.</title> <link rel="stylesheet" href="css/estilo.css" type="text/css" /> </head> <body> <table> <tr> <td><html:link page="/paginainicial.do">página Inicial </html:link></td> <td><html:link page="/noticia.do?comando=listar">notícia </html:link></td> </tr> </table> </body> </html>

30 Tela de Consulta

31 Comando editar Esse novo comando consulta uma notícia pelo parâmetro iddanoticia Teremos um combobox com os tipos de notícia, para montá-lo precisamos da coleção de tipos Em seguida é só chamar o forward MostrarPaginaDeEdicao

32 NoticiaAction public ActionForward editar(actionmapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String id = request.getparameter("iddanoticia"); DAONoticia daonoticia = new DAONoticia(); DAOTipoDeNoticia daotipo = new DAOTipoDeNoticia(); Collection<TipoDeNoticiaForm> tipos = daotipo.consultatiposdenoticia(); NoticiaForm n = daonoticia.consultanoticiapeloid(id); request.setattribute("noticia", n); request.setattribute("tipos", tipos); return mapping.findforward("mostrarpaginadeedicao"); }

33 EditarNoticia.jsp page language="java" contenttype="text/html; charset=utf-8"%> taglib uri="/tags/struts-html" prefix="html"%> taglib uri="/tags/struts-bean" prefix="bean"%> taglib uri="/tags/struts-logic" prefix="logic"%> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>.: Editar Notícia :.</title> <link rel="stylesheet" href="css/estilo.css" type="text/css" /> </head> <body> <table width=90% border> <html:form action="/noticia?comando=confirmar"> <tr> <td colspan=3 align=center> <h2>editar Notícia</h2>

34 EditarNoticia.jsp </td> </tr> <tr> <td align=center>id</td> <td><html:text name="noticia" property="id" /></td> </tr> <tr> <td align=center>data</td> <td><html:text name="noticia" property="data" /></td> </tr> <tr> <td align=center>título</td> <td><html:text name="noticia" property="titulo" /></td> </tr> <tr> <td align=center>texto</td> <td><html:text name="noticia" property="texto" /></td> </tr> <tr> <td colspan=3> <tr>

35 EditarNoticia.jsp <td align=center>tipo de notícia: <td colspan=2> <html:select name="noticia" property="tipodenoticia"> <html:optionscollection name="tipos" value="id" label="descricao" /> </html:select></td> </tr> <tr> <td colspan=3 align=center> <html:submit value="confirmar" /> <html:button onclick="action='noticia.do?comando=listar';submit()" value="sair" property="btnsair" /></td> </tr> </html:form> </table> </body> </html>

36 html:form/select <html:form action="/noticia?comando=confirmar"> Os dados dessa página serão enviados para o método confirmar através da NoticiaForm <html:select name="noticia" property="tipodenoticia"> <html:optionscollection name="tipos" value="id" label="descricao" /> </html:select> html:select tag para montar uma combobox, inclusive de seleção múltipla name, property nome/propriedade do bean html:optionscollection valores do combobox name nome da collection value valor de cada option (id de cada tipodenoticia) label valor que será mostrado ao usuário Se o id do bean for igual ao id da combo, essa opção virá selecionada

37 html:submit <html:submit value="confirmar" /> Submete o form para a ação do form <html:button onclick="action='noticia.do?comando=listar';submit()" value="sair" property="btnsair" /> Muda o valor da ação através de javascript e a submete

38 Tela de Edição

39 Confirmando a ação O método confirmar recebe os dados do formulário de edição e faz a persistência dos dados Nossos exemplos não têm bancos de dados, mas um DAO acessando o Hibernate poderia fazer isso facilmente

40 NoticiaAction public ActionForward confirmar(actionmapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { NoticiaForm f = (NoticiaForm) form; System.out.println("Dados informados pelo usuário"); System.out.println("ID: " + f.getid()); System.out.println("Data: " + f.getdata()); System.out.println("Título: " + f.gettitulo()); System.out.println("Texto: " + f.gettexto()); System.out.println("ID do Tipo: " + f.gettipodenoticia()); return mapping.findforward("abrirpaginaprincipal"); }

41 Camadas de Persistência e Negócio O Struts não fornece nenhuma API para a camada de negócio Seguindo as melhores práticas, a Action deveria acessar um fachada No nosso exemplo temos acessamos um DAO diretamente O próximo passo seria acessar efetivamente o banco relacional

42 TipoDeNoticiaForm package net.noticias.form; import org.apache.struts.action.*; public class TipoDeNoticiaForm extends ActionForm { private String id; private String descricao; {...} }

43 Alternativa A classe TipoDeNoticia é bastante simples, tem apenas código e descrição Esse tipo de classe é forte candidata a se transformar em formulário dinâmico, discutido posteriormente

44 struts-config.xml Acrescente a ação respectiva no arquivo de configuração (siga o padrão da ação Noticia) Já é possível notar a quantidade reduzida de classes Action <action path="/tipodenoticia" name="tipodenoticiaform" type="net.noticias.action.tipodenoticiaaction" parameter="comando"> <forward name="mostrarpaginadeedicao" path="/editartipodenoticia.jsp" /> <forward name="mostrarpaginadeconsulta" path="/consultartipodenoticia.jsp" /> </action>

45 TipoDeNoticiaAction package net.noticias.action; import java.util.*; import javax.servlet.http.*; import net.noticias.form.*; import net.noticias.persistencia.*; import org.apache.struts.action.*; import org.apache.struts.actions.*; public class TipoDeNoticiaAction extends DispatchAction { public ActionForward editar(actionmapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String id = request.getparameter("iddotipo"); DAOTipoDeNoticia dao = new DAOTipoDeNoticia(); TipoDeNoticiaForm tipo = dao.consultatipodenoticiapeloid(id); request.setattribute("tipo", tipo); return mapping.findforward("mostrarpaginadeedicao"); }

46 TipoDeNoticiaAction public ActionForward listar(actionmapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { DAOTipoDeNoticia d = new DAOTipoDeNoticia(); Collection<TipoDeNoticiaForm> lista = d.consultatiposdenoticia(); request.setattribute("tipos", lista); return mapping.findforward("mostrarpaginadeconsulta"); } public ActionForward confirmar(actionmapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { TipoDeNoticiaForm f = (TipoDeNoticiaForm) form; System.out.println("Dados informados pelo usuário"); System.out.println("ID: " + f.getid()); System.out.println("Data: " + f.getdescricao()); return mapping.findforward("abrirpaginaprincipal"); } }

47 DAOTipoDeNoticia package net.noticias.persistencia; import java.util.*; import net.noticias.form.*; public class DAOTipoDeNoticia { public Collection<TipoDeNoticiaForm> consultatiposdenoticia() { Collection<TipoDeNoticiaForm> lista = new ArrayList<TipoDeNoticiaForm>(); TipoDeNoticiaForm n = new TipoDeNoticiaForm(); n.setid("1"); n.setdescricao("tipo 1"); lista.add(n); n = new TipoDeNoticiaForm(); n.setid("2"); n.setdescricao("tipo 2"); lista.add(n); n = new TipoDeNoticiaForm(); n.setid("3"); n.setdescricao("tipo 3"); lista.add(n); return lista; } public TipoDeNoticiaForm consultatipodenoticiapeloid(string id) { TipoDeNoticiaForm tipo = new TipoDeNoticiaForm(); tipo.setid(id); tipo.setdescricao("tipo " + id); return tipo; } }

48 TipoDeNoticia Apesar de simples, temos vários elementos utilizados em

49 ConsultarTipoDeNoticia.jsp page language="java" contenttype="text/html; charset=utf-8"%> taglib uri="/tags/struts-html" prefix="html"%> taglib uri="/tags/struts-bean" prefix="bean"%> taglib uri="/tags/struts-logic" prefix="logic"%> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>.: Consulta Tipos de Notícia :.</title> <link rel="stylesheet" href="css/estilo.css" type="text/css" /> </head> <body> <table width=90% border> <tr> <td colspan=4 align=center> <h2>consulta Tipo de Notícia</h2> </td> </tr> <tr> <td align=center>id</td> <td>descrição</td> <td>editar</td> </tr>

50 ConsultarTipoDeNoticia.jsp <logic:iterate id="tipo" name="tipos"> <tr> <td align=center><bean:write name="tipo" property="id" /></td> <td><bean:write name="tipo" property="descricao" /></td> <td><html:link page="/tipodenoticia.do?comando=editar" paramid="iddotipo" paramname="tipo" paramproperty="id"> <html:img src="imagens/edit.gif" border="0" /> </html:link> </tr> </logic:iterate> <tr> <td colspan=4 align=center><html:button onclick="window.location='paginainicial.do'" property="btnvoltar" value="sair" /></td> </table> </body> </html>

51 Consultas As consultas seguem o mesmo princípio: a Action salva uma coleção de objetos numa variável (geralmente) de sessão e através do logic:iterate a gente escreve os vários valores na tela

52 EditarTipoDeNoticia.jsp page language="java" contenttype="text/html; charset=utf-8"%> taglib uri="/tags/struts-html" prefix="html"%> taglib uri="/tags/struts-bean" prefix="bean"%> taglib uri="/tags/struts-logic" prefix="logic"%> <html:html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>.: Editar Tipo de Notícia :.</title> <link rel="stylesheet" href="css/estilo.css" type="text/css" /> </head> <body> <table width=90% border> <html:form action="/tipodenoticia?comando=confirmar" onsubmit="return validatetipodenoticiaform(this);"> <tr> <td colspan=3 align=center> <h2>edição de Tipo de Notícia</h2> </td> </tr>

53 EditarTipoDeNoticia.jsp <tr> <td align=center>id</td> <td><html:text name="tipo" property="id" /></td> </tr> <tr> <td align=center>descrição</td> <td><html:text name="tipo" property="descricao" /></td> </tr> <tr> <td colspan=3 align=center><html:submit value="confirmar" /><html:button onclick="action='tipodenoticia.do?comando=listar';submit()" value="sair" property="btnsair" /></td> </tr> </html:form> </table> </body> </html:html>

54 Edição O id de um dos objetos da lista é enviado pela url para a Action, executando o comando de edição A aplicação deve recuperar o objeto do banco e guardar seus valores em uma variável de sessão A página de edição espera essa variável e escreve seus valores através das tags html

55 DynaActionForm Formulário dinâmico baseado na interface java.util.map Não é necessário criar uma classe ActionForm Configurado no struts-config como um simples <form-bean> Grande flexibilidade Não utiliza reflexão

56 struts-config-form-beans.xml Adicione o form-bean para Fonte <form-bean name="fonteform" type="org.apache.struts.action.dynaactionform"> <form-property name="id" type="java.lang.string" /> <form-property name="descricao" type="java.lang.string" /> </form-bean> Os atributos podem usar todas as classes wrapper, collections e arrays Não é necessário criar a classe!

57 struts-config.xml Acrescente a Action para o novo form-bean Veja a diferença: nenhuma <action path="/fonte" type="net.noticias.action.fonteaction" name="fonteform" parameter="comando"> <forward name="mostrarpaginadeedicao" path="/editarfonte.jsp" /> <forward name="mostrarpaginadeconsulta" path="/consultarfontes.jsp"> </forward> </action>

58 FonteAction package net.noticias.action; import javax.servlet.http.*; import net.noticias.persistencia.*; import org.apache.struts.action.*; import org.apache.struts.actions.*; public class FonteAction extends DispatchAction { public ActionForward listar(actionmapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { DAOFonte dao = new DAOFonte(); request.setattribute("fontes", dao.consultafontes()); return mapping.findforward("mostrarpaginadeconsulta"); } }

59 Poucas diferenças o método para listar as fontes não difere dos outros A principal diferença fica por conta do DAO, pois os formulários dinâmicos não têm classes concretas Todos são implementados através de mapas

60 DAOFonte package net.noticias.persistencia; import java.util.*; public class DAOFonte { public Collection<Map<String, String>> consultafontes() { Collection<Map<String, String>> lista = new ArrayList<Map<String, String>>(); Map<String, String> mapa = new HashMap<String, String>(); mapa.put("id", "1"); mapa.put("descricao", "Fonte 1"); lista.add(mapa); mapa = new HashMap<String, String>(); mapa.put("id", "2"); mapa.put("descricao", "Fonte 2"); lista.add(mapa); mapa = new HashMap<String, String>(); mapa.put("id", "3"); mapa.put("descricao", "Fonte 3"); lista.add(mapa); return lista; } public Map<String, String> consultafontepeloid(string id) { Map<String, String> mapa = new HashMap<String, String>(); mapa.put("id", id); mapa.put("descricao", "Tipo " + id); return mapa; } }

61 Tudo é Map Como não há classe concreta, nosso valores ficam encapsulados em mapas Para fazer a persistência num banco relacional, você deve implementar utilitários que mapeiem os mapas para seus DTO s

62 ConsultarFontes.jsp page language="java" contenttype="text/html; charset=utf-8"%> taglib uri="/tags/struts-html" prefix="html"%> taglib uri="/tags/struts-bean" prefix="bean"%> taglib uri="/tags/struts-logic" prefix="logic"%> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>.: Consulta Notícias :.</title> <link rel="stylesheet" href="css/estilo.css" type="text/css" /> </head> <body> <table width=90% border> <tr> <td colspan=4 align=center> <h2>consulta Fontes</h2> </td> </tr> <tr> <td align=center>id</td> <td>descrição</td> <td>editar</td> </tr>

63 ConsultarFontes.jsp <logic:iterate id="fonte" name="fontes"> <tr> <td align=center><bean:write name="fonte" property="id" /></td> <td><bean:write name="fonte" property="descricao" /></td> <td><html:link page="/fonte.do?comando=editar" paramid="iddafonte" paramname="fonte" paramproperty="id"> <html:image src="imagens/edit.gif" /> </html:link> </tr> </logic:iterate> <tr> <td colspan=4 align=center><html:button onclick="window.location='paginainicial.do';submit()" property="btnvoltar" value="sair" /></td> </tr> </table> </body> </html>

64 Consulta com DynaActionForm A página de consulta é idêntica a todas as outras Atenção ao DAO, pois temos que usar apenas Map s

65 FonteAction public ActionForward editar(actionmapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { DAOFonte dao = new DAOFonte(); String id = request.getparameter("iddafonte"); request.setattribute("fonte", dao.consultafontepeloid(id)); return mapping.findforward("mostrarpaginadeedicao"); }

66 EditarFonte.jsp page language="java" contenttype="text/html; charset=utf-8"%> taglib uri="/tags/struts-html" prefix="html"%> taglib uri="/tags/struts-bean" prefix="bean"%> taglib uri="/tags/struts-logic" prefix="logic"%> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>.: Editar Fonte :.</title> <link rel="stylesheet" href="css/estilo.css" type="text/css" /> </head> <body> <table width=90% border> <html:form action="/fonte?comando=confirmar"> <tr> <td colspan=3 align=center> <h2>editar Fonte</h2> </td> </tr>

67 EditarFonte.jsp <tr> <td align=center>id</td> <td><html:text name="fonte" property="id" /></td> </tr> <tr> <td align=center>descrição</td> <td><html:text name="fonte" property="descricao" /></td> </tr> <tr> <td colspan=3 align=center><html:submit value="confirmar" /> <html:button onclick="action='fonte.do?comando=listar';submit()" value="sair" property="btnsair" /></td> </tr> </html:form> </table> </body> </html>

68 Edição com DynaActionForm Para preencher a página de edição precisamos fornecer um mapa com os atributos da fonteform public Map<String, String> consultafontepeloid(string id) { Map<String, String> mapa = new HashMap<String, String>(); mapa.put("id", id); mapa.put("descricao", "Tipo " + id); return mapa; }

69 A utilização de array s Em várias situações precisamos utilizar estruturas complexas, mas quando trabalhamos com ambientes web, temos uma série de limitações Não é interessante, por exemplo, transmitir objetos entre as requisições de usuário. Esse tipo de recurso deve ser evitado ao máximo Os valores transmitidos entre as páginas são sempre do tipo String e quando temos vários componentes em uma requisição com o mesmo nome, o request encapsula seus valores em um array E trabalhar com array sempre foi razoavelmente complicado

70 struts-config.xml Abaixo está a Action dessa nova funcionalidade O escopo está configurado para request. Depois do primeiro teste, mude para session O parâmetro attribute= noticia cria a variável noticia e a passa para a página seguinte, preenchida com os dados da página atual <action path="/selecaomultipladenoticias" type="net.noticias.action.selecaomultipladenoticiasaction" name="noticiaform" attribute="noticia" scope="request" parameter="comando"> <forward name="mostrarpaginadeconsulta" path="/selecaomultipladenoticias.jsp" /> <forward name="mostrarnoticiasselecionadas" path="/resultadodaselecaomultipladenoticias.jsp" /> </action>

71 SelecaoMultiplaDeNoticiasAction package net.noticias.action; import javax.servlet.http.*; import net.noticias.persistencia.*; import org.apache.struts.action.*; import org.apache.struts.actions.*; public class SelecaoMultiplaDeNoticiasAction extends DispatchAction { public ActionForward mostrartodasasnoticias(actionmapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { DAONoticia d = new DAONoticia(); request.setattribute("noticias", d.consultanoticias()); return mapping.findforward("mostrarpaginadeconsulta"); } public ActionForward mostrarasnoticiasselecionadas(actionmapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { return mapping.findforward("mostrarnoticiasselecionadas"); } }

72 Página de seleção A Action simplesmente envia uma coleção de notícias para a página de seleção que mostra seus valores com uma tag html:selection

73 SelecaoMultiplaDeNoticias.jsp page language="java" contenttype="text/html; charset=utf-8"%> taglib uri="/tags/struts-html" prefix="html"%> taglib uri="/tags/struts-bean" prefix="bean"%> taglib uri="/tags/struts-logic" prefix="logic"%> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>.: Consulta Notícias :.</title> <link rel="stylesheet" href="css/estilo.css" type="text/css" /> </head> <body> <table width=90% border> <html:form action="/selecaomultipladenoticias.do?comando=mostrarasnoticiasselecionadas"> <bean:size id="quantidadedenoticias" name="noticias" /> <tr> <td colspan=2 align=center> <h2><bean:write name="quantidadedenoticias" /> Notícia(s) Cadastrada(s)</h2> </td>

74 SelecaoMultiplaDeNoticias.jsp </tr> <tr> <td align=center>notícias: <td><html:select name="noticia" property="noticiasselecionadas" multiple="true"> <html:optionscollection name="noticias" value="id" label="titulo" /> </html:select></td> </tr> <tr> <td colspan=2 align=center><html:button onclick="submit()" property="btnselecionar" value="selecionar" /></td> </tr> </html:form> </table> </body> </html>

75 html:select e bean:size <html:select name="noticia" property="noticiasselecionadas" multiple="true"> <html:optionscollection name="noticias" value="id" label="titulo" /> </html:select> multiple= true Indica que esse select aceitará seleção múltipla Os itens selecionados serão armazenados em um array do formbean <bean:size id="quantidadedenoticias" name="noticias" /> Cria a variável quantidadedenoticias com a quantidade de itens do bean noticias <bean:write name="quantidadedenoticias" /> Escreve o valor da variável quantidadedenoticias

76 Tela de seleção

77 ResultadoDaSelecaoMultiplaDeNoticias.jsp page language="java" contenttype="text/html; charset=utf-8"%> taglib uri="/tags/struts-html" prefix="html"%> taglib uri="/tags/struts-bean" prefix="bean"%> taglib uri="/tags/struts-logic" prefix="logic"%> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>.: Seleção Múltipla de Notícia :.</title> <link rel="stylesheet" href="css/estilo.css" type="text/css" /> </head> <body> <table width=90% border> <bean:size id="quantidadedenoticiasselecionadas" name="noticia" property="noticiasselecionadas" /> <tr> <td colspan=2 align=center> <h2><bean:write name="quantidadedenoticiasselecionadas" /> Notícia(s) Selecionada(s)</h2> </td>

78 ResultadoDaSelecaoMultiplaDeNoticias.jsp </tr> <tr> <td align=center>id</td> </tr> <logic:iterate id="iddanoticiaselecionada" property="noticiasselecionadas" name="noticia"> <tr> <td align=center><bean:write name="iddanoticiaselecionada" /></td> </tr> </logic:iterate> <tr> <td colspan=2 align=center><html:button onclick="window.location='selecaomultipladenoticias.do?comando=mostrartodasasnoticias';submit()" property="btnselecionar" value="voltar" /><html:button onclick="window.location='paginainicial.do';submit()" value="sair" property="btnsair" /></td> </tr> </table> </body> </html>

79 bean:size e logic:iterate <bean:size id="quantidadedenoticiasselecionadas" name="noticia" property="noticiasselecionadas" /> Cria a variável quantidadedenoticiasselecionadas com a quantidade itens da property noticiasselecionadas do bean noticia <bean:write name="quantidadedenoticiasselecionadas" /> Escreve a quantidadedenoticiasselecionadas <logic:iterate id="iddanoticiaselecionada" property="noticiasselecionadas" name="noticia"> Cria a variável iddanoticiaselecionada com o valor de cada item do array <bean:write name="iddanoticiaselecionada" /> Escreve o id na tela

80 Tela de resultado

81 Agora é sua vez O Struts entrega os dados, mas o processamento quem faz é você Seguindo as boas práticas, agora é a vez consultar as notícias pelo id, através de uma fachada/dao Nunca coloque regras de negócio em suas Actions

82 Validation Framework A lógica de validação é escrita em arquivos XML Originado do Validator Framework do Jakarta Incluído no Struts a partir da versão 1.1 Permite validação declarativa para vários campos Valida datas, números, , cartão de crédito, código postar (USA), tamanhos, range e expressões regulares

83 Regras de Validação Regras são definidas para campos específicos de um form Já dispõe de vários validadores prontos required, minlength, maxlength, date, integer, mask Extensível: você pode criar seus próprios validadores

84 Validação do ActionForm Para usar o Validator, torne seus ActionForm s subclasses de ValidatorForm ou ValidatorActionForm Se estiver usando DynaActionForm, passe a extender de DynaValidatorForm ou DynaValidatorActionForm

85 NoticiaForm package net.noticias.form; import org.apache.struts.validator.*; public class NoticiaForm extends ValidatorActionForm { private String id; private String texto; private String titulo; private String data; private String tipodenoticia; private String[] noticiasselecionadas; {...} }

86 validation.xml Específico da sua aplicação Configuração das regras aplicadas a cada campo do seu formulário Torna desnecessário o método validate() do ActionForm

87 validator-rules.xml Fornecido pelo Struts Regras que já fazem parte do Validator Fica dentro da lib struts-core.jar, no pacote org.apache.struts.validator

88 Plugin Validator Para começar a usar o Validator, acrescente o plugin no struts-config.xml <plug-in classname="org.apache.struts.validator.validatorplugin"> <set-property property="pathnames" value="/org/apache/struts/validator/validator-rules.xml, /WEB-INF/validation.xml" /> </plug-in>

89 Validação no Cliente O Validator pode fazer a validação no lado do cliente Para tanto, acrescente a tag seguinte logo após o <head> Essa tag irá gerar todo o código javascript para validar seu formulário <head> <html:javascript formname="noticiaform" />

90 Validação no Cliente É gerado automaticamente um método javascript validatexxx, onde Xxx é o nome do seu formulário Atualize a tag html:form para seus formulários <html:form action="/noticia?comando=confirmar" onsubmit="return validatenoticiaform(this)">

91 MessageResources # erro.tipodenoticia.id.requerido={0} é requerido erro.tipodenoticia.descricao.requerido={0} é requerida # tipodenoticia.id=id tipodenoticia.descricao=descrição # noticia.id=id noticia.data=data # errors.required={0} is required. errors.minlength={0} can not be less than {1} characters. errors.maxlength={0} can not be greater than {1} characters. errors.invalid={0} is invalid. errors.byte={0} must be a byte. errors.short={0} must be a short. errors.integer={0} must be an integer. errors.long={0} must be a long. errors.float={0} must be a float. errors.double={0} must be a double. errors.date={0} is not a date. errors.range={0} is not in the range {1} through {2}. errors.creditcard={0} is an invalid credit card number. errors. ={0} is an invalid address.

92 Mensagens Personalizadas O Validator já tem várias mensagens configuradas (em inglês) Você pode definir suas próprias mensagens

93 validation.xml <?xml version="1.0" encoding="iso "?> <!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.3.0//EN" " <form-validation> <formset> <form name="tipodenoticiaform"> <field property="id" depends="required,integer"> <arg key="tipodenoticia.id" /> </field> <field property="descricao" depends="required"> <msg name="required" key="erro.tipodenoticia.descricao.requerido" /> <arg key="tipodenoticia.descricao" /> </field> </form>

94 validation.xml <form name="noticiaform"> <field property="id" depends="required,integer"> <arg key="noticia.id" /> </field> <field property="data" depends="required,date"> <arg key="noticia.data" /> <var> <var-name>datepattern</var-name> <var-value>dd/mm/yyyy</var-value> </var> </field> </form> </formset> </form-validation>

95 Regras de Validação <form name="tipodenoticiaform"> Nome do formulário definido no struts-config.xml <field property="id" depends="required,integer"> Nome da propriedade e suas dependências (definidas no validator-rules.xml) <arg key="tipodenoticia.id" /> Essa é a mensagem que substitui o parâmetro {0} no MessageResources caso o campo não tenha um valor válido <field property="descricao" depends="required"> <msg name="required" key="erro.tipodenoticia.descricao.requerido" /> Essa é a mensagem personalizada para o validador required <var-name>datepattern</var-name> <var-value>dd/mm/yyyy</var-value> Padrão para data. Veja a lista na documentação da SimpleDateFormat

96 Exemplo de Popup s Ao lado você pode ver alguns exemplos de mensagens No primeiro você pode ver uma mensagem padrão (em inglês) e uma personalizada Para entender o mecanismo de troca de mensagens, veja todos os arquivos envolvidos

97 Exercícios Crie as regras de validação para o Formulário FonteForm

98 JSP2.0 EL Linguagem padrão da Sun para a camada de apresentação Acesso conciso, rápido e prático Acessa subpropriedades dos beans Sintaxe incrivelmente simples É da Sun...

99 Concorrentes jsp:usebean e jsp:getproperty Não pode acessar subpropriedades do bean Complexo e nem um pouco prático bean:write Também não pode acessar subpropriedades do bean Não é a saída mais prática Elementos de script JSP Resulta em um código JSP impossível de manter Destrói o principal propósito do MVC

100 Instalação da EL Para instalar você só precisa alterar o cabeçalho do web.xml Já faz parte dos containers mais novos, como Tomcat 5 Parte integrante do JSP2.0

101 web.xml <?xml version="1.0" encoding="iso "?> <web-app xmlns=" xmlns:xsi=" xsi:schemalocation=" web-app_2_4.xsd" version="2.4"> {...} </web-app>

102 Invocando a EL Forma básica ${expressão} ${bean.propriedade} Você pode combiná-la com as demais notações <jsp:include page="${expr1}blah${expr2}" />

103 Exemplo com Struts taglib uri="/web-inf/struts-bean.tld" prefix="bean" %> <UL> <LI>First name: <bean:write name="contactformbean" property="firstname"/> <LI>Last name: <bean:write name="contactformbean" property="lastname"/> <LI> address: <bean:write name="contactformbean" property=" "/> <LI>Fax number: <bean:write name="contactformbean" property="faxnumber"/> </UL>

104 Agora com EL <UL> <LI>First name: ${contactformbean.firstname} <LI>Last name: ${contactformbean.lastname} <LI> address: ${contactformbean. } <LI>Fax number: ${contactformbean.faxnumber} </UL>

105 Exercícios No formulário de consulta notícias, combine as tags Struts com a JSP EL

Minicurso de MVC web com Struts. EclipseDay@Serpro Felipe F Nascimento felipenasc@inf.puc-rio.br

Minicurso de MVC web com Struts. EclipseDay@Serpro Felipe F Nascimento felipenasc@inf.puc-rio.br Minicurso de MVC web com Struts EclipseDay@Serpro Felipe F Nascimento felipenasc@inf.puc-rio.br Agenda MVC Web e Command Visão Geral, Conceitos e terminologia Exemplo Conceitos Avançados Referências Laboratório

Leia mais

J550. Apache Struts. Helder da Rocha (helder@acm.org) www.argonavis.com.br

J550. Apache Struts. Helder da Rocha (helder@acm.org) www.argonavis.com.br J550 Apache Struts Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 Sobre este módulo Este é um módulo opcional. Apresenta uma visão geral do framework Struts, usado para desenvolver aplicações

Leia mais

Curso de Introdução ao

Curso de Introdução ao Curso de Introdução ao Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br O que é? Struts Struts é um framework gratuito para construção de aplicações web implementadas em Java.

Leia mais

Prof. Roberto Desenvolvimento Web Avançado

Prof. Roberto Desenvolvimento Web Avançado Resposta exercício 1: Configuração arquivo web.xml helloservlet br.com.exercicios.helloservlet

Leia mais

Universidade Católica de Brasília Pró-Reitoria de Graduação Sistemas de Informação. na Prática. Por: Fernando Goulart

Universidade Católica de Brasília Pró-Reitoria de Graduação Sistemas de Informação. na Prática. Por: Fernando Goulart Universidade Católica de Brasília Pró-Reitoria de Graduação Sistemas de Informação Struts na Prática Por: Fernando Goulart 1 Leituras recomendadas Husted, Ted. Struts em Ação. Ciência Moderna, 2004. Spielman,

Leia mais

J2EE. Exemplo completo Utilização Servlet. Instrutor HEngholmJr

J2EE. Exemplo completo Utilização Servlet. Instrutor HEngholmJr J2EE Exemplo completo Utilização Servlet Instrutor HEngholmJr Page 1 of 9 AT09 Exemplo complete Utilização Servlet Version 1.1 December 5, 2014 Indice 1. BASEADO NOS EXEMPLOS DE CÓDIGO DESTA APOSTILA,

Leia mais

Associação Carioca de Ensino Superior Centro Universitário Carioca

Associação Carioca de Ensino Superior Centro Universitário Carioca Desenvolvimento de Aplicações Web Lista de Exercícios Métodos HTTP 1. No tocante ao protocolo de transferência de hipertexto (HTTP), esse protocolo da categoria "solicitação e resposta" possui três métodos

Leia mais

Desenvolvimento WEB em JAVA. Palestrante: Lourival F. de Almeida Júnior

Desenvolvimento WEB em JAVA. Palestrante: Lourival F. de Almeida Júnior Desenvolvimento WEB em JAVA Palestrante: Lourival F. de Almeida Júnior Agenda Introdução Servlet Arquitetura de Software Velocity Struts Conclusão Referências Introdução (antes) Programador Produto Introdução

Leia mais

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04 Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04 Agenda 1. 2. Web Container TomCat 2 3 J2EE permite criar aplicações Web dinâmicas (com conteúdo dinâmico)

Leia mais

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Ao projetar uma aplicação Web, é importante considerála como sendo formada por três componentes lógicos: camada

Leia mais

Java para WEB. Servlets

Java para WEB. Servlets Servlets Servlets são classes Java que são instanciadas e executadas em associação com servidores Web, atendendo requisições realizadas por meio do protocolo HTTP. Servlets é a segunda forma que veremos

Leia mais

Guia para Iniciantes do WebWork

Guia para Iniciantes do WebWork Guia para Iniciantes do WebWork Marcelo Martins Este guia descreve os primeiros passos na utilização do WebWork Introdução Desenvolver sistemas para Web requer mais do que simplesmente um amontoado de

Leia mais

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Java II Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Por quê JSP? Com Servlets é fácil Ler dados de um formulário Recuperar dados de uma requisição Gerar informação de resposta Fazer gerenciamento

Leia mais

Tutorial de NetBeans IDE Acessando banco de dados com Struts Data Source

Tutorial de NetBeans IDE Acessando banco de dados com Struts Data Source Tutorial de NetBeans IDE Acessando banco de dados com Struts Data Source Configuraçãoes e Software Antes de começar a escrita do código, você tem que certificar-se que tem todo o software necessário e

Leia mais

Web e Tecnologia Java: JSP/Servlets. Aula 10. Desenvolvimento em N Camadas

Web e Tecnologia Java: JSP/Servlets. Aula 10. Desenvolvimento em N Camadas Web e Tecnologia Java: JSP/Servlets 10.1 Aula 10 Introdução Desenvolvimento em N Camadas 10.2 A tendência atual no desenvolvimento de programas corporativos é fornecer estruturas de N camadas Objetiva-se

Leia mais

!" # # # $ %!" " & ' ( 2

! # # # $ %!  & ' ( 2 !"# # #$ %!" "& ' ( 2 ) *+, - 3 . / 4 !" 0( # "!#. %! $""! # " #.- $ 111.&( ( 5 # # 0. " % * $(, 2 % $.& " 6 # #$ %% Modelo (Encapsula o estado da aplicação) Implementado como JavaBeans Responde a consulta

Leia mais

Material de apoio a aulas de Desenvolvimento Web. Tutorial Java WEB JSP & HTML & CSS & CLASSE & OBJETOS. AAS - www.aas.pro.

Material de apoio a aulas de Desenvolvimento Web. Tutorial Java WEB JSP & HTML & CSS & CLASSE & OBJETOS. AAS - www.aas.pro. Material de apoio a aulas de Desenvolvimento Web Tutorial Java WEB JSP & HTML & CSS & CLASSE & OBJETOS AAS - www.aas.pro.net Março-2012 Este pequeno tutorial tem como objetivo conduzir o programador passo-a-passo

Leia mais

TUTORIAL DE INTRODUÇÃO AO CEWOLF

TUTORIAL DE INTRODUÇÃO AO CEWOLF 1 TUTORIAL DE INTRODUÇÃO AO CEWOLF CRIANDO GRÁFICOS COM JSP, CEWOLF/JFREECHART E MYSQL 1. Introdução O Cewolf (http://cewolf.sourceforge.net/) é uma biblioteca que facilita a criação de gráficos dinâmicos

Leia mais

WebWork 2. João Carlos Pinheiro. jcpinheiro@cefet-ma.br

WebWork 2. João Carlos Pinheiro. jcpinheiro@cefet-ma.br WebWork 2 João Carlos Pinheiro jcpinheiro@cefet-ma.br Versão: 0.5 Última Atualização: Agosto/2005 1 Agenda Introdução WebWork 2 & XWork Actions Views Interceptadores Validação Inversão de Controle (IoC)

Leia mais

4 A Camada de Apresentação

4 A Camada de Apresentação 4 A Camada de Apresentação O objetivo da camada de apresentação em uma aplicação multicamadas é de expor a lógica de negócios ao usuário e possibilitar a interação do usuário com a aplicação. Em aplicações

Leia mais

Evolução guiada por APIs. com REST para modernizar seu legado

Evolução guiada por APIs. com REST para modernizar seu legado Evolução guiada por APIs Option #2 híbrida Criando uma arquitetura com REST para modernizar seu legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da

Leia mais

J550. Model View Controller

J550. Model View Controller J550 Model View Controller 1 Design de aplicações JSP Design centrado em páginas Aplicação JSP consiste de seqüência de páginas (com ou sem beans de dados) que contém código ou links para chamar outras

Leia mais

Relatório do GPES. Conhecendo o Framework Struts

Relatório do GPES. Conhecendo o Framework Struts Relatório do GPES Relatório referente à criação da camada de regra de negócio com a utilização do Framework Struts para o desenvolvimento de um exemplo de Cadastro de Clientes. Conhecendo o Framework Struts

Leia mais

O que fazer ao receber o Caso de Uso NOMEDAENTIDADE CRUD?

O que fazer ao receber o Caso de Uso NOMEDAENTIDADE CRUD? O que fazer ao receber o Caso de Uso NOMEDAENTIDADE CRUD? Um caso de uso envolve uma regra de negocio com as telas e entidades associadas na operação. No documento é descrito todas as validações de tela

Leia mais

SILVIO COSTA MOREIRA UTILIZAÇÃO DO STRUTS FRAMEWORK NO DESENVOLVIMENTO DE UM GERENCIADOR DE EVENTOS

SILVIO COSTA MOREIRA UTILIZAÇÃO DO STRUTS FRAMEWORK NO DESENVOLVIMENTO DE UM GERENCIADOR DE EVENTOS SILVIO COSTA MOREIRA UTILIZAÇÃO DO STRUTS FRAMEWORK NO DESENVOLVIMENTO DE UM GERENCIADOR DE EVENTOS Palmas 2006 i SILVIO COSTA MOREIRA UTILIZAÇÃO DO STRUTS FRAMEWORK NO DESENVOLVIMENTO DE UM GERENCIADOR

Leia mais

DWR DIRECTED WEB REMOTING

DWR DIRECTED WEB REMOTING DWR DIRECTED WEB REMOTING Vamos ver nesse artigo um pouco sobre o Frameworks Ajax para Java, o DWR. Vamos ver seus conceitos, utilidades, vantagens, algumas práticas e fazer o passo a passo para baixar,

Leia mais

Aula 03 - Projeto Java Web

Aula 03 - Projeto Java Web Aula 03 - Projeto Java Web Para criação de um projeto java web, vá em File/New. Escolha o projeto: Em seguida, na caixa Categorias selecione Java Web. Feito isso, na caixa à direita selecione Aplicação

Leia mais

Java na Web. Aplicações Web

Java na Web. Aplicações Web Montando o ambiente com HSQLDB JSP com um conteúdo de banco de dados: JDBC Integre JSPs com servlets aplicando o Modelo-Visualização- Controle Montando o ambiente com HSQLDB Faça a transferênci da página

Leia mais

Estudo Dirigido - Parte 1

Estudo Dirigido - Parte 1 Linguagem Java para Web - JSP Professora Lucélia Estudo Dirigido - Parte 1 Na primeira parte deste tutorial, vamos receber os dados de um formulário e verificar se os dados foram ou não preenchidos. Se

Leia mais

Aula 4. Objetivos. Conteúdo dinâmico na internet.

Aula 4. Objetivos. Conteúdo dinâmico na internet. Aula 4 Objetivos Conteúdo dinâmico na internet. Para uma solicitação da Web mais simples, um navegador solicita um documento HTML e o servidor Web encontra o arquivo correspondente e devolve. Se o documento

Leia mais

Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP

Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP Software cliente: browser e outros Protocolo HTTP Infraestrutura de transporte

Leia mais

Acessando um Banco de Dados

Acessando um Banco de Dados Acessando um Banco de Dados Introdução Agora que você já está craque em JSP e já instalou seu servidor, vamos direto para a parte prática! Neste tutorial vamos aprender a acessar um banco de dados. Para

Leia mais

TUTORIAL JSP & SERVLET

TUTORIAL JSP & SERVLET TUTORIAL JSP & SERVLET A.A.S. UNINOVE WWW.AAS.PRO.BR Exemplo simples de JSP com Servlet (para envio e recebimento de dados) Sumário JSP & SERVLET... 2 1. Criando Projeto... 2 2. O primeiro JSP... 3 3.

Leia mais

Tecnologias Web. Java Enterprise Edition

Tecnologias Web. Java Enterprise Edition Tecnologias Web Java Enterprise Edition Cristiano Lehrer, M.Sc. Introdução Java Enterprise Edition (JEE): Plataforma de tecnologias para o desenvolvimento de aplicações corporativas distribuídas. É uma

Leia mais

Programação Web Aula 12 - Java Web Software

Programação Web Aula 12 - Java Web Software Programação Web Aula 12 - Java Web Software Bruno Müller Junior Departamento de Informática UFPR 25 de Maio de 2015 1 Java 2 Java Web Software 3 Servlets Modelo de Trabalho Funcionamento API Java Código

Leia mais

JSP (Java Server Pages)

JSP (Java Server Pages) JSP (Java Server Pages) André Tavares da Silva andre.silva@udesc.br JSP A linguagem surgiu por volta de 1995. JSP foi inicialmente inventado por Anselm Baird-Smith durante um final de semana e depois Satish

Leia mais

Java para Desenvolvimento Web

Java para Desenvolvimento Web Java para Desenvolvimento Web Servlets A tecnologia Servlet foi introduzida pela Sun Microsystems em 1996, aprimorando e estendendo a funcionalidade e capacidade de servidores Web. Servlets é uma API para

Leia mais

Java na WEB Componentes Bean

Java na WEB Componentes Bean 1 Java na WEB Componentes Bean Objetivo: Ao final da aula o aluno será capaz de: Criar site dinâmico utilizando componentes Bean Utilizar Tags de ação Empregar Coleções de Bean. Sumário 5. Definição de

Leia mais

Arquitetura de uma Webapp

Arquitetura de uma Webapp Arquitetura de uma Webapp Arquitetura J2EE Containers e componentes MVC: introdução Frederico Costa Guedes Pereira 2006 fredguedespereira@gmail.com Plataforma J2EE World Wide Web e a Economia da Informação

Leia mais

Programando em PHP. Conceitos Básicos

Programando em PHP. Conceitos Básicos Programando em PHP www.guilhermepontes.eti.br lgapontes@gmail.com Conceitos Básicos Todo o escopo deste estudo estará voltado para a criação de sites com o uso dos diversos recursos de programação web

Leia mais

Prática Sobre Servlets e JSP

Prática Sobre Servlets e JSP Prática Sobre Servlets e JSP 1. Localize a pasta do Tomcat (TOMCAT_HOME); 2. Acesse a pasta bin e execute tomcat5w.exe; 3. Abra o Navegador e acesse http://localhost:8080 (A apresentação de uma página

Leia mais

Lista de Revisão. 3. Analise a afirmativa a seguir como verdadeira ou falsa e justifique.

Lista de Revisão. 3. Analise a afirmativa a seguir como verdadeira ou falsa e justifique. Lista de Revisão 1. Nos sistemas web, geralmente os usuários apresentam dois problemas típicos, a desorientação e a sobrecarga cognitiva. Discorra sobre esses problemas. 2. Apresente as principais diferenças

Leia mais

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M JAVA Marcio de Carvalho Victorino 1 Servlets 2 1 Plataforma WEB Baseada em HTTP (RFC 2068): Protocolo simples de transferência de arquivos Sem estado (não mantém sessão aberta) Funcionamento (simplificado):

Leia mais

Introdução. História. Como funciona

Introdução. História. Como funciona Introdução O HTML é uma linguagem de marcação utilizada para desenvolvimento de sites. Esta linguagem surgiu junto com o HTTP, ambos possibilitaram a internet ser popularizada. História O HTML foi criado

Leia mais

Programação II Programação para a Web. Christopher Burrows

Programação II Programação para a Web. Christopher Burrows Programação II Programação para a Web Christopher Burrows Apache Tomcat O Apache Tomcat é um Servlet Container desenvolvido pela Apache Software Foundation. Implementa as tecnologias Java Servlets e Java

Leia mais

Manual de Integração Via Gadget. Passo a passo para realizar a integração entre websites e a plataforma Virtual Target.

Manual de Integração Via Gadget. Passo a passo para realizar a integração entre websites e a plataforma Virtual Target. Manual de Integração Via Gadget Passo a passo para realizar a integração entre websites e a plataforma Virtual Target. Manual de Integração Via Gadget 1. Introdução 1.1. O que é? Virtual Target Gadgets

Leia mais

Desenvolvimento Web com JSP/Servlets

Desenvolvimento Web com JSP/Servlets Desenvolvimento Web com JSP/Servlets Requisitos Linguagem Java; Linguagem SQL; Noções de HTML; Noções de CSS; Noções de Javascript; Configuração do ambiente JDK APACHE TOMCAT MySQL Instalando o JDK Instalando

Leia mais

Unidade 9: Middleware JDBC para Criação de Beans

Unidade 9: Middleware JDBC para Criação de Beans Programação Servidor para Sistemas Web 1 Unidade 9: Middleware JDBC para Criação de Beans Implementando MVC Nível 1 Prof. Daniel Caetano Objetivo: Preparar o aluno para construir classes de entidade com

Leia mais

Introdução ao framework web Apache Struts 2

Introdução ao framework web Apache Struts 2 Introdução ao framework web Apache Struts 2 Agenda Histórico Características Arquitetura Elementos Configurações Actions Resultados Exceções Internacionalização Interceptors Taglibs Validação Histórico

Leia mais

Criando e Entendendo o Primeiro Servlet Por: Raphaela Galhardo Fernandes

Criando e Entendendo o Primeiro Servlet Por: Raphaela Galhardo Fernandes Criando e Entendendo o Primeiro Servlet Por: Raphaela Galhardo Fernandes Resumo Neste tutorial serão apresentados conceitos relacionados a Servlets. Ele inicial como uma breve introdução do funcionamento

Leia mais

UNIDADE II JAVA SERVLETS

UNIDADE II JAVA SERVLETS UNIDADE II JAVA SERVLETS INTERNET É uma rede de redes, reunindo computadores do Governo, de universidades e empresas fornecendo infra-estrutura para uso de bancos de dados, correio eletrônico, servidores

Leia mais

" # $ %&'( ) *' ( +,)+ ( - $ (+*' 0 12 ' ( %+ -12 )+3 ) (4 )) ) % 12 ) *' (

 # $ %&'( ) *' ( +,)+ ( - $ (+*' 0 12 ' ( %+ -12 )+3 ) (4 )) ) % 12 ) *' ( ! " # $ %&'( ) *' ( +,)+ ( - $ (+*'.%/ 0 12 ' ( %+ -12 )+3 ) (4 )) ) % 12 ) *' ( 2 (5) '%'1%6% %/ )1%12 74 % +1%() %% % *8) + 9 "(:4 8) % ; *' 3 "( % '% + 4% % ) +' 455 %' 4 *' ( +% ) + %,)1 0 +

Leia mais

INTRODUÇÃO À TECNOLOGIA SERVLETS

INTRODUÇÃO À TECNOLOGIA SERVLETS PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB INTRODUÇÃO À TECNOLOGIA SERVLETS Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o conceito aplicações orientada a serviços via web Apresentar o papel dos contentores

Leia mais

EXERCÍCIOS DE REVISÃO DE CONTEÚDO QUESTÕES DISSERTATIVAS

EXERCÍCIOS DE REVISÃO DE CONTEÚDO QUESTÕES DISSERTATIVAS EXERCÍCIOS DE REVISÃO DE CONTEÚDO QUESTÕES DISSERTATIVAS 1. Explique a(s) diferença(s) entre design pattern e framework. 2. Analisar o arquivo de configurações (web.xml) abaixo identificando quais suas

Leia mais

Introdução. <facelets> Templates. Configurações. Componentes. Prof. Enzo Seraphim

Introdução. <facelets> Templates. Configurações. Componentes. Prof. Enzo Seraphim Introdução Templates Configurações Componentes Prof. Enzo Seraphim Definição Linguagem de descrição de páginas (PDL Page Description Language) criada para JSF. Estabelece templates que suportam

Leia mais

Servlets, JSPs e Java Beans

Servlets, JSPs e Java Beans Servlets, JSPs e Java Beans Prof. Pasteur Ottoni de Miranda Junior PUC Minas Disponível em www.pasteurjr.blogspot.com 1-Servlets 1.1 O que são Servlets são classes Java executadas em servidores web. Servem

Leia mais

Desenvolvimento de aplicações Web. Java Server Pages

Desenvolvimento de aplicações Web. Java Server Pages Desenvolvimento de aplicações Web Java Server Pages Hamilton Lima - athanazio@pobox.com 2003 Como funciona? Servidor web 2 Internet 1 Browser 3 Arquivo jsp 4 JSP Compilado 2 Passo a passo 1 browser envia

Leia mais

Parte I. Demoiselle Vaadin

Parte I. Demoiselle Vaadin Parte I. Demoiselle Vaadin O Vaadin é um framework para construção de interfaces web que aplica ideias inovadoras. Apesar de usar o GWT como mecanismo para a exibição de seus componentes, eles tem características

Leia mais

Programação para Internet II

Programação para Internet II Programação para Internet II Aulas 09 e 10 Fernando F. Costa nando@fimes.edu.br Linguagens de Expressão - EL É uma Linguagem de script que permite o acesso à componentes Java (JavaBeans) através de JSP.

Leia mais

Tutorial Jogo da Velha WEB

Tutorial Jogo da Velha WEB Tutorial Jogo da Velha WEB Criação do Projeto 1- Inicie o Eclipse 2- Crie um novo projeto Web dinâmico. 3- Na tela seguinte, digite o nome do projeto e caso no campo Target Runtime não estiver aparecendo

Leia mais

Aplicações de Linguagem de Programação Orientada a Objeto

Aplicações de Linguagem de Programação Orientada a Objeto Aplicações de Linguagem de Programação Orientada a Objeto WEB JSP Professora Sheila Cáceres JSP É uma tecnologia que permite incluir código Java dentro de páginas web. Uma página jsp é uma página HTML

Leia mais

JSP: JAVA SERVER PAGES

JSP: JAVA SERVER PAGES PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB JSP: JAVA SERVER PAGES Prof. Dr. Daniel Caetano 2011-2 Visão Geral 1 2 3 4 O que é um JSP? Tags de JSP Trocando um Servlet por JSP Atividade Material de Estudo Material

Leia mais

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Java II Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Servlets Servlet Aplicação Java que é executada no servidor que estende a capacidade do servidor Web Alternativa Java para os scripts CGI Gerenciado

Leia mais

Desenvolvimento de Aplicações Web. Prof. José Eduardo A. de O. Teixeira www.vqv.com.br / j.edu@vqv.com.br

Desenvolvimento de Aplicações Web. Prof. José Eduardo A. de O. Teixeira www.vqv.com.br / j.edu@vqv.com.br Desenvolvimento de Aplicações Web Programação Contextualização de aplicações Web: navegadores e servidores como interpretadores, tecnologias do lado do cliente (XHTML, CSS, Javascript) e do lado do servidor

Leia mais

JavaScript. JavaScript é uma linguagem de script usada em navegadores web. É uma linguagem dinâmica, estruturada e orientada em objetos.

JavaScript. JavaScript é uma linguagem de script usada em navegadores web. É uma linguagem dinâmica, estruturada e orientada em objetos. JavaScript JavaScript é uma linguagem de script usada em navegadores web. É uma linguagem dinâmica, estruturada e orientada em objetos. Pode ser usada dentro do próprio arquivo HTML ou estruturada em um

Leia mais

mkdir /srv/www/default/html/calculadora/imagens mkdir /srv/www/default/html/calculadora/blocos

mkdir /srv/www/default/html/calculadora/imagens mkdir /srv/www/default/html/calculadora/blocos Programando em PHP www.guilhermepontes.eti.br lgapontes@gmail.com Criando uma Calculadora Primeiramente deve se criar uma estrutura para armazenar os arquivos necessários para o funcionamento da calculadora.

Leia mais

Tutorial para criação de componentes JSF Facelets Por Érico GR 07/08/2007

Tutorial para criação de componentes JSF Facelets Por Érico GR 07/08/2007 Tutorial para criação de componentes JSF Facelets Por Érico GR 07/08/2007 Nível: Intermediário Este tutorial tem como objetivo criar um simples componente que renderiza uma tag label utilizando recursos

Leia mais

JSP: JAVA SERVER PAGES

JSP: JAVA SERVER PAGES PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB JSP: JAVA SERVER PAGES Prof. Dr. Daniel Caetano 2012-1 Objetivos Compreender o que é e como funciona o JSP Compreender as tags do JSP Capacitar para a substituição

Leia mais

Laboratório de Programação 3 Parte II 2 - Struts. Maj Mello SE/8 IME cgmello@de9.ime.eb.br http://www.des.ime.eb.br/~cgmello

Laboratório de Programação 3 Parte II 2 - Struts. Maj Mello SE/8 IME cgmello@de9.ime.eb.br http://www.des.ime.eb.br/~cgmello Laboratório de Programação 3 Parte II 2 - Struts Maj Mello SE/8 IME cgmello@de9.ime.eb.br http://www.des.ime.eb.br/~cgmello Introdução O Jakarta Struts é um framework MVC-2 criado por Craig R. McClanahan

Leia mais

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando

Leia mais

0,5 pelo negrito das palavras ID, Nome, E-mail e Analisar em outro momento.

0,5 pelo negrito das palavras ID, Nome, E-mail e Analisar em outro momento. IFES - Campus Cachoeiro de Itapemirim-ES Curso Técnico em Informática Disciplina: Programação Web Professor: Flávio Izo e Rafael Vargas Data: 07/04/2015 Aluno: GABARITO Valor: 12,5 Conteúdo: HTML + Formulários

Leia mais

Configurando uma aplicação Struts

Configurando uma aplicação Struts Configurando uma aplicação Struts Instalando os Softwares 1. NetBeans IDE 5.0 2. Java Standard Development Kit (JDK ) version 1.4.2 or 5.0 Criando uma nova aplicação Struts 1. Click File > New Project.

Leia mais

Minha primeira aplicação utilizando Java Server Faces + Glassfish

Minha primeira aplicação utilizando Java Server Faces + Glassfish Minha primeira aplicação utilizando Java Server Faces + Glassfish Este tutorial apresenta de forma simples, como iniciar no desenvolvimento com o framework Java Server faces 1.2, utilizando-se o servidor

Leia mais

ruirossi@ruirossi.pro.br

ruirossi@ruirossi.pro.br Persistência Com JPA & Hibernate Rui Rossi dos Santos ruirossi@ruirossi.pro.br Mediador: Rui Rossi dos Santos Slide 1 Mapeamento Objeto-Relacional Contexto: Linguagem de programação orientada a objetos

Leia mais

Universidade da Beira Interior

Universidade da Beira Interior Universidade da Beira Interior Relatório Apresentação Java Server Pages Adolfo Peixinho nº4067 Nuno Reis nº 3955 Índice O que é uma aplicação Web?... 3 Tecnologia Java EE... 4 Ciclo de Vida de uma Aplicação

Leia mais

J550 Tag Libraries e JSTL

J550 Tag Libraries e JSTL J550 Tag Libraries e JSTL Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 Custom tags JSP com JavaBeans fornecem um meio de diminuir código Java da página, mas não totalmente Designers de página

Leia mais

[MANUAL DE INTEGRAÇÃO PARA SITES DE MEMBROS]

[MANUAL DE INTEGRAÇÃO PARA SITES DE MEMBROS] 2011 [MANUAL DE INTEGRAÇÃO PARA SITES DE MEMBROS] Destinado a usuários que desejam vender conteúdo premium, disponível em sites de membros, através da plataforma Hotmart. Versão do documento: 1.0, 11/04/2011.

Leia mais

Boas Práticas de Desenvolvimento Seguro

Boas Práticas de Desenvolvimento Seguro Boas Práticas de Desenvolvimento Seguro Julho / 2.012 Histórico de Revisões Data Versão Descrição Autor 29/07/2012 1.0 Versão inicial Ricardo Kiyoshi Página 2 de 11 Conteúdo 1. SEGURANÇA DA INFORMAÇÃO

Leia mais

Objetos Implícitos. Conceito. Instanciados pelo próprio contêiner. Disponíveis em quaisquer páginas JSP.

Objetos Implícitos. Conceito. Instanciados pelo próprio contêiner. Disponíveis em quaisquer páginas JSP. Slide 1 Conceito Instanciados pelo próprio contêiner. Disponíveis em quaisquer páginas JSP. Instruções de criação inseridas no método _jspservice( ). Slide 2 Identificação e tipo Identificação Tipo application

Leia mais

Criação de Servlets Name Directory Build WAR JSP/Servlet frameworks Launch URL Package Class name Generate header comments

Criação de Servlets Name Directory Build WAR JSP/Servlet frameworks Launch URL Package Class name Generate header comments Criação de Servlets 1. Crie um novo projeto através do Menu File New Project. 2. Acesse o Menu File New. 3. Na janela Object Gallery que surgirá, selecione a guia Web. 4. Escolha o ícone que corresponde

Leia mais

Manual de Envio de Torpedos SMS Comtele. Introdução... 02. 1.Cadastrar um Grupo... 02. 2.Inserir ou Importar Contatos... 06. 2.1 Ordem de envio...

Manual de Envio de Torpedos SMS Comtele. Introdução... 02. 1.Cadastrar um Grupo... 02. 2.Inserir ou Importar Contatos... 06. 2.1 Ordem de envio... Manual de Envio de Torpedos SMS Comtele Índice Introdução... 02 1.Cadastrar um Grupo... 02 2.Inserir ou Importar Contatos... 06 2.1 Ordem de envio... 08 3.Criar e Enviar uma Mensagens... 12 4. Salvando

Leia mais

Curso de Engenharia de Computação DESENVOLVIMENTO DE SISTEMAS UTILIZANDO JAVA DESIGN PATTERNS: STRUTS, HIBERNATE, DAO E JSTL.

Curso de Engenharia de Computação DESENVOLVIMENTO DE SISTEMAS UTILIZANDO JAVA DESIGN PATTERNS: STRUTS, HIBERNATE, DAO E JSTL. i Curso de Engenharia de Computação DESENVOLVIMENTO DE SISTEMAS UTILIZANDO JAVA DESIGN PATTERNS: STRUTS, HIBERNATE, DAO E JSTL. William Patatas Soares Itatiba São Paulo Brasil Dezembro de 2006 ii Curso

Leia mais

PÓS-GRADUAÇÃO EM MATEMÁTICA COMPUTACIONAL INFORMÁTICA INSTRUMENTAL

PÓS-GRADUAÇÃO EM MATEMÁTICA COMPUTACIONAL INFORMÁTICA INSTRUMENTAL PÓS-GRADUAÇÃO EM MATEMÁTICA COMPUTACIONAL INFORMÁTICA INSTRUMENTAL Formulários HTML Aula 07: Formulários e Frames HTML Os formulários HTML são utilizados, geralmente, como entradas de dados prépreenchimento,

Leia mais

Apache Wicket. Apache Wicket

Apache Wicket. Apache Wicket wicket_ Apache Wicket Apache Wicket Um framework simplificado para construir páginas Web dinâmicas Qual desenvolvedor não gostaria de utilizar orientação a objetos na Web? Utilizar componentes reutilizáveis

Leia mais

MÓDULO Programação para Web 2

MÓDULO Programação para Web 2 MÓDULO Programação para Web 2 USANDO O JSF Continuação Interdependência e Injeção Instâncias de Managed Beans podem conversar entre si para dividir o processamento das requisições dos usuários de acordo

Leia mais

JavaServer Pages (JSP) Leonardo Gresta Paulino Murta leomurta@ic.uff.br

JavaServer Pages (JSP) Leonardo Gresta Paulino Murta leomurta@ic.uff.br JavaServer Pages (JSP) Leonardo Gresta Paulino Murta leomurta@ic.uff.br Especificação/IDE/Implementação Esse curso foi preparado em 03/2015 usando a seguinte especificação, IDE e implementação Especificação

Leia mais

HTML / JAVASCRIPT. A versão atual é o HTML5 (seus predecessores imediatos são HTML 4.01, XHTML 1.1, etc.).

HTML / JAVASCRIPT. A versão atual é o HTML5 (seus predecessores imediatos são HTML 4.01, XHTML 1.1, etc.). HTML / JAVASCRIPT Estamos iniciando o estudo do HTML através das TAGS (comandos) para construir formulários. Isso facilitará a continuidade dos nossos estudos da linguagem de programação JavaScript, a

Leia mais

Introdução ao PHP. Prof. Késsia Marchi

Introdução ao PHP. Prof. Késsia Marchi Introdução ao PHP Prof. Késsia Marchi PHP Originalmente PHP era um assíncrono para Personal Home Page. De acordo com convenções para atribuições de nomes recursivas do GNU foi alterado para PHP Hypertext

Leia mais

Conteúdo Dinâmico. Introdução. Interação Browser x Servidor Web. Interação Browser x Servidor Web

Conteúdo Dinâmico. Introdução. Interação Browser x Servidor Web. Interação Browser x Servidor Web Introdução Formulários rios & Conteúdo Dinâmico Mário Antonio Meireles Teixeira Dept o. de Informática - UFMA A Web surgiu inicialmente como uma nova forma de comunicação de informações, fazendo uso de

Leia mais

Material de Apoio Profº Alan Cleber Borim

Material de Apoio Profº Alan Cleber Borim Desenvolvimento Web...2 Java....2 O Tomcat...2 Instalando o ambiente da aplicação....3 Instalando o jdk JAVA...3 Instalando o Tomcat...3 Criando um novo ambiente de desenvolvimento...4 Definição de Servlet...7

Leia mais

Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser

Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser A1Criando um módulo de negócio Capítulo 27 Aplicação dividida em módulos - Introdução Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser compreendido como uma solução de

Leia mais

Lista e Tabelas. Fundamentos da Linguagem Web

Lista e Tabelas. Fundamentos da Linguagem Web Lista e Tabelas Fundamentos da Linguagem Web Bruno Angelo Medeiros Março de 2015 LISTAS O que são? Tipos Ordenadas Não ordenadas De definição Exemplos Exercícios LISTAS - O QUE SÃO? São uma forma de organização

Leia mais

Java para WEB JSTL. JavaServer Pages Standard Tag Library

Java para WEB JSTL. JavaServer Pages Standard Tag Library JSTL JSTL JavaServer Pages Standard Tag Library API que encapsulou em tags simples toda a funcionalidade que diversas páginas Web precisam, como controle de laços (fors), controle de fluxo do tipo if else,

Leia mais

Conteúdo. DHTML tópicos Hamilton Lima - 2002-2004

Conteúdo. DHTML tópicos Hamilton Lima - 2002-2004 DHTML tópicos Hamilton Lima - 2002-2004 Conteúdo 1. meu primeiro script... 2 2. DOM Document Object Model...2 3. tipo de execução de scripts...2 4. resposta a um evento... 3 5. tipos de dados, variaveis

Leia mais

Manual 2010 Webmaster

Manual 2010 Webmaster Manual 2010 Webmaster Menu 1. Acesso ao sistema 2. Campanhas 2.1 Ver Campanhas Disponíveis 2.2 Minhas Campanhas 3. Formatos 3.1 Banners Automáticos 3.2 Banners Manuais 3.3 E-mail Marketing 3.4 Vitrines

Leia mais

Como criar e editar Blogs. Manual Básico do. Mario Roberto Barro Jerino Queiroz Ferreira Profª Drª Salete Linhares Queiroz

Como criar e editar Blogs. Manual Básico do. Mario Roberto Barro Jerino Queiroz Ferreira Profª Drª Salete Linhares Queiroz Como criar e editar Blogs Manual Básico do Mario Roberto Barro Jerino Queiroz Ferreira Profª Drª Salete Linhares Queiroz São Carlos Setembro / 2008 Sumário Introdução...3 Criando um Blog no Edublogs...4

Leia mais

Escrito por Neri Neitzke Qua, 25 de Junho de 2014 14:51 - Última atualização Qua, 25 de Junho de 2014 14:54

Escrito por Neri Neitzke Qua, 25 de Junho de 2014 14:51 - Última atualização Qua, 25 de Junho de 2014 14:54 Java para Web 4, aprenda criar um sistema para web usando MVC (Model View Controller), DAO, JSTL, Custom Tags, HTML5, JavaScript, CSS3, Eclipse, Netbeans, postgresql powerdesigner. São 159 videoaulas em

Leia mais

Programação Web. Professor: Diego Oliveira. Conteúdo 02: JSP e Servlets

Programação Web. Professor: Diego Oliveira. Conteúdo 02: JSP e Servlets Programação Web Professor: Diego Oliveira Conteúdo 02: JSP e Servlets JSP JSP é um template de uma página Web que usa Java para gerar HTML dinamicamente JSP é considerado server-side e roda em um objeto

Leia mais

Curso de Java. Geração de Páginas WEB através de JSP. Todos os direitos reservados Klais

Curso de Java. Geração de Páginas WEB através de JSP. Todos os direitos reservados Klais Curso de Java Geração de Páginas WEB através de JSP Todos os direitos reservados Klais JSP e Servlets Servletsconstituem um mecanismo conveniente para a geração de páginas HTML dinâmicas e seu tratamento

Leia mais

Mini-curso de PHP. Aulas ministradas por: André Luis de Paula Arthur Kalsing Diego Silva

Mini-curso de PHP. Aulas ministradas por: André Luis de Paula Arthur Kalsing Diego Silva Mini-curso de PHP Aulas ministradas por: André Luis de Paula Arthur Kalsing Diego Silva Aula 1 Breve introdução de HTML, Conceitos básicos de PHP, Sintaxe, Separador de instruções e Comentários (Cap 1

Leia mais