Spring Framework. Parte 03 Spring MVC
|
|
- Arthur Paixão de Miranda
- 6 Há anos
- Visualizações:
Transcrição
1 Spring Framework Parte 03 Spring MVC
2 Spring MVC Módulo do Spring Framework que permite o desenvolvimento de aplicações web baseadas em ações (action based) bem como o desenvolvimento de serviços REST. Integra-se à API de Servlets. Suporta: Diversas tecnologias de visão tais como JSP/JSTL, Velocity, FreeMarker, Thymeleaf, Tiles, XSLT e Groovy Markup Templates. Processamento assíncrono. Internacionalização. Oferece funcionalidades de segurança e de testes. 2
3 Padrão front controller 2: HTTP request Handler mapping 3: Web controller 1: HTTP request 10: HTTP Response Dispatcher Servlet 4: HTTP request 5: model and view name Web controller 9: HTTP Response View 8: model 7: view 6: view name View resolver 3
4 Controlador web Objeto responsável por responder um conjunto de requisições HTTP. As requisições atendíveis podem ser especificadas através de padrões de URL, por cabeçalhos HTTP e por métodos HTTP. 4
5 Anotações e define um controlador definições das requisições HTTP a serem define um parâmetro query referencia parâmetros em URLs estilo REST. org.springframework.ui.model: para armazenar objetos acessados pela view. org.springframework.web.servlet.modelandview: para armazenar o nome da view e objetos acessados pela view. 5
6 Atualizando as configurações Adicionar JSTL como dependência no pom.xml: <dependency> <groupid>javax.servlet</groupid> <artifactid>jstl</artifactid> </dependency> 6
7 Atualizando as configurações Disponibilizando o contexto do Spring para o contexto da aplicação web: public class SpringMVCServlet extends AbstractAnnotationConfigDispatcherServletInitializer protected Class<?>[] getrootconfigclasses() { return new Class[]{AppConfig.class; 7
8 CRUD Fabricante: listagem Controlador web (1): package cursospring.revenda_veiculos.web; import org.springframework.beans.factory.annotation.autowired; import org.springframework.stereotype.controller; import org.springframework.ui.model; import org.springframework.web.bind.annotation.requestmapping; public class CRUDFabricante private FabricanteRepository repositorio; 8
9 CRUD Fabricante: listagem Controlador web public String inicio(model model){ model.addattribute("fabricantes", repositorio.todos()); return "fabricantes/inicio"; 9
10 CRUD Fabricante: listagem Controlador web public String inicio(model model){ model.addattribute("fabricantes", repositorio.todos()); return "fabricantes/inicio"; Visão (página) a ser renderizada com os dados inseridos em model. 10
11 CRUD Fabricante: listagem Página src/main/webapp/web- INF/views/fabricantes/inicio.jsp (1): page language="java" contenttype="text/html; charset=iso " pageencoding="iso "%> taglib uri=" prefix="c"%> <!DOCTYPE html> <html> <head> <title>fabricantes</title> </head> <body> <h2>fabricantes</h2> <table> <tr> <th>fabricante</th> <th colspan="2">opções</th> </tr> 11
12 CRUD Fabricante: listagem Página src/main/webapp/web- INF/views/fabricantes/inicio.jsp (2): <c:foreach var="fabricante" items="${fabricantes"> <tr> <td>${fabricante.descricao</td> <td> EXCLUIR </td> <td> ALTERAR </td> </tr> </c:foreach> </table> </body> </html> 12
13 CRUD Fabricante: exclusão Controlador web (1): public class CRUDFabricante { 13
14 CRUD Fabricante: exclusão Controlador web public String Integer idfabricante, Model model){ try{ repositorio.excluir(idfabricante); model.addattribute("mensagem", "Fabricante excluído com sucesso."); catch(exception ex){ ex.printstacktrace(); model.addattribute("mensagem", "Ocorreu um erro durante a operação."); return "forward:/fabricantes"; 14
15 CRUD Fabricante: exclusão Controlador web public String Integer idfabricante, Model model){ try{ repositorio.excluir(idfabricante); model.addattribute("mensagem", "Fabricante excluído com sucesso."); catch(exception ex){ ex.printstacktrace(); model.addattribute("mensagem", return "forward:/fabricantes"; Como queremos voltar à listagem "Ocorreu um erro durante de fabricantes a operação."); após a exclusão, aproveitamos o método inicio realizando um forward para a URL /fabricantes. 15
16 CRUD Fabricante: exclusão fabricante/inicio.jsp: <h2>fabricantes</h2> <c:url var="actionurl" value="/fabricantes" /> <c:if test="${not empty mensagem"> <p style="border: 1px solid black;">${mensagem</p> </c:if> <table> <td>${fabricante.descricao</td> <td> <a href="${actionurl/excluir?id=${fabricante.id"> EXCLUIR </a> </td> 16
17 Forward e Redirect É comum que após processar uma requisição o controlador web direcione o fluxo da aplicação para uma página diferente da utilizada na submissão. Temos duas formas disponíveis: forward e redirect. Diferença básica: No forward o processamento é realizado no servidor. No redirect a mudança de página é feita pelo browser. 17
18 Forward As mudanças de URL são todas processadas no servidor antes da resposta ser enviada ao cliente. Por haver apenas uma requisição, o mesmo contexto de requisição é utilizado pelas páginas e métodos envolvidos no processamento. O mesmo model fica disponível a todos os métodos Java. Ao final do processamento da requisição, a URL na barra de endereços do navegador não muda. Assim, o reload da página resultante irá executar a requisição original. 18
19 Forward 19
20 Redirect É um mecanismo especificado pelo HTTP. Dois passos. Ao receber uma requisição, a aplicação pede ao browser para acessar uma segunda URL. Por isso a URL na barra de endereços muda. O pedido é um recurso do HTTP: código 301 ou 302 e cabeçalho Location. O reload de página não repetirá a requisição original, mas sim a segunda URL. Como acontecem duas requisições, os dados da primeira requisição, não estarão disponíveis no contexto da segunda requisição. Um model diferente por método Java. 20
21 Redirect 21
22 Flash scope Utilizado para manter dados que devem estar disponíveis após um redirect. Para utilizar o flash scope basta declarar um parâmetro do tipo RedirectAttributes. 22
23 CRUD Fabricante: exclusão com redirect Controlador web (1): import org.springframework.web.servlet.mvc.support.redirectattributes; public class CRUDFabricante { 23
24 CRUD Fabricante: exclusão com redirect Controlador web public String Integer idfabricante, RedirectAttributes redattr){ try{ repositorio.excluir(idfabricante); redattr.addflashattribute("mensagem", "Fabricante excluído com sucesso."); catch(exception ex){ ex.printstacktrace(); redattr.addflashattribute("mensagem", "Ocorreu um erro durante a operação."); return "redirect:/fabricantes"; 24
25 CRUD Fabricante: novo registro Atualizando pom.xml com bean validation: <dependency> <groupid>javax.validation</groupid> <artifactid>validation-api</artifactid> </dependency> <dependency> <groupid>org.hibernate</groupid> <artifactid>hibernate-validator</artifactid> </dependency> 25
26 CRUD Fabricante: novo registro Decorando Fabricante com anotações da bean validation: import javax.validation.constraints.notnull; public class Fabricante private String descricao; 26
27 CRUD Fabricante: novo registro inicio.jsp link para um novo registro: <h2>fabricantes</h2> <c:url var="actionurl" value="/fabricantes" /> <c:if test="${not empty mensagem"> <p style="border: 1px solid black;">${mensagem</p> </c:if> <a href="${actionurl/novo">novo fabricante</a> <table> 27
28 CRUD Fabricante: novo registro Controlador web método novo: import org.springframework.web.servlet.modelandview; import public ModelAndView novo(){ ModelAndView modelandview = new ModelAndView("fabricantes/edicao"); modelandview.addobject("fabricante", new Fabricante()); modelandview.addobject("titulo", "Novo Fabricante"); return modelandview; 28
29 CRUD Fabricante: novo registro Controlador web método novo: import org.springframework.web.servlet.modelandview; import public ModelAndView novo(){ ModelAndView modelandview = new ModelAndView("fabricantes/edicao"); modelandview.addobject("fabricante", new Fabricante()); modelandview.addobject("titulo", "Novo Fabricante"); return modelandview; O objeto fabricante será utilizado para receber os valores do campos do formulário. 29
30 CRUD Fabricante: novo registro Controlador web método novo: import org.springframework.web.servlet.modelandview; import public ModelAndView novo(){ ModelAndView modelandview = new ModelAndView("fabricantes/edicao"); modelandview.addobject("fabricante", new Fabricante()); modelandview.addobject("titulo", "Novo Fabricante"); return modelandview; É informado o título da página pois a mesma página será utilizada nas operações de novo fabricante e edição de fabricante. 30
31 CRUD Fabricante: novo registro Página edicao.jsp (1): page language="java" contenttype="text/html; charset=iso " pageencoding="iso "%> taglib uri=" prefix="c"%> taglib uri=" prefix="form" %> <!DOCTYPE html> <html> <head> <title>${titulo</title> </head> <body> <h2>${titulo</h2> <c:url var="actionurl" value="/fabricantes/salvar" /> 31
32 CRUD Fabricante: novo registro Página edicao.jsp (1): page language="java" contenttype="text/html; charset=iso " pageencoding="iso "%> taglib uri=" prefix="c"%> taglib uri=" prefix="form" %> <!DOCTYPE html> <html> <head> <title>${titulo</title> Biblioteca de tags Spring para </head> manipulação de formulários. <body> <h2>${titulo</h2> <c:url var="actionurl" value="/fabricantes/salvar" /> 32
33 CRUD Fabricante: novo registro Página edicao.jsp (2): <form:form action="${actionurl" method="post" modelattribute="fabricante"> <label for="descricao">descrição</label> <form:input path="descricao"/> <form:errors path="descricao" cssstyle="color: red"/> <form:hidden path="id"/> <input type="hidden" name="titulo" value="${titulo"> <br> <button type="submit">salvar</button> </form:form> </body> </html> 33
34 CRUD Fabricante: novo registro Página edicao.jsp (2): <form:form action="${actionurl" method="post" modelattribute="fabricante"> <label for="descricao">descrição</label> <form:input path="descricao"/> <form:errors path="descricao" cssstyle="color: red"/> <form:hidden path="id"/> <input type="hidden" name="titulo" value="${titulo"> <br> <button type="submit">salvar</button> </form:form> </body> </html> Define o identificador do objeto que será utilizado (binding) para receber/preencher os campos do formulário. O objeto será inserido no contexto do model. Note que este é o identificador a ser utilizado no controlador para acessar os campos do formulário. 34
35 CRUD Fabricante: novo registro Controlador web método salvar (1): import javax.validation.valid; import org.springframework.validation.bindingresult; import org.springframework.web.bind.annotation.modelattribute; import method=requestmethod.post) public Fabricante fabricante, BindingResult String titulo, Model model, RedirectAttributes rattrs){ if(br.haserrors()){ model.addattribute("titulo", titulo); return "fabricantes/edicao"; 35
36 CRUD Fabricante: novo registro Indica Controlador que os atributos web do método salvar (1): Indica que o spring deve injetar um objeto import objeto org.springframework.validation.bindingresult; devem ser validados presente no contexto do model e que é import segundo org.springframework.web.bind.annotation.modelattribute; as anotações da identificado pela string fabricante. Na import Bean org.springframework.web.bind.annotation.requestmethod; Validation. página, usamos o mesmo method=requestmethod.post) public Fabricante fabricante, BindingResult String titulo, Model model, RedirectAttributes rattrs){ if(br.haserrors()){ model.addattribute("titulo", titulo); return "fabricantes/edicao"; Armazena o resultado da validação. 36
37 CRUD Fabricante: novo registro Controlador web método salvar (2): try{ if(fabricante.getid() == null) repositorio.inserir(fabricante); else repositorio.atualizar(fabricante); rattrs.addflashattribute("mensagem", "Fabricante salvo com sucesso."); catch(exception ex){ ex.printstacktrace(); rattrs.addflashattribute("mensagem", "Ocorreu um erro durante a operação."); return "redirect:/fabricantes"; 37
38 CRUD Fabricante: alterar registro inicio.jsp link de edição: <td> <a href="${actionurl/editar/${fabricante.id"> ALTERAR </a> </td> 38
39 CRUD Fabricante: alterar registro Controlador web: import public String Integer id, Model model){ Fabricante f = repositorio.getporid(id); if(f == null) return "forward:/fabricantes"; model.addattribute("fabricante", f); model.addattribute("titulo", "Alterar Fabricante"); return "fabricantes/edicao"; 39
40 Outras tags Spring para formulários checkbox: produz um campo input do tipo checkbox. Pode ser associada a atributos com um ou muitos valores (coleções e arrays). Quando seu valor não é indicado, é assumido o tipo boolean. checkboxes: gera vários campos do tipo checkbox a partir de uma coleção. radiobutton: produz uma tag input do tipo radio. radiobuttons: gera um conjunto relacionado de radio buttons a partir de uma coleção. password: gera uma tag input do tipo password. option: gera uma tag option para um campo select. options: opções de um campo select gerados a partir de uma coleção. textarea: produz uma tag textarea. 40
41 CRUD Veículo Classe Foto: package cursospring.revenda_veiculos.dominio; import public class Foto private byte[] bytes; private String mimetype; public Foto() { public Foto(byte[] bytes, String mimetype) { this.bytes = bytes; this.mimetype = mimetype; //getters e setters 41
42 CRUD Veículo Classe Veiculo (1): package cursospring.revenda_veiculos.dominio; import javax.persistence.basic; import javax.persistence.embedded; import javax.persistence.entity; import javax.persistence.fetchtype; import javax.persistence.joincolumn; import javax.persistence.manytoone; import javax.persistence.table; import javax.validation.constraints.min; import javax.validation.constraints.notnull; public class Veiculo extends Entidade { 42
43 CRUD Veículo Classe private private String placa; private String private Foto private Integer cilindradas; 43
44 CRUD Veículo Classe @JoinColumn(name="ID_MODELO") private Modelo modelo; public Veiculo() { public Veiculo(Integer id, String placa){ super(id); this.placa = placa; 44
45 CRUD Veículo Classe Veiculo (4): public String getmimetypefoto() { if(foto!= null) return foto.getmimetype(); return null; //getters e setters 45
46 CRUD Veículo create-schema.sql: create table VEICULOS (ID int auto_increment, ANOFABRICACAO int not null, PLACA varchar(10) not null, CHASSI varchar(50), CILINDRADAS int, BYTES blob, MIMETYPE varchar(50), ID_MODELO int not null, primary key(id), foreign key(id_modelo) references MODELOS); drop-schema.sql: drop table VEICULOS; 46
47 CRUD Veículo Interface VeiculoRepositorio: package cursospring.revenda_veiculos.dominio; import java.util.list; public interface VeiculoRepositorio { public Integer inserir(veiculo v); public void excluir(integer id); public List<Veiculo> todos(); public Veiculo getporid(integer id); public Foto getfoto(integer idveiculo); 47
48 CRUD Veículo Classe VeiculoDAO (1): package cursospring.revenda_veiculos.dao; import java.util.list; import org.hibernate.query; import org.hibernate.session; import org.hibernate.sessionfactory; import org.springframework.beans.factory.annotation.autowired; import org.springframework.stereotype.repository; import org.springframework.transaction.annotation.transactional; import cursospring.revenda_veiculos.dominio.foto; import cursospring.revenda_veiculos.dominio.veiculo; public class VeiculoDAO implements VeiculoRepositorio { 48
49 CRUD Veículo Classe VeiculoDAO private SessionFactory public Integer inserir(veiculo v) { sessionfactory.getcurrentsession().save(v); return public void excluir(integer id) { String hql = "delete Veiculo where id = :idveiculo"; Session session = sessionfactory.getcurrentsession(); Query q = session.createquery(hql). setparameter("idveiculo", id); q.executeupdate(); 49
50 CRUD Veículo Classe VeiculoDAO public List<Veiculo> todos() { Session session = sessionfactory.getcurrentsession(); return session.createquery("from public Veiculo getporid(integer id) { Session session = sessionfactory.getcurrentsession(); return (Veiculo)session.get(Veiculo.class, id); 50
51 CRUD Veículo Classe VeiculoDAO public Foto getfoto(integer idveiculo) { String hql = "select v.foto from Veiculo v where v.id = :id "; Session session = sessionfactory.getcurrentsession(); Query q = session.createquery(hql). setparameter("id", idveiculo); return (Foto)q.uniqueResult(); 51
52 CRUD Veículo Página veiculos/inicio.jsp (1): page language="java" contenttype="text/html; charset=iso " pageencoding="iso "%> taglib uri=" prefix="c"%> <!DOCTYPE html> <html> <head> <title>veículos</title> </head> <body> <h2>veículos</h2> <c:url var="actionurl" value="/veiculos" /> <c:if test="${not empty mensagem"> <p style="border: 1px solid black;">${mensagem</p> </c:if> <a href="${actionurl/novo">novo veículo</a> 52
53 CRUD Veículo Página veiculos/inicio.jsp (2): <table> <tr> <th>placa</th> <th>fabricante</th> <th>modelo</th> <th>ano</th> <th>cilindradas</th> <th colspan="2">opções</th> </tr> <c:foreach var="veiculo" items="${veiculos"> <tr> <td>${veiculo.placa</td> <td>${veiculo.modelo.fabricante.descricao</td> <td>${veiculo.modelo.descricao</td> <td>${veiculo.anofabricacao</td> <td>${veiculo.cilindradas</td> 53
54 CRUD Veículo Página veiculos/inicio.jsp (3): <td> <a href="${actionurl/excluir/${veiculo.id"> EXCLUIR </a> </td> </tr> </c:foreach> </table> </body> </html> 54
55 CRUD Veículo Página veiculos/edicao.jsp (1): page language="java" contenttype="text/html; charset=iso " pageencoding="iso "%> taglib uri=" prefix="c"%> taglib uri=" prefix="form" %> <!DOCTYPE html> <html> <head> <title>novo veículo</title> </head> <body> <h2>novo veículo</h2> <c:url var="actionurl" value="/veiculos/salvar" /> <form:form action="${actionurl" method="post" modelattribute="veiculo" > 55
56 CRUD Veículo Página veiculos/edicao.jsp (2): <label for="placa">placa</label> <form:input path="placa"/>* <form:errors path="placa" cssstyle="color: red"/><br> <label for="anofabricacao">ano</label> <form:input path="anofabricacao"/>* <form:errors path="anofabricacao" cssstyle="color: red"/><br> <label for="cilindradas">cilindradas</label> <form:input path="cilindradas"/> <form:errors path="cilindradas" cssstyle="color: red"/><br> <label for="chassi">chassi</label> <form:input path="chassi"/> <form:errors path="chassi" cssstyle="color: red"/><br> 56
57 CRUD Veículo Página veiculos/edicao.jsp (3): <label for="selectmodelo">modelo</label> <form:select path="modelo.id" id="selectmodelo" > <form:options items="${modelos" itemvalue="id" itemlabel="descricao" /> </form:select> <form:errors path="modelo" cssstyle="color: red"/><br> <button type="submit">salvar</button> </form:form> </body> </html> 57
58 CRUD Veículo Classe CRUDVeiculo (1): package cursospring.revenda_veiculos.web; import java.util.list; import javax.validation.valid; import org.springframework.beans.factory.annotation.autowired; import org.springframework.stereotype.controller; import org.springframework.ui.model; import org.springframework.validation.bindingresult; import org.springframework.web.bind.annotation.modelattribute; import org.springframework.web.bind.annotation.pathvariable; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.requestmethod; import org.springframework.web.servlet.modelandview; import org.springframework.web.servlet.mvc.support.redirectattributes; import cursospring.revenda_veiculos.dominio.modelo; import cursospring.revenda_veiculos.dominio.modelorepository; 58
59 CRUD Veículo Classe CRUDVeiculo (2): import cursospring.revenda_veiculos.dominio.veiculo; public class CRUDVeiculo private VeiculoRepositorio private ModeloRepository public List<Modelo> listademodelos(){ return modelorepositorio.todos(); 59
60 CRUD Veículo Classe CRUDVeiculo (2): import cursospring.revenda_veiculos.dominio.veiculo; public class CRUDVeiculo insere retorno do método no private VeiculoRepositorio veiculorepositorio; contexto model. Assim, a de modelos ficará disponível private ModeloRepository modelorepositorio; para as páginas acessadas através deste public List<Modelo> listademodelos(){ return modelorepositorio.todos(); 60
61 CRUD Veículo Classe CRUDVeiculo public ModelAndView inicio(){ ModelAndView modelandview = new ModelAndView("veiculos/inicio"); modelandview.addobject("veiculos", veiculorepositorio.todos()); return public ModelAndView novo(){ ModelAndView modelandview = new ModelAndView("veiculos/edicao"); modelandview.addobject("veiculo", new Veiculo()); return modelandview; 61
62 CRUD Veículo Classe CRUDVeiculo method=requestmethod.post) public Veiculo veiculo, BindingResult br, Model model, RedirectAttributes rattrs){ if(br.haserrors()){ return "veiculos/edicao"; try{ veiculorepositorio.inserir(veiculo); rattrs.addflashattribute("mensagem", "Veículo salvo com sucesso."); catch(exception ex){ ex.printstacktrace(); rattrs.addflashattribute("mensagem", "Ocorreu um erro durante a operação."); return "redirect:/veiculos"; 62
63 CRUD Veículo Classe CRUDVeiculo public String Integer id, RedirectAttributes redattr){ try{ veiculorepositorio.excluir(id); redattr.addflashattribute("mensagem", "Veículo excluído com sucesso."); catch(exception ex){ ex.printstacktrace(); redattr.addflashattribute("mensagem", "Ocorreu um erro durante a operação."); return "redirect:/veiculos"; 63
64 CRUD Veículo Classe ModeloDAO: public class ModeloDAO implements ModeloRepository { 64
65 CRUD Veículo: upload da foto Dependência para upload de arquivos: <dependency> <groupid>commons-fileupload</groupid> <artifactid>commons-fileupload</artifactid> </dependency> 65
66 CRUD Veículo: upload da foto Classe AppConfig adição do bean gerenciador de uploads: import public CommonsMultipartResolver multipartresolver(){ CommonsMultipartResolver resolver = new CommonsMultipartResolver(); resolver.setmaxuploadsize(1024 * 1024 * 5); resolver.setmaxinmemorysize(1024 * 1024 * 5); return resolver; 66
67 CRUD Veículo: upload da foto Página veiculos/edicao.jsp: <form:form action="${actionurl" method="post" modelattribute="veiculo" enctype="multipart/form-data"> <label for="arquivofoto">foto</label> <input type="file" name="arquivofoto" accept="image/*"/> <button type="submit">salvar</button> </form:form> 67
68 CRUD Veículo: upload da foto CRUDVeiculo atualização do método salvar method=requestmethod.post) public Veiculo veiculo, BindingResult br, Model model, RedirectAttributes MultipartFile file){ if(br.haserrors()){ return "veiculos/edicao"; try{ if(file!= null){ Foto foto = new Foto(file.getBytes(), file.getcontenttype()); veiculo.setfoto(foto); 68
69 CRUD Veículo: upload da foto CRUDVeiculo atualização do método salvar method=requestmethod.post) public Veiculo veiculo, BindingResult br, Model model, RedirectAttributes MultipartFile file){ if(br.haserrors()){ return "veiculos/edicao"; try{ Será preenchido com o arquivo if(file!= null){ submetido. Note que a string Foto foto = new Foto(file.getBytes(), arquivofoto corresponde ao nome file.getcontenttype()); dado ao campo presente no veiculo.setfoto(foto); formulário de submissão. 69
70 CRUD Veículo: upload da foto CRUDVeiculo atualização do método salvar (2): veiculorepositorio.inserir(veiculo); rattrs.addflashattribute("mensagem", "Veículo salvo com sucesso."); catch(exception ex){ ex.printstacktrace(); rattrs.addflashattribute("mensagem", "Ocorreu um erro durante a operação."); return "redirect:/veiculos"; 70
71 CRUD Veículo: acessando a foto com Ajax veiculos/inicio.jsp (1): <head> <c:url var="actionurl" value="/veiculos" /> <title>veículos</title> <script src=" </script> <script src=" </script> <script> $(function() { $("#dialogfoto").dialog({ autoopen: false ); ); 71
72 CRUD Veículo: acessando a foto com Ajax veiculos/inicio.jsp (1): <head> <c:url var="actionurl" value="/veiculos" /> <title>veículos</title> <script src=" </script> <script src=" </script> <script> $(function() { $("#dialogfoto").dialog({ autoopen: false ); ); Esta instrução foi movida para o início da tag head para que a URL já esteja disponível aos scripts em JS. 72
73 CRUD Veículo: acessando a foto com Ajax veiculos/inicio.jsp (2): function verfoto(idveiculo){ var imgurl = '${actionurl/foto/'+idveiculo; $('#imgfoto').attr('src', imgurl); $('#dialogfoto').dialog("open"); </script> </head> 73
74 CRUD Veículo: acessando a foto com Ajax veiculos/inicio.jsp (3): <td>${veiculo.cilindradas</td> <td> <c:choose> <c:when test="${not empty veiculo.foto"> <a href="#" onclick="verfoto(${veiculo.id)"> VER FOTO </a> </c:when> <c:otherwise> -- </c:otherwise> </c:choose> </td> 74
75 CRUD Veículo: acessando a foto com Ajax veiculos/inicio.jsp (4): </table> <div id="dialogfoto" title="foto" style="border: 1px black solid;"> <img id="imgfoto"> </div> </body> 75
76 CRUD Veículo: acessando a foto com Ajax CRUDVeiculo método public ResponseEntity<byte[]> foto(@pathvariable Integer id){ Foto foto = veiculorepositorio.getfoto(id); HttpHeaders headers = new HttpHeaders(); String[] tokens = foto.getmimetype().split("/"); MediaType mimetype = new MediaType(tokens[0], tokens[1]); headers.setcontenttype(mimetype); return new ResponseEntity<>(foto.getBytes(), headers, HttpStatus.OK); 76
77 CRUD Veículo: acessando a foto com Ajax CRUDVeiculo método public ResponseEntity<byte[]> foto(@pathvariable Integer id){ Foto foto = veiculorepositorio.getfoto(id); HttpHeaders headers = new HttpHeaders(); String[] tokens = foto.getmimetype().split("/"); MediaType mimetype = new MediaType(tokens[0], tokens[1]); headers.setcontenttype(mimetype); return new ResponseEntity<>(foto.getBytes(), headers, HttpStatus.OK); Um ResponseEntity representa dados a serem inseridos na resposta HTTP. Pelo tipo de retorno deste método, SringMVC entende que não deve renderizar uma visão. 77
78 Pesquisa de veículo: Ajax + JSON Adicionar biblioteca Jackson ao pom.xml: <dependency> <groupid>com.fasterxml.jackson.core</groupid> <artifactid>jackson-databind</artifactid> </dependency> 78
79 Pesquisa de veículo: Ajax + JSON VeiculoRepositorio: método getpormodelo import java.util.list; public interface VeiculoRepositorio { public List<Veiculo> getpormodelo(integer idmodelo); 79
80 Pesquisa de veículo: Ajax + JSON VeiculoDAO: public class VeiculoDAO implements VeiculoRepositorio public List<Veiculo> getpormodelo(integer idmodelo) { String hql = "from Veiculo v where v.modelo.id = :id "; Session session = sessionfactory.getcurrentsession(); Query q = session.createquery(hql).setparameter("id", idmodelo); return q.list(); 80
81 Pesquisa de veículo: Ajax + JSON CRUDVeiculo: package cursospring.revenda_veiculos.web; import java.util.list; import org.springframework.web.bind.annotation.responsebody; public class CRUDVeiculo public String paginadebusca(){ public List<Veiculo> pesquisar(@requestparam Integer idmodelo){ return veiculorepositorio.getpormodelo(idmodelo); 81
82 Pesquisa de veículo: Ajax + JSON CRUDVeiculo: package cursospring.revenda_veiculos.web; import java.util.list; import org.springframework.web.bind.annotation.responsebody; public class CRUDVeiculo public String paginadebusca(){ return "veiculos/busca"; Indica que a resposta do método deve ser colocada no payload da resposta HTTP. Por padrão, Spring MVC converterá os objetos Java retornados pelo método em uma public List<Veiculo> pesquisar(@requestparam Integer idmodelo){ return veiculorepositorio.getpormodelo(idmodelo); 82
83 Pesquisa de veículo: Ajax + JSON Página veiculos/busca.jsp (1): <%@ page language="java" contenttype="text/html; charset=iso " pageencoding="iso "%> <%@ taglib uri=" prefix="c"%> <!DOCTYPE html> <html> <head> <c:url var="actionurl" value="/veiculos" /> <title>veículos</title> <script src=" </script> <script> $(document).ready(function($){ $('#formpesquisa').submit(function(event){ event.preventdefault(); buscar(); ); ) 83
84 Pesquisa de veículo: Ajax + JSON Página veiculos/busca.jsp (2): function buscar(){ $.getjson('${actionurl/pesquisar', $('#formpesquisa').serialize(), function(data){ var linhas = ''; for(var i=0; i<data.length; i++){ linhas += '<tr><td>'+data[i].placa+'</td>'+ '<td>'+data[i].modelo.descricao+'</td>'+ '<td>'+data[i].anofabricacao+'</td></tr>'; console.log(">>"+linhas); var $tbody = $('#tabelaveiculos').children('tbody'); $tbody.empty(); $tbody.append(linhas); ); </script> 84
85 Pesquisa de veículo: Ajax + JSON Página veiculos/busca.jsp (3): </head> <body> <h2>busca de Veículos</h2> <form id="formpesquisa"> <select name="idmodelo"> <c:foreach var="modelo" items="${modelos"> <option value="${modelo.id">${modelo.descricao</option> </c:foreach> </select> <input type="submit" value="pesquisar"> </form> <table id="tabelaveiculos"> <thead> <tr> <th>placa</th> <th>modelo</th> <th>ano</th> 85
86 Pesquisa de veículo: Ajax + JSON Página veiculos/busca.jsp (4): </tr> </thead> <tbody> </tbody> </table> </body> </html> 86
87 Servindo conteúdo estático É preciso registrar um gerenciador de recursos. import public class AppWebConfig extends public void addresourcehandlers(resourcehandlerregistry registry){ registry.addresourcehandler("/resources/**").addresourcelocations("/resources/"); 87
88 Servindo conteúdo estático É preciso registrar um gerenciador de recursos. import URL de acesso aos arquivos. public class AppWebConfig extends public void addresourcehandlers(resourcehandlerregistry registry){ registry.addresourcehandler("/resources/**").addresourcelocations("/resources/"); Diretório em que se encontram os arquivos (JS, CSS, imagens, etc). 88
89 Servindo conteúdo estático index.jsp: taglib uri=" prefix="c"%> taglib uri=" prefix="form" %> <html> <body> <h2>hello World!</h2> <img src="resources/logo.jpg" > </body> </html> 89
90 Servindo conteúdo estático index.jsp: taglib uri=" prefix="c"%> taglib uri=" prefix="form" %> Repare que não é necessário o uso da <html> tag c:url para obter o endereço <body> completo da URL resources. <h2>hello World!</h2> <img src="resources/logo.jpg" > </body> </html> 90
91 Referências Johnson, Rod et al. Spring Framework Reference Documentation, release. Disponível em < Márcio d Ávila. Informações úteis sobre cabeçalhos HTTP e tipos MIME. Disponível em < Paraschiv, Eugen. Serve static resources with Spring. Disponível em < Souza, Alberto. Spring MVC: domine o principal framework web Java. São Paulo: Casa do Código, Stack Overflow. JSTL tag wiki. Disponível em < 91
92 Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Campus Natal Central Diretoria Acadêmica de Gestão e Tecnologia da Informação Curso de formação em Spring Framework 4 Parte 03 Spring MVC Autor: Alexandre Gomes de Lima Natal, outubro de
Spring Framework. Parte 05 Spring Security
Spring Framework Parte 05 Spring Security Introdução Spring Security é um framework para facilitar a incorporação de funcionalidades relativas ao controle de acesso necessárias às aplicações. Possui recursos
Leia maisSpring Framework. Parte 04 transações
Spring Framework Parte 04 transações Spring e transações O uso de transações é recorrente no desenvolvimento de sistema corporativos. Spring provê suporte ao controle de transações de duas maneiras: programática
Leia maisSpring Framework. Parte 02 acesso a dados e testes de integração
Spring Framework Parte 02 acesso a dados e testes de integração H2 Database H2 é um SGBDR escrito em Java que pode atuar tanto no modo embutido como na forma clienteservidor. Após instalação, executar
Leia maisSpring Framework. Parte 01 introdução e primeiros passos
Spring Framework Parte 01 introdução e primeiros passos O que é Spring Framework? É um framework de apoio ao desenvolvimento de aplicações corporativas em Java que surgiu como uma alternativa à complexa
Leia maisPROJETO ECLIPSE: Estrutura do projeto: (Dynamic Web Project) LIBS: Java WebDeveloper. Prof. Edson Belém
PROJETO ECLIPSE: Estrutura do projeto: (Dynamic Web Project) LIBS: antlr-2.7.7.jar aspectjweaver-1.8.13.jar attoparser-2.0.4.release.jar classmate-1.3.4.jar dom4j-1.6.1.jar hibernate-commons-annotations-5.0.1.final.jar
Leia maisSPRING - VALIDAÇÃO. Altere o arquivo formulario.jsp como segue:
Altere o arquivo formulariojsp como segue: SPRING - VALIDAÇÃO
Leia maisPROJETO WEB: Java. Prof Fernando Gomes
PROJETO WEB: Este projeto nos mostra uma página JSP que contém um formulário para digitarmos um número inteiro. Na mesma página, o sistema retorna se esse número é primo ou não - caso não seja primo, retorna
Leia maisLista de exercícios I - RESPOSTAS Servlets e banco de dados
www.posse.ueg.br Home Page: http://www.posse.ueg.br/index.php/conexao-ueg/meuperfil/userprofile/ronaldo Dado o diagrama de classe abaixo: Lista de exercícios I - RESPOSTAS Servlets e banco de dados 1.
Leia maisDesenvolvimento Web com Java. Sérgio Lopes Caelum -
Desenvolvimento Web com Java Sérgio Lopes Caelum - http://www.caelum.com.br sergio.lopes@caelum.com.br Sérgio Lopes Desenvolvedor Java desde 2002 Instrutor de Java pela Caelum Trabalho com Web e Celulares
Leia maisHTML BÁSICO E TEMPLATE VIEW. Gabrielle Amorim Porto
HTML BÁSICO E TEMPLATE VIEW Gabrielle Amorim Porto HTML BÁSICO E TEMPLATE VIEW Hypertext Markup Language Linguagem de marcação de hipertexto; Descreve a estrutura das páginas Web utilizando tags. HTML
Leia maisO que faz um servidor/navegador web? 14/03/2016 Rômulo da Silva Lima Slid e 2
HTML O que faz um servidor/navegador web? e 2 O que é? HyperText Markup Language Utilizada para produzir páginas WEB Documentos escritos na linguagem HTML podem ser traduzidos por browser O HTML utiliza
Leia mais2 Criar uma Enterprise Application que num módulo EJB irá conter um ou vários Beans.
Enterprise java Bens Folha 8-1 Session beans A Aplicação cliente que acede a um session bean (Exemplo retirado de: https://netbeans.org/kb/docs/javaee/entappclient.html) 1 Criar uma Java Class Library
Leia maisTUTORIAL INTEGRAÇÃO SPRING, HIBERNATE E MYSQL
TUTORIAL INTEGRAÇÃO SPRING, HIBERNATE E MYSQL Nesse tutorial será mostrado como integrar o uso do Spring MVC com Hibernate e MySQL para desenvolver aplicações web. Será utilizado o Spring Tools Suite,
Leia maisTutorial 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 maisCOM222 DESENVOLVIMENTO DE SISTEMAS WEB. Aula 01: HTML e CSS
COM222 DESENVOLVIMENTO DE SISTEMAS WEB Aula 01: HTML e CSS 2 Conteúdo Noções introdutórias HTML CSS HTML: HyperText Markup Language 3 Linguagem usada para construir páginas Web Função principal Estruturar
Leia maisJava para WEB com Struts 2 e Hibernate
Java para WEB com Struts 2 e Hibernate Aula 01 http://fernandoanselmo.orgfree.com fernando.anselmo74@gmail.com Apresentação Fernando Anselmo fernando.anselmo74@gmail.com 25 anos na área de Desenvolvimento
Leia maisJava Server Faces Navegação de
Java Server Faces Navegação de Páginas Prof. Rodrigo Henrique Cunha Palácios rodrigopalacios@utfpr.edu.br Slides fornecidos pelo professor Prof. Edson Shozo Nishi Navegação de Páginas Controle de fluxo
Leia maisPrimeiros Passos com Spring MVC por Normandes Junior
Primeiros Passos com Spring MVC por Normandes Junior 1ª Edição, 10/02/2016 2016 AlgaWorks Softwares, Treinamentos e Serviços Ltda. Todos os direitos reservados. Nenhuma parte deste livreto pode ser reproduzida
Leia maisjquery Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Desenvolvimento de Sistemas web
jquery Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Desenvolvimento de Sistemas web Introdução jquery é uma biblioteca JavaScript que tem como objetivo principal facilitar a programação
Leia maisTable of Contents
Table of Contents Introdução Rotas ngroute $routeparams Parametros Customizados Resolve $locationchangestart e $locationchangesuccess Controladores Variavel Função Diretivas Customizadas Atributo 1.1 1.2
Leia maisProgramaçã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 maisPLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE
PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE ATO CONVOCATÓRIO Nº 006/2016 CONTRATO DE GESTÃO IGAM Nº 002/IGAM/2012 09/2017 1 PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE ATO CONVOCATÓRIO
Leia maisJSP Standard Tag Library (JSTL)
JSP JSTL JSP Standard Tag Library (JSTL) Esforço de padronização do JCP: JSR-152 Baseado no Jakarta Taglibs (porém bem menor) Oferece dois recursos Conjunto padrão de tags básicos (Core, XML, banco de
Leia maisObjetivos. Aprender o que são JavaBeans e como podem ser usados em páginas JSPs Usando ações-padrão ao invés de scripts
JSP Mais Recursos Objetivos Aprender o que são JavaBeans e como podem ser usados em páginas JSPs Usando ações-padrão ao invés de scripts Usando atributos Quando o atributo é uma String
Leia maisJSP (JAVASERVER PAGES)
UNIDADEC Nesta unidade, você irá conhecer a tecnologia JSP (JavaServer Pages). JSP permite implementar páginas dinâmicas na web. As páginas JSP contêm marcas HTML e instruções Java. O objetivo desta unidade
Leia maisEXERCÍ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 maisDesenvolvimento para Web em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM Lamarck Heinsch Mestrando PPGI/CT/UFSM
Desenvolvimento para Web em Java Profa Andréa Schwertner Charão DLSC/CT/UFSM Lamarck Heinsch Mestrando PPGI/CT/UFSM Tecnologias Web Java (OO) Fonte: Wikipedia Tecnologias Web em Java Java SE: Applets Java
Leia maisJSP Standard Tag Library (JSTL)
JSP JSTL JSP Standard Tag Library (JSTL) Esforço de padronização do JCP: JSR-152 Baseado no Jakarta Taglibs (porém bem menor) Oferece dois recursos Conjunto padrão de tags básicos (Core, XML, banco de
Leia maisAJAX. Prof. Marcos Alexandruk
Prof. Marcos Alexandruk m.alexandruk@hotmail.com Asynchronous JavaScript and XML Não é uma "nova tecnologia" Utiliza os recursos já existentes do JavaScript Jesse James Garret utilizou o termo pela primeira
Leia maisAULA 07 HIBERNATE. Ao término desse capítulo você terá aprendido: Fundamentos do MVC Estrutura dos pacotes no NetBeans
AULA 07 HIBERNATE Ao término desse capítulo você terá aprendido: Fundamentos do MVC Estrutura dos pacotes no NetBeans O JDBC é uma das maneiras mais diretas para desenvolver um aplicativo Java que interaja
Leia maisRegras de Navegação e Templates
Regras de Navegação e Templates Primeiras páginas Paulo Ricardo Lisboa de Almeida 1 Instanciando a aplicação Clone o projeto da aula com o Git (disponível no site da disciplina) Suba o banco de dados Crie
Leia maisConstruindo um sistema simples de cadastro de fornecedores em PHP e MySQL.
Construindo um sistema simples de cadastro de fornecedores em PHP e MySQL. Procuraremos mostrar os principais procedimentos para fazer um cadastro de registros numa base de dados MySQL utilizando a linguagem
Leia maisProgramação para web HTML: Formulários
Programação para web HTML: Formulários Professor: Harlley Lima E-mail: harlley@decom.cefetmg.br Departamento de Computação Centro Federal de Educação Tecnológica de Minas Gerais Belo Horizonte, 9 de março
Leia maisJSP Standard Tag Library (JSTL)
JSP JSTL JSP Standard Tag Library (JSTL) Esforço de padronização do JCP: JSR-152 Baseado no Jakarta Taglibs (porém bem menor) Oferece dois recursos Conjunto padrão de tags básicos (Core, XML, banco de
Leia maisREST. Representational State Transfer. É um estilo arquitetural usado por muitas aplicações Web para estender as suas funcionalidades.
REST Representational State Transfer É um estilo arquitetural usado por muitas aplicações Web para estender as suas funcionalidades. Não é um padrão. Exemplo ASP.NET Web API namespace WebAPIApp.Models
Leia maisMapeando Relacionamentos Entre Classes com Anotações Hibernate Por: Raphaela Galhardo Fernandes Gleydson de Azevedo F. Lima
Classes com Anotações Hibernate Por: Raphaela Galhardo Fernandes Gleydson de Azevedo F. Lima Resumo Este tutorial destina-se a apresentar alguns exemplos de mapeamentos de associações/relacionamentos entre
Leia maisPROJETOS EXEMPLO DE ASP.NET MVC
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIAS E TECNOLOGIAS DO RIO GRANDE DO NORTE PROFESSOR: JOSÉ ANTÔNIO DA CUNHA PROJETOS EXEMPLO DE ASP.NET MVC Projeto 1: Projeto 2: Implementando o CRUD em ASP.NET MVC,
Leia maisDesenvolvimento de Aplicações para Internet
Desenvolvimento de Aplicações para Internet CSS Celso Olivete Júnior olivete@fct.unesp.br HTML Formatando o documento... Formulário Responsável por fazer a interação entre os dados fornecidos pelo usuário
Leia maisUploadde arquivos com o método POST
Uploadde arquivos com o método POST O PHP é capaz de receber o uploadde qualquer browser que siga as normas da W3C. Isto permite que se faça o uploadde arquivos de texto e binários. Com as funções de autenticação
Leia maisProfessor Jefferson Chaves Jefferson de Oliveira Chaves
Professor Jefferson Chaves Jefferson.chaves@ifc-araquari.edu.br Entrada de dados; Formulários Escopo de variáveis; $_GET, $_POST e as variáveis $_SUPERGLOBAIS; O método isset( ); As declarações include
Leia maisDesenvolvimento 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 maisJSP e Servlet Princípio de MVC
UNIPÊ Centro Universitário de João Pessoa Desenvolvimento para Web HTTP e Servlets JSP e Servlet Princípio de MVC ducaribas@gmail.com 1 12 JSP e Servlets Desvantagens de JSP e Servlets Servlets Escrever
Leia maisTrabalhando com Servlet
Trabalhando com Servlet Primeiro Servlet O primeiro passo a ser dado é criar uma classe Java como qualquer outra. Essa nova classe criada deve estender a classe abstrata HttpServlet pertencente ao pacote
Leia maisTutorial 1 Configuração Apache Tomcat no NetBeans 8.0 (passo a passo)
Nome do laboratório: Laboratório de Programação Ferramenta 1 -NetBeans 8.0 WEB Elaborado por: Osmar de Oliveira Braz Junior Descrição Este tutorial tem como objetivo mostrar a construção de aplicações
Leia maisA composição de uma Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos)
Desenvolvimento de Sistemas Web A composição de uma Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos) Prof. Mauro Lopes 1-31 24 Objetivos Dando continuidade aos estudos sobre JSP,
Leia maisO que é uma tag Tag tag tag tag tag tags tags HTML O que é uma tag library biblioteca de tags tags Java Standard Tag Library JSTL Tag Library JSTL
O que é uma tag Tag é uma tecnologia para o ambiente JSP. Um desenvolvedor pode usar código Java para criar um pequeno componente reutilizável que pode ser colocado na página JSP para executar alguma tarefa
Leia maisEngenharia de Software
UNIVERSIDADE DE LISBOA INSTITUTO SUPERIOR TÉCNICO Engenharia de Software LEIC/LETI, 3 o Ano, 2 o Semestre 2 o Teste, 17 de Junho de 2017 Duração: 90 minutos Nome: Número: Este teste tem um conjunto de
Leia maisJava Server Pages (JSP)
Java Server Pages () joao@ecomp.uefs.br Departamento de Ciências Exatas Universidade Estadual de Feira de Santana Problemas com Sevlet Como fazer um Servlet para exibir esta página? 1 Código do Servlet
Leia maisAplicação MVC com Class Library
Aplicação MVC com Class Library Vamos considerar uma Class Library com o modelo de dados e com acesso à base de dados através do Entity Framework. Uma Class Library nunca funciona sozinha. Vamos usá-la
Leia maisDesenvolvimento de Aplicações para Internet Aula 5
Desenvolvimento de Aplicações para Internet Aula 5 Celso Olivete Júnior olivete@fct.unesp.br www.fct.unesp.br/docentes/dmec/olivete Na aula passada Linguagem PHP: Introdução tiposdedados operadores estruturas
Leia maisJava Server Pages (Diretivas, Elementos de Script e Objetos Implícitos)
Linguagem de Programação para Web Java Server Pages (Diretivas, Elementos de Script e Objetos Implícitos) Prof. Mauro Lopes 1-31 28 Objetivos Dando continuidade aos estudos sobre JSP, apresentaremos os
Leia maisProgramação para Internet II
Programação para Internet II Aulas 05 e 06 Fernando F. Costa nando@fimes.edu.br http://blog.fimes.edu.br/fernando JavaBeans Fundamentos básicos de JavaBeans JavaBeans são componentes de softwares escritos
Leia maisEngenharia de Software
UNIVERSIDADE DE LISBOA INSTITUTO SUPERIOR TÉCNICO Engenharia de Software LEIC/LETI, 3 o Ano, 2 o Semestre 2 o Teste, 17 de Junho de 2017 Duração: 90 minutos Nome: Número: Este teste tem um conjunto de
Leia maisVamos falar de Hibernate?
Vamos falar de Hibernate? Hibernate é um framework ORM (Object-Relationship Management) muito bacana que nos permite ter muita produtividade na manipulação de objetos a serem persistidos no banco de dados.
Leia maisSessão e inclusão de arquivos no PHP
Sessão e inclusão de arquivos no PHP Neste pequeno sistema iremos tratar de alguns pontos diferenciais: - Sessão no PHP baseado em validação de login no banco de dados para acesso ao sistema; - Inclusão
Leia maisAdicionando mais tags HTML
Instituto Federal de Minas Gerais Campus Ponte Nova Adicionando mais tags HTML Professor: Saulo Henrique Cabral Silva Bookmark Bookmark ou demarcação de destinos para links (informações) dentro do próprio
Leia maisContinuação... Criando a Interface e adiante
Continuação... Criando a Interface e adiante Racepitulando 1. Criar um projeto web: JavaServer Faces + Tomcat + Primefaces 2. Criar um banco de dados Postgresql 3. Adicionar os jars: javax.persistence
Leia maisTreinamento. Professor: Maurício Giacomini Penteado 1/42
Treinamento Professor: Maurício Giacomini Penteado 1/42 Conceitos Clientes Container 2/42 Processo de Solicitação 3/42 4/42 5/42 Objetos do processo de solicitação: Headers Request Response Contexto Config
Leia maisProgramação para Internet
AULA: Passagem de parâmetros em PHP (URL e Formulários) Programação para Internet http://docentes.ifrn.edu.br/albalopes alba.lopes@ifrn.edu.br Passagem de parâmetros Em PHP, há algumas formas de passar
Leia maisMeta Programming. Nelson Ferraz nferraz@gmail.com
Meta Programming Nelson Ferraz nferraz@gmail.com Resumo Meta Programming Code Generation AppML 23/11/07 Nelson Ferraz 2 Meta Programming Programas que manipulam programas Geração de
Leia maisIntrodução ao Javascript
Programação WEB I Introdução ao Javascript Apresentação da Disciplina,Introdução a linguagem Javascript Objetivos da Disciplina Apresentar os principais conceitos da linguagem Javascript referente à programação
Leia maisTutorial Cold Fusion Módulo 2 Cold Fusion Brasil -
www.coldfusionbrasil.com.br 2000 ENTENDENDO MAIS SOBRE CFOUTPUT 3 USO DO PARÂMETRO GROUP 3 USO DO PARÂMETRO GROUPCASESENSITIVE 4 USO DO PARÂMETRO STARTROW 4 USO DO PARÂMETRO MAXROWS 4 CRIANDO FORMULÁRIOS
Leia maisMany-to-many. Mapear no Context Na classe Context.cs, dentro do método OnModelCreating, adicionar o trecho
Many-to-many Adicionar o relacionamento Transporte Clientes Na classe Transporte.cs Adicionar o relacionamento public virtual ICollection Clientes get; set; Na classe Cliente.cs Adicionar o relacionamento
Leia maisLaboratório de Sistemas e Serviços Web
Ministério da Ciência, Tecnologia e Ensino Superior U.C. 21182 Laboratório de Sistemas e Serviços Web Época Recurso, 2017/2018 INSTRUÇÕES PARA A RESOLUÇÃO DO EXAME, ACONSELHA-SE QUE LEIA ATENTAMENTE O
Leia maisDesenvolvimento Web TCC Turma A-1
Desenvolvimento Web TCC-00.226 Turma A-1 Conteúdo Model-View-Controller (MVC) Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.2/tcc-00.226
Leia maisWeb Services REST JAX-RS
Web Services REST JAX-RS Professor: Ricardo Luis dos Santos IFSUL 2015 Agenda Principais tecnologias envolvidas Testando os serviços desenvolvidos JAX-RS Principais anotações JAX-RS Principais anotações
Leia maisJPA 2.0 e Servlet 3.0
JPA 2.0 e Servlet 3.0 Elaine Silva Instrutora Globalcode Melissa Villela Instrutora Globalcode 1 Agenda > Objetivo > JPA 2.0 > Servlet 3.0 > Conclusões 2 Agenda > Objetivo > JPA 2.0 > Servlet 3.0 > Conclusões
Leia maisIntrodução à linguagem HTML. Volnys Borges Bernal
1 Introdução à linguagem HTML Volnys Borges Bernal 2013-2015 Volnys Bernal 2 Introdução à linguagem HTML Sumário Visão geral Primeira página Principais tags Principais atributos Formulários 2011-2015 Volnys
Leia maisVALIDAÇÃO DE DADOS COM O PADRÃO MVC
VALIDAÇÃO DE DADOS COM O PADRÃO MVC Emanuel Braz da Cruz Leonardo Soares Vianna André Lúcio de Oliveira Bruno Lessa RESUMO A validação de dados no padrão MVC consiste de atributos simples e fácil de usar
Leia maisO 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 maisAPI - Lista de Compras
Editora Inovação EIRELI API - Lista de Compras Guilherme Branco Stracini 2015 L i s t a d e C o m p r a s - A P I Sumário Sobre... 2 A aplicação... 2 A API... 2 Ambiente de Manutenção... 3 Ambiente de
Leia maisTUTORIAL 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 maisDesenvolvimento de Aplicações para Internet Aula 11
Desenvolvimento de Aplicações para Internet Aula 11 Celso Olivete Júnior olivete@fct.unesp.br www.fct.unesp.br/docentes/dmec/olivete jquery Na aula passada: Selecionando atributos Manipulando CSS Inserindo
Leia maisEnums em Java: utilização e persistência
Enums em Java: utilização e persistência Jadson José dos Santos jadsonjs@gmail.com Nas primeiras versões da linguagem Java, a única forma que existia para se utilizar constantes enumeradas era através
Leia maisJava: Linguagem de programação (OOP) JavaScipt: Linguagem de scripts (OOP)
Executado do lado do cliente, interage com o usuário sem a necessidade do script passar pelo servidor. Desenvolvida por Brendan Eich, da Netscape Communications Corporation em 1995 (LiveScript). 1ª linguagem
Leia maisAutoria Web. Formulários Aula 5. Cleverton Hentz
Autoria Web Formulários Aula 5 Cleverton Hentz Sumário da Aula } Introdução } Formulários Básicos } Elementos Suportados 2 Introdução } Os formulários possibilitam o envio de informação para o servidor
Leia maisAutoria Web. Professor: Diego Oliveira. Conteúdo 03: Tags de Formulário
Autoria Web Professor: Diego Oliveira Conteúdo 03: Tags de Formulário Caminhos Os caminhos dentro de um projeto HTML podem ser Relativos ou Absolutos O caminho Relativo é o caminho a partir da página em
Leia maisA figura acima mostra o script de criação do banco de dados que chamaremos de minicurso.
Primeiro passo é criar um banco de dados. Pois com um esquema montado, utilizaremos o Framework de mapeamento objeto relacional o Hibernate, para montar nosso projeto. A figura acima mostra o script de
Leia maisProgramação para Internet
Universidade Federal de Uberlândia Faculdade de Computação Programação para Internet Curso de Sistemas de Informação Prof. Dr. Daniel A. Furtado Módulo 10 Web Dinâmica Introdução ao AJAX AJAX Introdução
Leia maisRecursos Complementares (Tabelas e Formulários)
Linguagem de Programação para Web Recursos Complementares (Tabelas e Formulários) Prof. Mauro Lopes 1-31 30 Objetivo Nesta aula iremos trabalhar o conceito de tabelas e todas as tags associadas ao seu
Leia maisIntrodução ao Desenvolvimento Web
MKT-MDL-02 Versão 00 Introdução ao Desenvolvimento Web Aula 1 O que vamos ver nesta aula? Introdução ao Desenvolvimento Web Arquitetura Cliente-Servidor HTML CSS Servlets Por que Java Web? Integração com
Leia maisConstrução de Sites 2. Prof. Christiano Lima Santos
Construção de Sites 2 Prof. Christiano Lima Santos Introdução a JavaScript Parte 01 Como usar JavaScript em uma página 1.1 Forma #1 aplicando diretamente à tag HTML teste
Leia mais4 Geração Automatizada de Interfaces
4 Geração Automatizada de Interfaces A Ontologia de Descrição de Interfaces Ricas, discutida no capítulo 3, lança a base para a especificação de uma completa solução de software para auxiliar o projeto
Leia maisBem vindos ao Curso de ASP.NET MVC 3 Razor e C#
Bem vindos ao Curso de ASP.NET MVC 3 Razor e C# Pré-requisitos: O curso de C# Csharp veja aqui e o curso de ASP.NET Básico veja aqui Valor R$129.00 compre aqui Veja o video do curso aqui Aprenda ASP.NET
Leia maisManaged Beans e Tags JSF
Managed Beans e Tags JSF Passos iniciais no Projeto Paulo Ricardo Lisboa de Almeida 1 Instanciando a aplicação Clone o projeto da aula com o Git (disponível no site da disciplina) Suba o banco de dados
Leia maisDESENVOLVIMENTO DE SISTEMAS WEB. Lista de Exercícios AV2-01. Luiz Leão
DESENVOLVIMENTO DE SISTEMAS WEB Luiz Leão luizleao@gmail.com http://www.luizleao.com Questão 01 Sobre as características da programação orientada a objetos, explique o encapsulamento. Questão 01 - Resposta
Leia maisLinguagem de Programação II Implementação
Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa
Leia maisTAGS. O HTML trabalha com o sistema de tags (etiquetas). Esse sistema funciona da seguinte maneira. <tag>conteúdo da tag</tag>
HTML DDW TAGS O HTML trabalha com o sistema de tags (etiquetas). Esse sistema funciona da seguinte maneira. conteúdo da tag Toda tag aberta, deve ser fechada, salvo raras exceções, nesses casos
Leia mais22/05/2012 CRIANDO UM PROJETO COM TELAS ESTRUTURA DA APLICAÇÃO LOGIN BANCO DE DADOS TAREFAS PHP MYSQL PARTE 2
CRIANDO UM PROJETO COM TELAS Páginas com formulário Acesso ao banco de dados PHP MYSQL PARTE 2 Luciana Balieiro Cosme ESTRUTURA DA APLICAÇÃO LOGIN BANCO DE DADOS # Coluna Nome e Tipo 1 codigo int(11) AUTO_INCREMENT
Leia mais1. Fazer aplicação exemplo
1. Fazer aplicação exemplo 1.1. Criar novo projeto Web (EstudoDeCaso.Exemplo) 1.2. index.jsp (com os links individuais para cadastros) 1.3. cadastrarpessoa.jsp (formulário simples) 1.4. servlet CadastrarPessoa
Leia mais(UFF) JSF (I) TEPIS II
Aula 11: JSF (I) Diego Passos Universidade Federal Fluminense Técnicas de Projeto e Implementação de Sistemas II Diego Passos (UFF) JSF (I) TEPIS II 1 / 34 Java Server Faces API que provê um framework
Leia maisComponentes Web do JEE
Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Campus Natal-Central Diretoria Acadêmica de Gestão e Tecnologia da Informação Tecnologia em Análise e Desenvolvimento de Sistemas
Leia maisRetrofit. Criar um novo projeto. Selecionar a API. Retrofit para consumir Web Service Luiz Eduardo Guarino de Vasconcelos
Retrofit Criar um novo projeto Selecionar a API Empty Activity MainActivity Finish. Adicionar Novas Dependências Menu File > Project Structure Modulo app > Aba Dependencies Clique em adicionar (+) no canto
Leia maisUtilizando Swing com Hibernate
Programando com Java Artigo http://mballem.wordpress.com/ Utilizando Swing com Hibernate Utilizando a SessionFactory Autor Marcio Ballem: é formado em Sistemas de Informação e possui certificação Oracle
Leia maisProgramação para Dispositivos Móveis
Prof. MSc. Flávio Barros flavioifma@gmail.com www.flaviobarros.com.br Programação para Dispositivos Móveis Aula: CRUD Agenda com SQLite Parte II Caxias - MA Projeto Android Estrutura Activity MainActivity.java
Leia maisDesenvolvimento Web XHTML Formulários. Prof. Bruno E. G. Gomes
Desenvolvimento Web XHTML Formulários Prof. Bruno E. G. Gomes 2014 Introdução Um recurso bastante utilizado no desenvolvimento Web é o envio de dados de uma página para o servidor quando fornecemos informações,
Leia maisVolnys Bernal. Introdução à linguagem HTML. Introdução à linguagem HTML. Visão geral. Visão geral. Visão geral. Visão geral.
1 2 Introdução à linguagem HTML Sumário Volnys Borges Bernal Primeira página Principais tags Principais atributos 3 4 HTML HTML = HyperText Markup Language Linguagem de marcação (Markup) para criação de
Leia maisTutorial Hibernate + Vraptor para projetos Restful.
Tutorial Hibernate + Vraptor para projetos Restful. Configurando o Projeto Passo 1 Baixe o Eclipse IDE for Java EE Developers: https://www.eclipse.org/downloads. Passo 2 Vamos criar um novo projeto Maven,
Leia maisAULA 01. Introdução (HTML, CSS e Javascript) JAVA ENTERPRISE EDITION - DESENVOLVENDO APLICAÇÕES CORPORATIVAS
AULA 01 Introdução (HTML, CSS e Javascript) Mestrado em Educação (em andamento) MBA em Negócios em Mídias Digitais MBA em Marketing e Vendas Especialista em games Bacharel em Sistema de Informação Email:
Leia mais