Introdução ao framework web Apache Struts 2
|
|
|
- Nathan Porto Malheiro
- 10 Há anos
- Visualizações:
Transcrição
1 Introdução ao framework web Apache Struts 2
2 Agenda Histórico Características Arquitetura Elementos Configurações Actions Resultados Exceções Internacionalização Interceptors Taglibs Validação
3 Histórico Projeto Apache Struts foi lançado em Maio de 2000 Criador: Craig R. McClanahan Versão 1.0 veio em Julho de 2001 Framework web Model 2 (baseado no Smalltalk MVC) Revolução no desenvolvimento Java para Web Controle de fluxo da aplicação [C] Separação entre o modelo e a apresentação [M e V] Configuração (XML), validação, conversão, i18n Problemas arquiteturais e desenho Componentes acoplados, dependentes de herança Muita configuração XML, flexibilidade limitada, etc
4 Histórico Web Work projeto paralelo ao Struts Ótima arquitetura e desenho, além de mais flexível Não tão utilizado pelo mercado quanto o Struts Struts 2 foi criado após junção das duas comunidades Força de mercado do Struts + qualidade do Web Work
5 Características Framework web baseado em Actions Actions são POJOs (desacoplamento) facilita testes Anotações ou configurações em XML Convenção (convention over configuration) Uso de interceptadores Diferentes tipos de Result (JSP, Velocity, etc) Tags baseadas em temas e tags com Ajax Trabalha com JSTL, Expression Language (OGNL) Integração natural com Spring, Tiles, SiteMesh Plugins para extender e modificar as funcionalidades
6 Arquitetura Principais componentes (core components) Actions Interceptors Value Stack / OGNL Result Types Results / View
7 Ciclo de vida de uma requisição no Struts 2: Filtros Action Mapper Action Proxy Configuration Manager Action Invocation Interceptor Action Result Template Arquitetura
8 Arquitetura Requisição chega ao Servlet Container, que executa a cadeia de filtros configurada Filter Dispatcher é chamado, que por sua vez consultará o Action Mapper para determinar se o pedido deve invocar uma ação configurada Se uma ação deve ser invocada, o Filter Dispatcher delega o controle ao Action Proxy Action Proxy consulta o Configuration Manager Action Proxy cria um Action Invocation, que é responsável pela execução do command pattern Action Proxy invoca Interceptors e a Action em si
9 Arquitetura Após retorno da Action, o Action Invocation analisa se há um Result mapeado associado ao retorno da Action O resultado é executado envolvendo um Template JSP, FreeMarker, etc, a ser renderizado (nem sempre, como é o caso de Action Chaining) Templates podem usar as Struts Tags Interceptors são executadas novamente (ordem inversa) A resposta retorna através dos filtros configurados (ordem inversa) Se o filtro ActionContextCleanUp está presente, o Filter Dispatcher não irá limpar o Action Context
10 ObjectFactory Arquitetura Todos os objetos desta arquitetura (Actions, Results, Interceptors, etc) são criados por um ObjectFactory ObjectFactory é plugável Outra implementação de ObjectFactory pode ser usada Spring Plugin tem implementação do ObjectFactory
11 Filter Dispatcher Elementos Filtro do Struts 2 que lida com todas as requisições feitas e é responsável por executar as Actions e o conteúdo estático (html, css, scripts, etc) Action É a unidade básica de trabalho, que pode ser associada a uma requisição HTTP. Em geral são simples POJOs, mas pode estender a classe ActionSupport para ter funcionalidades extras, por exemplo
12 Result Elementos É o resultado final do processamento de uma Action, ou seja, uma String que indica para onde o fluxo da aplicação deve seguir Result Type Tipo do resultado a ser gerado, que pode ser renderizar um JSP, um template Tiles, redirecionar (dispatch) para outra Action, devolver apenas o header HTTP, etc. Além de ser possível criar novos Result Types
13 Interceptors Elementos Interceptadores adicionam muitas funcionalidades extremamente úteis ao Struts 2. Eles são executados antes e depois da execução da Action e, similares ao filtros, podem ser configurados em determinada ordem Value Stack Uma pilha que serve como área de armazenagem de objetos da aplicação que são necessários durante o processamento da requisição. Os valores são lidos desta pilha quando o resultado é gerado (páginas)
14 Elementos OGNL (Object-Graph Navigation Language) É uma poderosa linguagem de expressão que é usada para referenciar e manipular valores da Value Stack
15 Struts 1 x Struts 2 Struts 1 Action ActionForm ActionForward struts-config.xml ActionServlet RequestProcessor validation.xml Struts 2 Action Action ou POJO Result struts.xml FilterDispatcher Interceptors Action-validation.xml
16 Configuração do Struts 2 na Aplicação Configurando o Struts 2 na aplicação web (web.xml): <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.filterdispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> Copiar os seguintes JARs para o WEB-INF/lib/ struts2-core jar; xwork jar; ognl jar; commons-logging jar; commons-fileupload jar; freemarker jar
17 Configuração do Struts 2 É possível mudar o comportamento padrão do Struts 2 configurando o ambiente de execução de três formas: web.xml - tag <init-param /> struts.properties - propriedades (par chave/valor) struts.xml - tag <constants /> Valores alterados substituem os valores-padrão configurados no arquivo struts-default.properties que fica dentro do struts2-core.jar Arquivos devem ficar no classpath (WEB-INF/classes/) Mais informações:
18 Configuração do Struts 2 O arquivo struts.xml serve para configurar: Constantes do Struts 2 Interceptadores e pilhas de interceptadores Resultados globais (global results) Manipulação de exceções (exception handling) Pacotes (packages) e Actions <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" " <struts> <package name="default" namespace="/" extends="struts-default"> </package> </struts>
19 Configuração do Struts 2 O arquivo struts.xml pode ser segmentado em outros arquivos de configuração (iguais ao struts.xml) e incluídos com a tag <include /> <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" " <struts> <include file="admin-config.xml" /> <package name="default" namespace="/" extends="struts-default"> </package> </struts> Dois arquivos são incluídos automaticamente: strutsdefault.xml e struts-plugin.xml (que já vem no Struts 2)
20 Struts 1 x Struts 2 A tag package serve para agrupar configurações comuns Actions, pilhas de interceptadores e namespace de URL Atributos da tag: Atribuição name extends namespace abstract Nome único do pacote. Descrição Nome do pacote o qual estende. Todas as configurações do pacote serão herdadas. Nome do mapeamento da URL para o pacote. Se true, serve apenas como configuração e suas Actions não podem ser acessadas.
21 Action Unidade básica de trabalho associada à requisição HTTP Classe comum com um método execute() Simples POJO Não precisa implementar interface ou estender classe Possui três funções: Executar a lógica de negócio Carregar os dados da requisão para a view Determinar qual resultado deve renderizar a view Pode estender classes e implementar interfaces especiais Adicionam funcionalidades do framework e plugins
22 Action Action simples: package company.hr.action; public class LoginAction { private String username; private String password; // métodos GET e SET } public String execute() { System.out.println("user: " + username); return "success"; } Configuração (struts.xml): <package name="default" namespace="/" extends="struts-default"> <action name="login" class="company.hr.action.loginaction"> <result>/login.jsp</result> </action> </package> URL:
23 Action Invocando um método diferente de execute(): package company.hr.action; public class LoginAction { //... código pré-existente aqui } public String logoff() { System.out.println("LOGOFF"); return "success"; } Configuração (struts.xml): <action name="logoff" class="company.hr.action.loginaction" method="logoff"> <result>/login.jsp</result> </action> URL:
24 Página de login (login.jsp): Action page contenttype="text/html; charset=iso " %> taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>company - HR</title> </head> <body> <h4>human Resources</h4> <s:form action="login"> <s:textfield name="username" label="username"/> <s:password name="password" label="password"/> <s:submit/> </s:form> </body> </html>
25 Action Action de redirecionamento (pass-through): <action name="auth"> <result>/login.jsp</result> </action> URL:
26 Action Action com resultados múltiplos: package company.hr.action; public class LoginAction { private String username; private String password; } // métodos GET e SET public String execute() { if( "admin".equals(username) && "admin".equals(password) ) return "success"; else return "fail"; } Modificando a configuração (struts.xml): <action name="login" class="company.hr.action.loginaction"> <result>/home.jsp</result> <result name="fail">/login.jsp</result> </action> URL:
27 Action Struts 2 suporta mapeamento com coringas (wildcards) Útil quando existe um padrão de mapeamentos Ajuda a reduzir o número de configurações no struts.xml <action name="dept_*" class="company.hr.action.deptaction" method="{1}"> <result>/dept.jsp</result> <result name="{1}">/dept_{1}.jsp</result> </action> package company.hr.action; import java.util.*; import company.hr.entity.dept; public class DeptAction { private List<Dept> depts; // métodos GET e SET } public String list() { // busca a lista de Departamentos return "list"; } URL:
28 Exibindo a lista no JSP: Action <%@ page contenttype="text/html; charset=iso " %> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>company - HR</title> </head> <body> <h4>human Resources</h4> <s:iterator value="depts"> <s:property value="id" /> - <s:property value="name" /> <br /> </s:iterator> </body> </html>
29 Action Pattern Matching muito útil para CRUDs <action name="/*/*" class="company.hr.action.{1}action" method="{2}"> <result>/{1}.jsp</result> <result name="{1}">/{1}_{2}.jsp</result> </action> Habilitar a configuração do Struts 2 para usar barras: <constant name="struts.enable.slashesinactionnames" value="true" /> URL:
30 Action Support ActionSupport é uma implementação da interface Action Oferece acesso a recursos do ambiente e framework Validação, localização (i18n) e mensagens package company.hr.action; import com.opensymphony.xwork2.actionsupport; public class LoginAction extends ActionSupport { public String execute() { if ( "admin".equals(username) && "admin".equals(password) ) { return "success"; } else { addactionmessage("login incorreto"); return "fail"; } } } // código pré-existente <s:actionmessage />
31 Interfaces Aware Actions podem ter acesso a recursos do ambiente web Request, Sessão, Contexto e os seus atributos Actions devem implementar interfaces correspondentes RequestAware - Atributos do request SessionAware - Atributos da sessão ApplicationAware - Atributos da aplicação ServletRequestAware - HttpServletRequest ServletResponseAware - HttpServletResponse ServletContextAware - ServletContext
32 Interfaces Aware package company.hr.action; import java.util.map; import javax.servlet.servletcontext; import javax.servlet.http.*; import org.apache.struts2.interceptor.* import org.apache.struts2.util.servletcontextaware; import com.opensymphony.xwork2.actionsupport; public class GenericAction extends ActionSupport implements SessionAware, RequestAware, ApplicationAware, ServletRequestAware, ServletResponseAware, ServletContextAware { private Map<String, Object> session; private Map<String, Object> request; private Map<String, Object> application; private HttpServletRequest servletrequest; private HttpServletResponse servletresponse; private ServletContext servletcontext; public Map<String, Object> getsession() { return this.session; } public Map<String, Object> setrequest() { return this.request; } public Map<String, Object> getapplication() { return this.application; } public HttpServletRequest getservletrequest() { return this.servletrequest; } //...
33 Interfaces Aware } public HttpServletResponse getservletresponse() { return servletresponse; } public ServletContext setservletcontext() { return this.servletcontext; } public void setsession(map<string, Object> session) { this.session = session; } public void setrequest(map<string, Object> request) { this.request = request; } public void setapplication(map<string, Object> application) { this.application = application; } public void setservletrequest(httpservletrequest servletrequest) { this.servletrequest = servletrequest; } public void setservletresponse(httpservletresponse servletresponse) { this.servletresponse = servletresponse; } public void setservletcontext(servletcontext servletcontext) { this.servletcontext = servletcontext; }
34 Result Types Struts 2 suporta diferentes tipos de resultados (JSP, etc) Definido na tag <result type= /> da Action Tipo padrão é dispatcher, que despacha para um JSP Um Result Type próprio pode ser criado e configurado Na tag <result-types /> dentro de <package /> O tipo padrão pode ser alterado (struts.xml) Na tag <result-type /> dentro de < result-types /> <result-types> <result-type name="dispatcher" class="org.apache.struts2.dispatcher.servletdispatcherresult" /> <result-type name="meuresultado" class="company.results.meuresultado" default="true"/> </result-types>
35 Result Types O framework oferece outros tipos de resultado: Chain - encadeamento de Action Freemarker - uso do framework Freemarker HTTP Header - retorno de cabeçalho HTTP Redirect - redirecionamento para um JSP Redirect Action - redirecionamento para um Action Velocity - uso do framework Velocity Definindo o tipo do resultado: <action name="login" class="company.hr.action.loginaction"> <result type="dispatcher">/home.jsp</result> <result name="fail" type="chain">auth</result> </action>
36 Global Result Resultados globais podem ser configurados no pacote São visíveis dentre todas as Actions do pacote <package > <global-results> <result name="logon">/logon.jsp</result> <result name="error">/error.jsp</result> <global-results> </package>
37 Exception Handling Struts 2 suporta manipulação declarativa de exceções Exceções que podem ser lançadas pelas Actions Declaração pode ser global ao pacote ou local à Action <global-exception-mappings> <exception-mapping result="sqlerror" exception="java.sql.sqlxception"/> <exception-mapping result="error" exception="java.lang.exception"/> </global-exception-mappings> <action name="my" class="example.myaction" > <result>view.jsp</result> <exception-mapping result="myerror" exception="java.lang.exception" /> </action>
38 Internacionalização Suporte a internacionalização via Resource Bundles Pode estar contida em um ou vários arquivos (resources) <constant name="struts.custom.i18n.resources" value="applicationresources" /> Os arquivos properties podem estar divididos: Por classe Action (NomeDaAction.properties) Por classe base na hierarquia da Action Por interface ou sub-interface Por classe de modelo (se Action for ModelDriven) Por pacote de classes (package.properties) Geral (configurado no struts.xml)
39 Internacionalização Meios de acessar as mensagens configuradas: Na Action (deve estender ActionSupport): String msg = gettext("chave.da.mensagem"); No JSP (via taglib): <s:text name="label.saudacao"/> <s:text name="label.saudacao.nome"> <s:param>ronaldo</s:param> </s:text> <s:property value="gettext( label.saudacao.nome )"/> <s:textfield label="%{gettext( label.saudacao )}"/> <s:textfield key="label.saudacao" name="textfieldname"/> Arquivo de properties: label.saudacao=olá, Mundo! label.saudacao.nome=olá, {0}!
40 Interceptors Interceptadores tem um papel vital no Struts 2 Proporcionam funcionalidades ao framework São responsáveis pela maior parte do processamento Promovem separação de responsabilidades (concerns) Fazem pré e pós-processamento das Actions São similares aos filtros da API de Servlets Struts 2 fornece vários interceptadores prontos Pilhas de interceptadores são agrupamentos ordenados Desenvolvedor pode criar novos interceptadores e novas pilhas de interceptadores Pacotes e Actions podem usar pilhas/interceptadores configuradas especificamente para cada um
41 Interceptors Alguns interceptadores do Struts 2: chain - repassa os atributos de Action pra Action execandwait - executa a Action em background exception - mapeia exceções para um resultado i18n - trata da localidade do usuário params - atribui os parâmetros do request na Action static-params - atribui parâmetros do struts.xml na Action validation - faz a validação definida no xml workflow - chama o validate() e direciona se há erro roles - verifica autorização (role) do usuário prepare - chama prepare() se Action é Preparable Mais informações:
42 Interceptors Algumas pilhas de interceptadores do Struts 2: basicstack - pilha mais básica do Struts 2 chainstack - adiciona chaining à basicstack i18nstack - adiciona i18n à basicstack defaultstack - pilha padrão com quase todos interceptors completestack - pilha completa (compatível com WebWork) execandwaitstack - execução assíncrona à defaultstack paramsprepareparamsstack - pilha mais complexa aplica os parâmetros na Action, executa o método prepare() e depois reaplica os parâmetros na Action Pacotes que estendem struts-default usam pilha default
43 Interceptors São definidos na tag <interceptors /> da tag <package />: <package...> <interceptors> <interceptor name="meuinterceptor" class="exemplo.intercept.meuinterceptor" /> <interceptor name="outrointerc" class="exemplo.intercept.outrointerceptor" /> </interceptors> </package> Actions devem fazer referência para usá-los: <action...> <interceptor-ref name="meuinterceptor" /> <interceptor-ref name="outrointerc" /> <result>/pagina.jsp</result> </action> Pacote pode definir interceptador padrão para as Actions: <default-interceptor-ref name="meuinterceptor" />
44 Interceptors Em geral as Actions precisam de vários interceptadores Pilhas de interceptadores servem para agrupá-los Configuração é bem similar aos interceptadores <package...> <interceptors> <interceptor name="meuinterceptor" class="exemplo.intercept.meuinterceptor" /> <interceptor name="outrointerc" class="exemplo.intercept.outrointerceptor" /> <interceptor-stack name="minhastack"> <interceptor-ref name="meuinterceptor" /> <interceptor-ref name="outrointerc" /> </interceptor-stack> </interceptors> <default-interceptor-ref name="minhastack" /> <action...> <interceptor-ref name="minhastack" /> <result>/pagina.jsp</result> </action> </package>
45 Interceptors Criando seu próprio interceptador: package company.hr.intercept; import com.opensymphony.xwork2.actioninvocation;; public class SecurityInterceptor implements Interceptor { } public String intercept(actioninvocation inv) throws Exception { System.out.println("pré-processamento"); String result = inv.invoke(); System.out.println("pós-processamento"); return result; } public void init() {} public void destroy() {} ActionInvocation dá acesso a objetos do ciclo do request Action, ActionContext, ActionProxy, Result, ValueStack
46 Taglibs Struts 2 fornece tags JSP, Velocity e Freemarker Tipos de tags: Dados, Controle, Úteis, Visuais
47 Tags de Dados Acessam ou colocam valores contidos na Value Stack Property tag escreve uma propriedade no HTML <s:property value="user.username"/> Set tag atribui uma propriedade para outro nome <s:set name="username" value="user.username"/> Push tag cria referências a valores na Value Stack <s:push value="user"> Nome: <s:property value= username"/> </s:push> Bean tag Misto de Set e Push, mas criando o objeto <s:bean name="org.apache.struts2.util.counter" var="counter"> <s:param name="last" value="7"/> </s:bean> <s:iterator value="#counter"> <li><s:property/></li> </s:iterator> Action tag execute uma Action e grava o resultado <s:action name="targetaction" executeresult="true"/>
48 Tags de Controle Iterator tag itera sobre coleções de objetos <s:iterator value="users" status="st"> <s:property value="#st.count" />: <s:property value="portfolioname"/><br> </s:iterator> If e Else tags controle de IF e ELSE <s:if test="user.age < 18">Menor de idade.</s:if> <s:elseif test="user.age > 65">Terceira idade.</s:elseif> <s:else>idade adulta.</s:else>
49 Tags de Úteis Include tag include a saída de outro recurso web <s:include value="/algumaaction.action" /> URL tag trabalha com a criação de URLs <s:url action="algumaaction" var="myurl"> <s:param name="id" value="2"/> </s:url> <a href='<s:property value="#myurl" />'> Clique Aqui </a> i18n tag especifica um resource bundle a ser usado <s:i18n name="myresourcebundle_jp"> Text tag escreve um texto associado a i18n <s:text name="label.descricao"/> Param tag serve para passar valores de parâmetros a outras tags que a utilizam
50 Tags Visuais Head tag gera informação necessária no cabeçalho <head> <s:head /> </head> Form tag representa o form html <s:form action="myaction" method="post" >... </s:form> Textfield tag representa um campo de texto no form <s:textfield key="username" /> Password tag representa um campo de senha no form <s:password name="username" label="username" /> Textarea tag representa um textarea no form <s:textarea name="corpotexto" cols="30" rows="10" /> Checkbox tag representa um checkbox no form <s:checkbox name="ativado" label="ativado" fieldvalue="true" />
51 Tags Visuais Select tag represente um select box no form <s:select name="estado"> <option value="sp">sp</option> </s:select> <s:select name="pais" list="paises" listvalue="id" listkey="nome" /> Hidden tag representa um campo hidden no form <s:hidden name="codigo" /> Radio tag representa um campo radio no form <s:radio name="sexo" list="generos" value="nome" listkey="id" listvalue="nome" label="sexo" /> Label tag representa um label no form <s:label name="username" label="username" />
52 Temas Temas são usados como templates das tags visuais Struts 2 vem com alguns temas para utilizar simple - renderiza o html básico do componente xhtml - usa table para gerar o layout (padrão) css_xhtml - usa puro css para gerar o layout ajax - estende xhtml e provê ajax (beta) Para alterar a configuração default (struts.xml): <constant name="struts.ui.theme" value="simple" />
53 Validação Validação pode ser feita de algumas formas Básica No cliente (javascript) Via Ajax Via anotações Outras Validação programática - Action deve ter o método validate() e estender ActionSupport Validação via XML arquivo Action-validation.xml no pacote da Action e incluir interceptador de validação
54 Validação Arquivo de validação de exemplo: <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" " <validators> <field name="nome"> <field-validator type="requiredstring"> <message>você deve colocar um nome</message> </field-validator> </field> <field name="age"> <field-validator type="int"> <param name="min">13</param> <param name="max">19</param> <message>formulário para pessoas entre 13 e 19 anos</message> </field-validator> </field> </validators>
Desenvolvimento WEB II
Desenvolvimento WEB II Struts 2 Sérgio Cerqueira [email protected] Agenda Introdução Struts e a Web Contextualização Arquitetura Configuração Action Result Type Interceptor Value Stack /
WebWork 2. João Carlos Pinheiro. [email protected]
WebWork 2 João Carlos Pinheiro [email protected] 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)
Minicurso de MVC web com Struts. EclipseDay@Serpro Felipe F Nascimento [email protected]
Minicurso de MVC web com Struts EclipseDay@Serpro Felipe F Nascimento [email protected] Agenda MVC Web e Command Visão Geral, Conceitos e terminologia Exemplo Conceitos Avançados Referências Laboratório
Introdução. Servlet. Ciclo Vida. Servlet. Exemplos. Prof. Enzo Seraphim
Introdução Servlet Ciclo Vida Exemplos Servlet Prof. Enzo Seraphim Visão Geral São objetos de uma subclasse de javax.servlet (javax.servlet.httpservlet). Possuem um ciclo de vida. Incluem em seu código,
Desenvolvendo Portlets utilizando JSF, Ajax, Richfaces. Gustavo Lira Consultor 4Linux [email protected]
Desenvolvendo Portlets utilizando JSF, Ajax, Richfaces Gustavo Lira Consultor 4Linux [email protected] Especificação para os Portlets Os padrões para Portlets Java EE são definidos por duas JSRs: 168,
UNIDADE III JAVA SERVER PAGES
UNIDADE III JAVA SERVER PAGES MODELO JSP Um dos principais objetivos da tecnologia J2EE é fazer com que as tarefas sejam realizadas de forma separada. Eliminando as dependências, componentes J2EE tornam-se
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
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
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
Desenvolvimento Web TCC-00.226 Turma A-1
Desenvolvimento Web TCC-00.226 Turma A-1 Conteúdo JavaServer Pages (JSP) Professor Leandro Augusto Frata Fernandes [email protected] Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.2/tcc-00.226
Introdução a Servlets e JSP. Prof. Samuel Martins samuellunamartins at gmail dot com Faculdade São Miguel
Introdução a Servlets e JSP samuellunamartins at gmail dot com Conteúdo da aula Introdução a HTML Introdução a Servlets Preparando o ambiente de programação Exemplo de Servlets 2 Websites na década de
Desenvolvimento de aplicações Web. Java Server Pages
Desenvolvimento de aplicações Web Java Server Pages Hamilton Lima - [email protected] 2003 Como funciona? Servidor web 2 Internet 1 Browser 3 Arquivo jsp 4 JSP Compilado 2 Passo a passo 1 browser envia
Curso de Introdução ao
Curso de Introdução ao Daniel Destro do Carmo Softech Network Informática [email protected] O que é? Struts Struts é um framework gratuito para construção de aplicações web implementadas em Java.
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
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
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
Relatório referente a compreensão da programação JSP. Realizado do dia de 22 abril de 2010 a 03 de maio de 2010.
Relatório do GPES Relatório referente a compreensão da programação JSP. Realizado do dia de 22 abril de 2010 a 03 de maio de 2010. Compreender a programação JSP. Os Servlets assim como JSP são tecnologias
Programação Na Web. Servlets: Como usar as Servlets. Agenda. Template genérico para criar Servlets Servlet 2.4 API
Programação Na Web Servlets: Como usar as Servlets 1 António Gonçalves Agenda Template genérico para criar Servlets Servlet 2.4 API Exemplo: Hello World Output: Texto, HTML e hora local. Compilar uma Servlets
J550. Helder da Rocha ([email protected]) www.argonavis.com.br
J550 Helder da Rocha ([email protected]) www.argonavis.com.br 1 O que são Filtros Um filtro éum componente Web que reside no servidor Intercepta as requisições e respostas no seu caminho até o servlet e de
PROJETO FRAMEWORK - CELEPAR PAGINAÇÃO DE DADOS EM APLICAÇÕES JAVA PARA INTERNET
PROJETO FRAMEWORK - CELEPAR PAGINAÇÃO DE DADOS EM APLICAÇÕES JAVA PARA INTERNET Janeiro 2005 Sumário de Informações do Documento Tipo do Documento: Definição Título do Documento: Controle de Exceções em
J550. Apache Struts. Helder da Rocha ([email protected]) www.argonavis.com.br
J550 Apache Struts Helder da Rocha ([email protected]) 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
Prova Específica Cargo Desenvolvimento
UNIVERSIDADE FEDERAL DO PIAUÍ Centro de Educação Aberta e a Distância CEAD/UFPI Rua Olavo Bilac 1148 - Centro CEP 64.280-001 Teresina PI Brasil Fones (86) 3215-4101/ 3221-6227 ; Internet: www.uapi.edu.br
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
Prof. Roberto Desenvolvimento Web Avançado
Resposta exercício 1: Configuração arquivo web.xml helloservlet br.com.exercicios.helloservlet
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,
Java II. Sérgio Luiz Ruivace Cerqueira [email protected]
Java II Sérgio Luiz Ruivace Cerqueira [email protected] Servlets Servlet Aplicação Java que é executada no servidor que estende a capacidade do servidor Web Alternativa Java para os scripts CGI Gerenciado
Introdução a JavaServer Pages. Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Desenvolvimento de sistemas web
Introdução a JavaServer Pages Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Desenvolvimento de sistemas web JavaServer Pages Problemas com Servlets: É improdutivo para gerar todo o conteúdo
Padrões de Interação com o Usuário
Padrões de Interação com o Usuário Granularidade dos Padrões Padrões estão relacionados a 3 elementos: Contexto ocorre Problema resolve Solução Problemas e Soluções podem ser observados em diferentes níveis
Programação WEB II. Formulários Em PHP. Métodos GET e POST [email protected]. Thiago Miranda dos Santos Souza
Formulários Em PHP Métodos GET e POST [email protected] Conteúdos Os materiais de aula, apostilas e outras informações estarão disponíveis em: www.thiagomiranda.net Objetivos Entender o funcionamento
Linguagem de. Aula 06. Profa Cristiane Koehler [email protected]
Linguagem de Programação IV -PHP Aula 06 Profa Cristiane Koehler [email protected] Criação de Formulários o Um formulário consiste em uma série de campos que são preenchidos pelo usuário
JSF e PrimeFaces. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul
JSF e PrimeFaces Professor: Ricardo Luis dos Santos IFSUL 2015 Agenda Introdução Desenvolvimento Web Java Server Faces Exercício 2 Introdução Ao longo dos anos diversas linguagens de programação foram
HTML Básico Formulários. Matheus Meira
HTML Básico Formulários Matheus Meira 1 Objetivos Neste apresentação conheceremos os fundamentos básicos de HTML para a manipulação com servlets e jsp. Serão vistos Formulários Links Elementos de disparo
Introdução. Entendendo os Controles. Definindo um controle. Introdução MOCKDOMAIN() Testando uma classe de domínio mockdomain
Testando uma classe de domínio mockdomain void testduracaominima() { mockdomain(musica) def musica = new Musica(duracao: 0) assertfalse 'Validacao deve falhar', musica.validate() MOCKDOMAIN() assertequals
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):
Web Design Aula 11: XHTML
Web Design Aula 11: XHTML Professora: Priscilla Suene [email protected] Motivação HTML 1.0-2.0: Havia hipertextos, não havia preocupação com a apresentação HTML 3: Guerra dos Browser (Microsoft
PADRÃO PARA MONITORAMENTO DE APLICATIVOS PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ
PADRÃO PARA MONITORAMENTO DE APLICATIVOS PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ Janeiro 2010 Sumário de Informações do Documento Tipo do Documento: Referência Título do Documento: Padrão para Monitoramento
JavaServer Faces. Parte 2
JavaServer Faces Parte 2 Recapitulando Aplicações web são aplicações que executam em um servidor Recebem requisições de usuários Retornam respostas ao usuário Browsers só entendem e exibem html O servidor
JSP - JavaServer Pages
JSP - JavaServer Pages 1 Sumário O que é o JSP? Comparação com ASP, Servlets, e Javascript Disponibilidade Um exemplo simples Mais sobre Sintaxe Um pouco de JavaBeans Um exemplo mais complexo 2 O que são
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
TECNOLOGIAS WEB. Unidade 2 Introdução a Construção de Páginas Estáticas. Luiz Leão [email protected] http://luizleao.com
Luiz Leão [email protected] http://luizleao.com CONTEÚDO PROGRAMÁTICO DESTA UNIDADE HTML TAG S HTML LINGUAGEM HTML Hypertext Markup Language Interpretada pelo navegador Não linearidade da informação Formatação
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
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
Gerador de código JSP baseado em projeto de banco de dados MySQL
Gerador de código JSP baseado em projeto de banco de dados MySQL Juliane Menin Orientanda Prof. Alexander Roberto Valdameri Orientador Roteiro Introdução e Objetivos Fundamentação Teórica Especificação
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
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)
Aprenda a usar um framework MVC desenvolvendo o login de um sistema com o Webwork utilizando seus principais recursos.
Introdução ao Webwork Samuel Mota Aprenda a usar um framework MVC desenvolvendo o login de um sistema com o Webwork utilizando seus principais recursos. Introdução Objetivo O objetivo deste tutorial é
Java II. Sérgio Luiz Ruivace Cerqueira [email protected]
Java II Sérgio Luiz Ruivace Cerqueira [email protected] 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
Aula 2: Listas e Links
Aula 2: Listas e Links Nesta segunda aula, você aprenderá a utilizar listas numeradas ou não, a entender o que são listas de definições e como fazer referências a outros documentos. Vamos entender a diferença
PÓS-GRADUAÇÃO EM MATEMÁTICA COMPUTACIONAL INFORMÁTICA INSTRUMENTAL Aula 06: Introdução Linguagem HTML
PÓS-GRADUAÇÃO EM MATEMÁTICA COMPUTACIONAL INFORMÁTICA INSTRUMENTAL Aula 06: Introdução Linguagem HTML O Desenvolvimento Web O desenvolvimento web é o termo utilizado para descrever atividade relacionada
JSTL: Uma forma padrão de desenvolver página WEB dinâmica Plácido Antonio de Souza Neto [email protected]
JSTL: Uma forma padrão de desenvolver página WEB dinâmica Plácido Antonio de Souza Neto [email protected] 26/11/2005 JSTL 1 Agenda Histórico e motivação; Servlets e JSP; Introdução e conceituação
Struts 2. Versão 1.0. Apostila destinada ao curso com carga horária de 20 (vinte) horas
Struts 2 O framework Apache Struts 2 é uma estrutura elegante e extensível para a criação de aplicações Web em Java. A estrutura foi projetada visando otimizar o ciclo completo de desenvolvimento, desde
Aula de JavaScript 05/03/10
Objetos Sabe-se que variável são contêiners que podem armazenar um número, uma string de texto ou outro valor. O JavaScript também suporta objetos. Objetos são contêiners que podem armazenar dados e inclusive
Arquitetura de uma Webapp
Arquitetura de uma Webapp Arquitetura J2EE Containers e componentes MVC: introdução Frederico Costa Guedes Pereira 2006 [email protected] Plataforma J2EE World Wide Web e a Economia da Informação
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
Incorporando JavaScript em HTML
Incorporando JavaScript em HTML Existem quatro maneiras de incorporar JavaScript em HTML. Vamos abordar as três primeiras, por ser mais comum: Entre as tags dentro do código HTML. A partir
Desenvolvimento em Ambiente Web. HTML - Introdução
Desenvolvimento em Ambiente Web HTML - Introdução O que é HTML? HTML é uma linguagem para descrever a estrutura de uma página WEB. Ela permite: Publicar documentos online com cabeçalhos, texto, tabelas,
Parte I. Demoiselle Vaadin
Parte I. Demoiselle Vaadin O Vaadin é um framework para construção de interfaces web que aplica ideias inovadoras. Apesar de usar o GWT como mecanismo para a exibição de seus componentes, eles tem características
Introdução à Tecnologia Web HTML HyperText Markup Language XHTML extensible HyperText Markup Language Estrutura Básica do Documento HTML
IntroduçãoàTecnologiaWeb HTML HyperTextMarkupLanguage XHTML extensiblehypertextmarkuplanguage EstruturaBásicadoDocumentoHTML ProfªMSc.ElizabeteMunzlinger www.elizabete.com.br ProfªMSc.ElizabeteMunzlinger
ÍNDICE. Delphi... 3 CAPÍTULO 1 INTRODUÇÃO... 06 CAPÍTULO 2 INSTALANDO O DELPHI... 10
Delphi 7 ÍNDICE CAPÍTULO 1 INTRODUÇÃO... 06 CAPÍTULO 2 INSTALANDO O DELPHI... 10 CAPÍTULO 3 INICIANDO O Delphi... 18 FORM DESIGN... 19 CODE EDITOR... 23 OBJECT INSPECTOR... 26 OBJECT TREE VIEW... 29 PALHETA
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,
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
Listando, gravando, alterando e excluindo registro do banco de dados com JSP
SISTEMAS DE INFORMAÇÃO 3º ANO PROGRAMAÇÃO II PROF. RONALDO FERREIRA DA SILVA JavaServer Pages JavaServer Pages (JSP) é uma tecnologia que ajuda os desenvolvedores de software a criarem páginas web geradas
Introdução ao Android
Introdução ao Android André Gustavo Duarte de Almeida docente.ifrn.edu.br/andrealmeida Parte 1 Conhecendo o Sistema e Primeiro Programa Roteiro Pré-requisitos Conceitos Básicos Configurando o Ambiente
Java Beans e Servlets
6 Java Beans e Servlets Prof. Autor: Daniel Morais dos Reis e-tec Brasil Programação Avançada Para Web Página1 Meta Apresentar os recursos de orientação à objetos Java em JSP e integrá-los a tecnologia
Exercícios de Revisão Java Básico
Exercícios de Revisão Java Básico (i) Programação básica (estruturada) 1) Faça um programa para calcular o valor das seguintes expressões: S 1 = 1 1 3 2 5 3 7 99... 4 50 S 2 = 21 50 22 49 23 48...250 1
J550 Segurança e Controle de erros
J550 Segurança e Controle de erros Helder da Rocha ([email protected]) www.argonavis.com.br 1 Assuntos abordados Este módulo trata de dois assuntos Como mapear erros HTTP e exceções Java a servlets ou páginas
Configurando uma aplicação Struts
Configurando uma aplicação Struts Instalando os Softwares 1. NetBeans IDE 5.0 2. Java Standard Development Kit (JDK ) version 1.4.2 or 5.0 Criando uma nova aplicação Struts 1. Click File > New Project.
Folhas de estilo. Jomi Fred Hübner [email protected]. (XSL e XPath) FURB / DSC
Folhas de estilo (XSL e XPath) Jomi Fred Hübner [email protected] FURB / DSC Fevereiro, 2004 XML Stylesheet Language (XSL) XSL é uma linguagem para descrever folhas de estilo para documentos XML. Transformer
Sistemas Distribuídos na Web. Pedro Ferreira DI - FCUL
Sistemas Distribuídos na Web Pedro Ferreira DI - FCUL Arquitetura da Web Criada por Tim Berners-Lee no CERN de Geneva Propósito: partilha de documentos Desde 1994 mantida pelo World Wide Web Consortium
SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello [email protected]
SCE-557 Técnicas de Programação para WEB Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello [email protected] 1 Cronograma Fundamentos sobre servidores e clientes Linguagens Server e Client side
LINGUAGEM DE PROGRAMAÇÃO WEB
LINGUAGEM DE PROGRAMAÇÃO WEB GABRIELA TREVISAN Formulários e Aula 3 Relembrando HTML 5 Tag Form o Utilizada para marcar a região do formulário. o Os atributos mais importantes são o method e o action.
WEBDESIGN. Professor: Paulo Marcos Trentin - [email protected] http://www.paulotrentin.com.br Escola CDI de Videira
WEBDESIGN Professor: Paulo Marcos Trentin - [email protected] http://www.paulotrentin.com.br Escola CDI de Videira Formulários e JavaScript Como visto anteriormente, JavaScript pode ser usada para
Tecnologias Web. Formulários HTML
Tecnologias Web Formulários HTML Cristiano Lehrer, M.Sc. Tag form (1/2) Todo formulário em HTML é construído usando elementos dentro de um bloco . O bloco define a URL que receberá o formulário
Programação para Internet II
Programação para Internet II Aulas 01 e 02 Prof. Fernando Freitas Costa http://professor.fimes.edu.br/fernando [email protected] Prof. Fernando 1 Ementa Instalação e configuração básica do NetBeans e
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
Prova de pré-requisito
Prova de pré-requisito PHP & MySQL: Técnicas para Web 2.0 1 - Qual das opções constrói a tabela abaixo: DIA MÊS ANO 28 04 1988 22 02 2002 a) b) c) dia mês ano
JSF - Controle de Acesso FERNANDO FREITAS COSTA
JSF - Controle de Acesso FERNANDO FREITAS COSTA ESPECIALISTA EM GESTÃO E DOCÊNCIA UNIVERSITÁRIA JSF Controle de Acesso Antes de iniciarmos este assunto, é importante conhecermos a definição de autenticação
Prof. Jhonatan Fernando
Prof. Jhonatan Fernando Métodos Programação OO Instâncias de variáveis (objetos) Mensagens Classes Herança Polimorfismo Encapsulamento Abstração Programação Estruturada Procedimentos e funções Variáveis
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
Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas)
Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Web Container: e JSP Sumário Protocolo HTTP Exemplos de JSP (Java Server Pages) Exemplos JSP 2 Protocolo HTTP URL: Um URL (Uniform
Tutorial Financeiro WEB. Spring Security
Faculdade de Tecnologia SENAC Goiás Projeto Integrador Programação com Frameworks Tutorial Financeiro WEB Spring Security Fernando Norberto Juliana Carvalho Thiago Junior Ester Xavier GTI V Matutino 2014
JSP (Java Server Pages)
JSP (Java Server Pages) Instituto Federal de Educação, Ciência e Tecnologia do Triângulo Mineiro Prof. Edwar Saliba Júnior 1 Introdução Tecnologia para desenvolvimento de aplicações WEB fundamentada na
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
Começando com Zend Framework
Começando com Zend Framework Versão brasileira da apresentação disponível em http://www.slideshare.net/baohx2000/zend-framework-19-setup-using-zendtool Ou: Como eu aprendi a parar de me preocupar e amei
Como o FIT funciona. FIT: Framework for Integrated Tests FIT. http://fit.c2.com. Dados de testes. Programa. Fixtures. classes. Resultados de testes
Como o FIT funciona FIT: Framework for Integrated Tests http://fit.c2.com Dados de testes Fixtures Programa classes FIT Resultados de testes Universidade Portucalense Engenharia de Software ES04 2014-2015
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
Documentação Usando o Javadoc
Documentação Usando o Javadoc Prof. MSc. João Carlos Pinheiro [email protected] Versão 2.1 Última Atualização: 04/2005 1 Comentários e Documentação Comentários em Java Existem três tipos de comentários
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?...
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
JSP (Java Server Pages)
JSP (Java Server Pages) André Tavares da Silva [email protected] JSP A linguagem surgiu por volta de 1995. JSP foi inicialmente inventado por Anselm Baird-Smith durante um final de semana e depois Satish
Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano
Programação Servidor para Sistemas Web 1 Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Objetivo: Apresentar a teoria por trás dos padrões na construção de aplicações Web. INTRODUÇÃO Nas aulas anteriores
PROGRAMAÇÃO ORIENTADA A OBJETO EM PHP
PROGRAMAÇÃO ORIENTADA A OBJETO EM PHP O PHP através da versão 5, veio desenvolvido com suporte a programação orientada a objetos. O que significa isso? Que a partir da versão 5 é possível criar bibliotecas
