Struts. Características Avançadas

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

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

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

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

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

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

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

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

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

!" # # # $ %!" " & ' ( 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões Prof. MSc. Hugo Souza Se você precisar manter informações sobre seus usuários enquanto eles navegam pelo seu site, ou até quando eles saem

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

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

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

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

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

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

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

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

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

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

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

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

www.coldfusionbrasil.com.br

www.coldfusionbrasil.com.br www.coldfusionbrasil.com.br 2000 PASSANDO VARIÁVEIS ATRAVÉS DE FORM E URL 3 ALTERA.CFM 3 FORMALTERA.CFM 4 ALTERA.CFM 4 FORMALTERA.CFM 4 CRIANDO E MANIPULANDO VARIÁVEIS COM CFSET 4 VALORES ESTÁTICOS 5 PARÂMETROS

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

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

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

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

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

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

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

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

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

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

Criando uma agenda simples com NetBeans 6.5

Criando uma agenda simples com NetBeans 6.5 Criando uma agenda simples com NetBeans 6.5 (Swing application framework e Beansbinding) Já faz algum tempo que escrevi uma agenda simples usando o Eclipse com o Visual Class Editor. Demorei em torno 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

PASSO A PASSO GOOGLE DOCS - FORMULÁRIOS GOOGLE DOCS

PASSO A PASSO GOOGLE DOCS - FORMULÁRIOS GOOGLE DOCS CEEBJA - PALOTINA CENTRO ESTADUAL DE EDUCAÇÃO BÁSICA PARA JOVENS E ADULTOS NRE- Toledo MUNICÍPIO: PALOTINA PASSO A PASSO GOOGLE DOCS - FORMULÁRIOS GOOGLE DOCS O Google Docs é uma das recentes ferramentas

Leia mais

Manual do Usuário CFCWeb BA

Manual do Usuário CFCWeb BA ÍNDICE Acesso ao sistema... 2 Tela Principal... 3 Cadastro de Candidatos... 5 Agenda Teórico... 6 Agenda Prático... 7 Consulta Agendamentos do Candidato por Serviço... 9 Cadastro de Grade Horária... 10

Leia mais

Para participar de um mapa colaborativo usando o Cmap Tools

Para participar de um mapa colaborativo usando o Cmap Tools Antes de trabalhar num mapa colaborativo, você deve instalar o software no seu computador. Pegue a sua cópia, gratuita, em http://cmap.ihmc.us/download/. Veja a versão compatível com o seu computador.

Leia mais

JavaScript (Funções, Eventos e Manipulação de Formulários)

JavaScript (Funções, Eventos e Manipulação de Formulários) Linguagem de Programação para Web JavaScript (Funções, Eventos e Manipulação de Formulários) Prof. Mauro Lopes 1-31 23 Objetivos Iremos avançar um pouco mais em nosso estudo sobre o JavaScript. Iremos

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

Gerenciamento de Contatos

Gerenciamento de Contatos Gerenciamento de Contatos O objetivo deste módulo é ajudar a gerenciar todos os contatos da empresa. Além dos dados mais importantes, o módulo permite cadastrar anotações e relacionar as tarefas e eventos

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

Mais sobre uso de formulários Site sem Ajax

Mais sobre uso de formulários Site sem Ajax Mais sobre uso de formulários Site sem Ajax Página com busca padrão 1 Página com o resultado da busca carregada no local da anterior (o formulário está vazio) Site com Ajax 2 Site usando Ajax para preencher

Leia mais

TUTORIAL DO ALUNO. Olá, bem vindo à plataforma de cursos a distância da Uniapae!!!

TUTORIAL DO ALUNO. Olá, bem vindo à plataforma de cursos a distância da Uniapae!!! TUTORIAL DO ALUNO Olá, bem vindo à plataforma de cursos a distância da Uniapae!!! O Moodle é a plataforma de ensino a distância utilizada pela Uniapae sendo a unidade de ensino para rápida capacitação

Leia mais

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Tiago Peres Souza 1, Jaime Willian Dias 1,2 ¹Universidade paranaense (Unipar) Paranavaí PR Brasil tiagop_ti@hotmail.com 2 Universidade

Leia mais

MANUAL DO ANIMAIL 1.0.0.1142 Terti Software

MANUAL DO ANIMAIL 1.0.0.1142 Terti Software O Animail é um software para criar campanhas de envio de email (email Marketing). Você pode criar diversas campanhas para públicos diferenciados. Tela Principal do sistema Para melhor apresentar o sistema,

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. TodososdireitosreservadosKlais

Curso de Java. Geração de Páginas WEB. TodososdireitosreservadosKlais Curso de Java Geração de Páginas WEB Aplicação WEB Numa aplicação WEB de conteúdo dinâmico As páginas são construídas a partir de dados da aplicação (mantidos num banco de dados). Usuários interagem com

Leia mais

Manual de Utilização

Manual de Utilização Manual de Utilização Versão 1.0 18/01/2013 Sempre consulte por atualizações deste manual em nossa página. O Cotação Web está em constante desenvolvimento, podendo ter novas funcionalidades adicionadas

Leia mais

AULA 3 FERRAMENTAS E APLICATIVOS DE NAVEGAÇÃO, DE CORREIO ELETRÔNICO, DE GRUPOS DE DISCUSSÃO, DE BUSCA E PESQUISA (PARTE II)

AULA 3 FERRAMENTAS E APLICATIVOS DE NAVEGAÇÃO, DE CORREIO ELETRÔNICO, DE GRUPOS DE DISCUSSÃO, DE BUSCA E PESQUISA (PARTE II) AULA 3 FERRAMENTAS E APLICATIVOS DE NAVEGAÇÃO, DE CORREIO ELETRÔNICO, DE GRUPOS DE DISCUSSÃO, DE BUSCA E PESQUISA (PARTE II) A seguir vamos ao estudo das ferramentas e aplicativos para utilização do correio

Leia mais

Escritório Virtual Administrativo

Escritório Virtual Administrativo 1 Treinamento Módulos Escritório Virtual Administrativo Sistema Office Instruções para configuração e utilização do módulo Escritório Virtual e módulo Administrativo do sistema Office 2 3 1. Escritório

Leia mais

WEBDESIGN. Professor: Paulo Marcos Trentin - paulo@paulotrentin.com.br http://www.paulotrentin.com.br Escola CDI de Videira

WEBDESIGN. Professor: Paulo Marcos Trentin - paulo@paulotrentin.com.br http://www.paulotrentin.com.br Escola CDI de Videira WEBDESIGN Professor: Paulo Marcos Trentin - paulo@paulotrentin.com.br http://www.paulotrentin.com.br Escola CDI de Videira Formulários e JavaScript Como visto anteriormente, JavaScript pode ser usada para

Leia mais

TUTORIAL SPRING SECURITY PROGRAMAÇÃO COM FRAMEWORKS Responsáveis: Ana Luíza Cruvinel, Maikon Franczak e Wendel Borges

TUTORIAL SPRING SECURITY PROGRAMAÇÃO COM FRAMEWORKS Responsáveis: Ana Luíza Cruvinel, Maikon Franczak e Wendel Borges Versão 1.0 TUTORIAL SPRING SECURITY PROGRAMAÇÃO COM FRAMEWORKS Responsáveis: Ana Luíza Cruvinel, Maikon Franczak e Wendel Borges Data: 01/12/2014 SUMÁRIO 1. INTRODUÇÃO... 2 2. O QUE É SPRING SECURITY?...

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

Web Browser como o processo cliente. Servidor web com páginas estáticas Vs. Aplicações dinâmicas para a Web:

Web Browser como o processo cliente. Servidor web com páginas estáticas Vs. Aplicações dinâmicas para a Web: Web Browser como o processo cliente Servidor web com páginas estáticas Vs Aplicações dinâmicas para a Web: 1 Cliente Web browser HTTP porto 80 Servidor web... JDBC RMI XML... Base de Dados Aplicação em

Leia mais

2 echo "PHP e outros.";

2 echo PHP e outros.; PHP (Hypertext Preprocessor) Antes de qualquer coisa, precisamos entender o que é o PHP: O PHP(Hypertext Preprocessor) é uma linguagem interpretada gratuita, usada originalmente apenas para o desenvolvimento

Leia mais

02 - Usando o SiteMaster - Informações importantes

02 - Usando o SiteMaster - Informações importantes 01 - Apresentação do SiteMaster - News Edition O SiteMaster foi desenvolvido para ser um sistema simples de gerenciamento de notícias, instalado em seu próprio computador e com configuração simplificada,

Leia mais

( TIAGO DOS SANTOS MENDES ) PROGRAMAÇÃO DISPOSITIVOS MOVEIS ANDROID STUDIO

( TIAGO DOS SANTOS MENDES ) PROGRAMAÇÃO DISPOSITIVOS MOVEIS ANDROID STUDIO Serviço Nacional de Aprendizagem Comercial E.E.P. Senac Pelotas Centro Histórico Programa Nacional de Acesso ao Ensino Técnico e Emprego Curso Técnico em Informática ( TIAGO DOS SANTOS MENDES ) PROGRAMAÇÃO

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

Criando um script simples

Criando um script simples Criando um script simples As ferramentas de script Diferente de muitas linguagens de programação, você não precisará de quaisquer softwares especiais para criar scripts de JavaScript. A primeira coisa

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

Parte I. Demoiselle Mail

Parte I. Demoiselle Mail Parte I. Demoiselle Mail Para o envio e recebimento de e-s em aplicativos Java, a solução mais natural é usar a API JavaMail [http:// www.oracle.com/technetwork/java/java/index.html]. Ela provê um framework

Leia mais

1 Cadastre-se Mozilla Firefox. AQUI Esqueci a senha Login Senha. Esqueci a senha E-mail Login Enviar Solicitação OBS: Nome: Login: E-mail:

1 Cadastre-se Mozilla Firefox. AQUI Esqueci a senha Login Senha. Esqueci a senha E-mail Login Enviar Solicitação OBS: Nome: Login: E-mail: 1 Essa é a tela de login do Sistema de Atendimento, siga o passo a passo abaixo. Se esse é o seu primeiro cadastro, clique em Cadastre-se. O sistema só irá funcionar perfeitamente se for acessado pelo

Leia mais

CONSTRUÇÃO DE BLOG COM O BLOGGER

CONSTRUÇÃO DE BLOG COM O BLOGGER CONSTRUÇÃO DE BLOG COM O BLOGGER Blog é uma abreviação de weblog, qualquer registro frequênte de informações pode ser considerado um blog (últimas notícias de um jornal online por exemplo). A maioria das

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Servidor de Aplicações WEB Tomcat Servidor Tomcat Foi desenvolvido

Leia mais

Manual Integra S_Line

Manual Integra S_Line 1 Introdução O é uma ferramenta que permite a transmissão Eletrônica de Resultado de Exames, possibilitando aos Prestadores de Serviços (Rede Credenciada), integrarem seus sistemas com os das Operadoras

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

Passo a Passo. WebSphere Message Broker. Fluxo como WebService

Passo a Passo. WebSphere Message Broker. Fluxo como WebService Passo a Passo WebSphere Message Broker Fluxo como WebService Alexandre José Batista ajbatist@ibest.com.br Criado em: 07/11/08 Página 1 de 38 Índice 1. OBJETIVOS DO DOCUMENTO... 4 2. CRIANDO UM FLUXO NO

Leia mais

GUIA BÁSICO DA SALA VIRTUAL

GUIA BÁSICO DA SALA VIRTUAL Ambiente Virtual de Aprendizagem - MOODLE GUIA BÁSICO DA SALA VIRTUAL http://salavirtual.faculdadesaoluiz.edu.br SUMÁRIO 1. Acessando Turmas 4 2. Inserindo Material 4 3. Enviando Mensagem aos Alunos 6

Leia mais

Está apto a utilizar o sistema, o usuário que tenha conhecimentos básicos de informática e navegação na internet.

Está apto a utilizar o sistema, o usuário que tenha conhecimentos básicos de informática e navegação na internet. 1. Descrição Geral Este manual descreve as operações disponíveis no módulo VTWEB Client, cuja finalidade é gerenciar cadastros de funcionários, realização de pedidos e controle financeiro dos pedidos.

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel Ambiente de Desenvolvimento Orientação a Objetos É uma técnica de desenvolvimento de softwares que consiste em representar os elementos do mundo

Leia mais

INTRODUÇÃO 12. DOCUMENTAÇÃO INTRODUÇÃO INTRODUÇÃO

INTRODUÇÃO 12. DOCUMENTAÇÃO INTRODUÇÃO INTRODUÇÃO INTRODUÇÃO 12. DOCUMENTAÇÃO Na plataforma Java SE 7, há cerca de 4000 classes e interfaces disponíveis para utilizarmos em nossas aplicações Podemos visualizar a documentação dessas classes e interfaces

Leia mais