SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Downloaden Sie, um offline zu lesen
Uma abordagem ao Java EE 6
Daniel Campos e Ernesto Oliveira
Tópicos Abordados
     JavaEE, o que é?;
     Arquitetura MVC;
     As novidades do Java EE 6;
     RIA e exemplos práticos;
     Próximos passos.




                          www.mgjug.com.br
JavaEE, o que é?
 Conjunto de bibliotecas (API);
 Padrão de desenvolvimento;
Componentes modulares;
Executada em um servidor:
   Web container:
      Tomcat.

   Application Server:
      Glassfish;

      JbossAS.


                                   www.mgjug.com.br
Arquitetura MVC
Model-View-Controller




                        www.mgjug.com.br
As novidades do Java EE 6




                            www.mgjug.com.br
As novidades do Java EE 6
  Servlet 3.0

 Como é no Servlet 2.5;
 Como está no Servlet 3.0;
 Modularização do web.xml;
 Servlets em tempo de execução;
 Asynchronous Processing.




                                   www.mgjug.com.br
As novidades do Java EE 6
 Como é no Servlet 2.5
 Declarações extensas no arquivo web.xml.

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns=“http://java.sun.com/xml/ns/javaee”
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance”
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd”     version="2.5">
           <display-name>Aplicação WEB</display-name>
           <servlet>
                 <servlet-name>HelloWorld</servlet-name>
                 <servlet-class>com.webapp. HelloWorld</servlet-class>
           </servlet>
           <servlet-mapping>
                 <servlet-name>HelloWorld</servlet-name>
                 <url-pattern>/hello</url-pattern>
           </servlet-mapping>
    </web-app>

                                                                            www.mgjug.com.br
As novidades do Java EE 6
 Como é no Servlet 2.5
    public class HelloWorld extends HttpServlet {

     @Override
    protected void doGet(HttpServletRequest request,
    HttpServetResponse response) throws ServletException,
    IOException {
         PrintWriter out = response.getWriter();
         out.println(“MGJUG");
     }
     @Override
       protected void doPost(HttpServletRequest request,
    HttpServletResponse response)
            throws ServletException, IOException {

        }
    }
                                                    www.mgjug.com.br
As novidades do Java EE 6
 Como está no Servlet 3.0
 Uso de anotações (annotations) ao invés de
 XML.
  @WebServlet(“/hello”)
  public class HelloWorld extends HttpServlet {

   @Override
  protected void doGet(HttpServletRequest request,
  HttpServetResponse response) throws ServletException,
  IOException {
       PrintWriter out = response.getWriter();
  ...




                                                     www.mgjug.com.br
As novidades do Java EE 6
  Como está no Servlet 3.0
Configurando um servlet utilizando os atributos value e initParams:
 @WebServlet(value="/hello“,
 initParams={@WebInitParam(name=“jug",value="mgjug")
 })
 public class HelloWorld extends HttpServlet {
  ...
Configurando várias url’s utilizando o atributo urlPatterns:

  @WebServlet(urlPatterns={"/hello","/hello2"})
  public class HelloWorld extends HttpServlet {
  ...

                   Lembre-se, não é possível ter ao
                   mesmo tempo os atributos value
                   e urlPatterns!                                www.mgjug.com.br
As novidades do Java EE 6
 Como está no Servlet 3.0

Outras annotations:
  @WebFilter;
  @WebListener;




                            www.mgjug.com.br
As novidades do Java EE 6
  Servlet 3.0: Modularização do web.xml
 Organização;
 Pode utilizar as mesmas tags do web.xml. Ex
  servlet,servlet-mapping, etc.;
 A ordem de carga dos web-fragments pode ser definida;
 Localização (META-INF ou WEB-INF/lib).


                   <web-fragment>
                     <name>Fragmento_A</name>
                   </web-fragment>

                   <web-fragment>
                     <name>Fragmento_B</name>
                   </web-fragment>

                       web-fragment.xml          www.mgjug.com.br
As novidades do Java EE 6
  Servlet 3.0 : Modularização do web.xml

 Definindo a ordenação no web.xml;


                  <absolute-ordering>

                  <name>Fragmento_B</name>

                  <name>Fragmento_A</name>

                  </absolute-ordering>

                             web.xml




                                             www.mgjug.com.br
As novidades do Java EE 6
  Servlet 3.0: Servlets em tempo de execução
 Interface ServletContext com novos métodos;
 Dispensa utilização de @WebServlet.

      try{
        ProgrammaticallyConfiguredServlet servlet = servletContext.
        createServlet(ProgrammaticallyConfiguredServlet.class);

      servletContext.addServlet("ProgrammaticallyConfiguredSer
      vlet“, servlet);
       ServletRegistration servletRegistration =
      servletContext.getServletRegistration( "ProgrammaticallyConfi
      guredServlet");

      servletRegistration.addMapping("/ProgrammaticallyConfigured
      Servlet");
      }catch (ServletException servletException){
       servletContext.log(servletException.getMessage());
      }

                                                                      www.mgjug.com.br
As novidades do Java EE 6
  Servlet 3.0: Asynchronous Processing

 Utilização de mais uma Thread por requisição;
 Libera thread para outras requisições;
 Configuração feita através do atributo asyncSupported =
  true.

       @WebServlet(name = "AsynchronousServlet", urlPatterns = {
       "/AsynchronousServlet"}, asyncSupported = true)




                                                            www.mgjug.com.br
Servlet 3.0
 Exemplo
  Prático




              www.mgjug.com.br
As novidades do Java EE 6
  JavaServer Faces (JSF2.0)

Facelets;
Faces-config.xml opcional;
Localização padrão de arquivos de
 recurso;
Suporte nativo à Ajax;




                                     www.mgjug.com.br
As novidades do Java EE 6
  JSF 2.0: Facelets
Novo padrão do JSF para camada de visão;
Versões antigas utilizavam JSP;
XHTML, ganho de desempenho (30% a
 50%);
Facilidade na criação e reutilização de
 templates;
Independende de web container;
Criação de componentes reutilizáveis.

                                     www.mgjug.com.br
As novidades do Java EE 6
 JSF 2.0: Facelets
Facelets x JSP

JSP é compilada, executada, produzido o
 html e enviado ao browser;
Facelets utiliza processo rápido de
 compilação SAX-parser e foi concebido
 respeitando o ciclo de vida da árvore de
 componentes do JSF.


                                    www.mgjug.com.br
As novidades do Java EE 6
  JSF 2.0: Facelets
JSP compilada
 public class _LOGIN extends com.orionserver.http.OrionHttpJspPage {
   
   // ** Begin Declarations
   // ** End Declarations
  
   public void _jspService(HttpServletRequest request, HttpServletResponse response) throws
 java.io.IOException, ServletException {
  
     response.setContentType( "text/html;charset=ISO-8859-1");
     /* set up the intrinsic variables using the pageContext goober:
     ** session = HttpSession
     ** application = ServletContext
     ** out = JspWriter
     ** page = this
     ** config = ServletConfig
     ** all session/app beans declared in globals.jsa
     */




                                                                                   www.mgjug.com.br
As novidades do Java EE 6
  JSF 2.0: Facelets
JSP compilada
 __jsp_tag_ctru0.setPageContext(pageContext);
      __jsp_tag_ctru0.setParent(null);
      __jsp_tag_starteval=__jsp_tag_ctru0.doStartTag();
      if (OracleJspRuntime.checkStartBodyTagEval(__jsp_tag_starteval))

 out.print(TelaPBAb.getWebRootApp(pageContext) +"/css/sicaf/sicaf.css" );
         __ojsp_s_out.write(__oracle_jsp_text[1]);
         out.print(TelaPBAb.getWebRootApp(pageContext)
 +"/css/sicaf/unifw.css" );
         __ojsp_s_out.write(__oracle_jsp_text[2]);

 __oracle_jsp_text[10] =
    "/js/sicaf/unifwMenuInit.js"></script>rn<script language="JavaScript1.2"
 fptype="dynamicanimation" src="".getBytes("ISO8859_1");




                                                                          www.mgjug.com.br
As novidades do Java EE 6
  JSF 2.0: Facelets
Customização / Reutilização de componentes


          < Cabeçalho omitido >


          <ui:component>
            <h:outputLabel for="#{id}" value="#{label}" />
            <h:inputText id="#{id}" value="#{value}" />
            <h:message for="#{id}" />
          </ui:component>




                        itemFormulario.hxtml


                                                             www.mgjug.com.br
As novidades do Java EE 6
  JSF 2.0: Facelets
Customização / Reutilização de componentes


      < Cabeçalho omitido >


      <facelet-taglib>
         <namespace>http://exemplo.com.br/jsf</namespace>
         <tag>
            <tag-name>itemFormulario</tag-name>
            <source>itemFormulario.xhtml</source>
         </tag>
      </facelet-taglib>

                          meuProjeto.taglib.xml

                                                        www.mgjug.com.br
As novidades do Java EE 6
  JSF 2.0: Facelets
Customização / Reutilização de componentes

  Registrando a Taglib



   < Cabeçalho omitido >

   <context-param>
     <param-name>facelets.LIBRARIES</param-name>
     <param-value>/WEB-INF/facelets/meuProjeto.taglib.xml</param-value>
   </context-param>



                                web.xml


                                                                   www.mgjug.com.br
As novidades do Java EE 6
  JSF 2.0: Facelets
Customização / Reutilização de componentes

  Utilização



 <html xmlns=http://www.w3.org/1999/xhtml
 xmlns:custom="http://exemplo.com.br/jsf">

 <body>
   <custom:itemFormulario id="username" label=“Login:"
 value="#{loginController.username}" />
 </body>


                                  minhaPagina.xhtml


                                                         www.mgjug.com.br
As novidades do Java EE 6
 JSF 2.0: Faces-config.xml opcional

 JSF 1.2
   • Definição de managed-bean;
   • Definição de regras de navegação.




                                  www.mgjug.com.br
As novidades do Java EE 6
 JSF 2.0: Faces-config.xml opcional
 <faces-config version="2.0"
 xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation=http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-
 facesconfig_2_0.xsd>
 <managed-bean>
  <managed-bean-name>UsuarioManagedBean</managed-bean-name>
  <managed-bean-class>br.com.UsuarioManagedBean</managed-bean-class>
  <managed-bean-scope>request</managed-bean-scope>
 </managed-bean>
  <navigation-rule>
    <from-view-id>/index.xhtml</from-view-id>
    <navigation-case>
     <from-outcome>inserir</from-outcome>
     <to-view-id>/usuario/cadastrar.xhtml</to-view-id>
    </navigation-case>
  </navigation-rule>
 </faces-config>


                                                                               www.mgjug.com.br
As novidades do Java EE 6
 JSF 2.0: Faces-config.xml opcional

 JSF 2.0
   • Managed-bean anotado na própria
     classe;
   • Regras de navegação utilizam o
     nome do arquivo .xhtml (por default)
     através do action value (command
     link ou command button).


                                    www.mgjug.com.br
As novidades do Java EE 6
 JSF 2.0: Faces-config.xml opcional

   Classe

   @ManagedBean(name = "login")
   @RequestScoped
   public class LoginManagedBean {



  Arquivo .xhtml

  <h:commandButton action="usuario/cadastrar" value="Cadastrar" />



                                                          www.mgjug.com.br
As novidades do Java EE 6
 JSF 2.0: Localização padrão de arquivos de recurso

 Resources são artefatos que uma página
  JSF precisa para renderizar devidamente;
    CSS;
    Javascript;
    Imagens;
 Localização (Raíz ou dentro do META-INF).




                                        www.mgjug.com.br
As novidades do Java EE 6
 JSF 2.0: Localização padrão de arquivos de recurso

 Por exemplo, podemos colocar um arquivo de estilo chamado styles.css no caminho
                              /resources/css/styles.css.

 Em nossas páginas JSF, nós podemos chamá-lo usando a tag <h:outputStylesheet>:


            <h:outputStylesheet library="css" name="styles.css"/>


 O valor do atributo library deve ser equivalente ao subdiretório de resources, nesse caso,
 css.

 Exemplos para Javascript e Imagens:

           <h:outputStylesheet library="css" name="styles.css"/>

           <h:graphicImage library="images" name="logo.png"/>
                                                                           www.mgjug.com.br
JSF 2.0
Exemplo
 Prático




           www.mgjug.com.br
RIA – Rich Internet Application

 ZK Framework;
 Richfaces;
 Apache Trinidad;
 Icefaces;
 Primefaces;
 Vaadin.

                           www.mgjug.com.br
RIA
Exemplo
 Prático




           www.mgjug.com.br
Próximos passos




                  www.mgjug.com.br
Próximos passos
Comunidades virtuais
•http://www.portaljava.com
•http://www.guj.com.br

Grupos de usuários
•http://www.soujava.org.br
•http://www.mgjug.com.br
•http://www.rsjug.org
•http://www.dfjug.org

Cursos on-line
•http://jedi.wv.com.br
                             www.mgjug.com.br
Próximos passos
Download JDK
•http://www.oracle.com/technetwork/java/javase/d
ownloads/index.html

Download Netbeans IDE
•http://www.netbeans.org

Download Eclipse IDE
•http://www.eclipse.org




                                         www.mgjug.com.br
MGJUG
•   Divulgação de vagas de emprego;
•   Divulgação de eventos;
•   Dúvidas;
•   Novidades;


JUG Leader :
                                                           users-subscribe@mgjug.dev.java.net
Adriano de Pinho Tavares - adriano@mgjug.com.br

Coordenadores:
Daniel Felicíssimo Campos - daniel.felicissimo@gmail.com
Juarez Alvares Barbosa Junior - juarez.barbosa@gmail.com              + de 500
Marco Aurélio de Souza Mendes - corelio@gmail.com
Alcebíades Araujo - alcebiades.araujo@arkhi.com.br
                                                                      membros
Fabiano G. Souza - fabiano@gmail.com
Vinicius Carvalho - viniciusccarvalho@gmail.com


                                                                             www.mgjug.com.br
Perguntas?




             www.mgjug.com.br
Obrigado!




            www.mgjug.com.br

Weitere ähnliche Inhalte

Was ist angesagt?

Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Helder da Rocha
 
Build Automation Evolved
Build Automation EvolvedBuild Automation Evolved
Build Automation EvolvedMarcelo Diniz
 
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Helder da Rocha
 
Java Web 2 - Ferramentas e configuração
Java Web 2 - Ferramentas e configuraçãoJava Web 2 - Ferramentas e configuração
Java Web 2 - Ferramentas e configuraçãoEduardo Mendes
 
API de segurança do Java EE 8
API de segurança do Java EE 8API de segurança do Java EE 8
API de segurança do Java EE 8Helder da Rocha
 
Trabalho ProgramaçãO Comercial Ii
Trabalho ProgramaçãO Comercial IiTrabalho ProgramaçãO Comercial Ii
Trabalho ProgramaçãO Comercial IiMateus Ramos Pereira
 
Java Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e TaglibsJava Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e TaglibsEduardo Mendes
 
Aula 1 - curso java web - JSP Java Server Page
Aula 1 - curso java web - JSP Java Server PageAula 1 - curso java web - JSP Java Server Page
Aula 1 - curso java web - JSP Java Server PageEvandro Júnior
 
Minicurso de Segurança em Java EE 7
Minicurso de Segurança em Java EE 7Minicurso de Segurança em Java EE 7
Minicurso de Segurança em Java EE 7Helder da Rocha
 
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)Rafael Ponte
 
Hibernate efetivo (IA-2014 / Disturbing the Mind)
Hibernate efetivo (IA-2014 / Disturbing the Mind)Hibernate efetivo (IA-2014 / Disturbing the Mind)
Hibernate efetivo (IA-2014 / Disturbing the Mind)Rafael Ponte
 
Migrations for Java (Javou #4 - JavaCE)
Migrations for Java (Javou #4 - JavaCE)Migrations for Java (Javou #4 - JavaCE)
Migrations for Java (Javou #4 - JavaCE)Rafael Ponte
 

Was ist angesagt? (20)

Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)
 
JSP com tags padrão
JSP com tags padrãoJSP com tags padrão
JSP com tags padrão
 
Build Automation Evolved
Build Automation EvolvedBuild Automation Evolved
Build Automation Evolved
 
Servlets e jsp
Servlets e jspServlets e jsp
Servlets e jsp
 
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
 
Java Web 2 - Ferramentas e configuração
Java Web 2 - Ferramentas e configuraçãoJava Web 2 - Ferramentas e configuração
Java Web 2 - Ferramentas e configuração
 
API de segurança do Java EE 8
API de segurança do Java EE 8API de segurança do Java EE 8
API de segurança do Java EE 8
 
Trabalho ProgramaçãO Comercial Ii
Trabalho ProgramaçãO Comercial IiTrabalho ProgramaçãO Comercial Ii
Trabalho ProgramaçãO Comercial Ii
 
Servlets e JSP
Servlets e JSPServlets e JSP
Servlets e JSP
 
Java Web 1 Introducao
Java Web 1 IntroducaoJava Web 1 Introducao
Java Web 1 Introducao
 
Java Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e TaglibsJava Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e Taglibs
 
Tutorial +login+mvc
Tutorial +login+mvcTutorial +login+mvc
Tutorial +login+mvc
 
servlet-introducao
servlet-introducaoservlet-introducao
servlet-introducao
 
Aula 1 - curso java web - JSP Java Server Page
Aula 1 - curso java web - JSP Java Server PageAula 1 - curso java web - JSP Java Server Page
Aula 1 - curso java web - JSP Java Server Page
 
Minicurso de Segurança em Java EE 7
Minicurso de Segurança em Java EE 7Minicurso de Segurança em Java EE 7
Minicurso de Segurança em Java EE 7
 
Jaas apresentado
Jaas apresentadoJaas apresentado
Jaas apresentado
 
Frameworks em Java
Frameworks em JavaFrameworks em Java
Frameworks em Java
 
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
 
Hibernate efetivo (IA-2014 / Disturbing the Mind)
Hibernate efetivo (IA-2014 / Disturbing the Mind)Hibernate efetivo (IA-2014 / Disturbing the Mind)
Hibernate efetivo (IA-2014 / Disturbing the Mind)
 
Migrations for Java (Javou #4 - JavaCE)
Migrations for Java (Javou #4 - JavaCE)Migrations for Java (Javou #4 - JavaCE)
Migrations for Java (Javou #4 - JavaCE)
 

Ähnlich wie Uma abordagem ao Java EE 6

TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.Rogério Napoleão Jr.
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebElenilson Vieira
 
Apache Wicket - Desenvolvimento WEB orientado a componentes
Apache Wicket - Desenvolvimento WEB orientado a componentesApache Wicket - Desenvolvimento WEB orientado a componentes
Apache Wicket - Desenvolvimento WEB orientado a componentesCI&T
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationMario Sergio
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer FacesEduardo Bregaida
 
JavaScript Model-View no Frontend
JavaScript Model-View no FrontendJavaScript Model-View no Frontend
JavaScript Model-View no FrontendHenrique Gogó
 
Cactus - Testes em J2EE com Jakarta Cactus
Cactus - Testes em J2EE com Jakarta CactusCactus - Testes em J2EE com Jakarta Cactus
Cactus - Testes em J2EE com Jakarta CactusDenis L Presciliano
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysDr. Spock
 
Revisao Geral
Revisao GeralRevisao Geral
Revisao GeralOscar
 
Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Anderson Araújo
 
Javaone Brazil 2012: Integrando Ext JS 4 com Java EE
Javaone Brazil 2012: Integrando Ext JS 4 com Java EEJavaone Brazil 2012: Integrando Ext JS 4 com Java EE
Javaone Brazil 2012: Integrando Ext JS 4 com Java EELoiane Groner
 
Testes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosTestes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosDiego Santos
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysDr. Spock
 
JSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaEduardo Bregaida
 
JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010Eder Magalhães
 
Jsf – Java Sever Faces
Jsf – Java Sever FacesJsf – Java Sever Faces
Jsf – Java Sever Facesbielgott
 
Minha aplicação Java vai pra nuvem. E agora?
Minha aplicação Java vai pra nuvem. E agora?Minha aplicação Java vai pra nuvem. E agora?
Minha aplicação Java vai pra nuvem. E agora?Felipe Mamud
 

Ähnlich wie Uma abordagem ao Java EE 6 (20)

TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias Web
 
Apache Wicket - Desenvolvimento WEB orientado a componentes
Apache Wicket - Desenvolvimento WEB orientado a componentesApache Wicket - Desenvolvimento WEB orientado a componentes
Apache Wicket - Desenvolvimento WEB orientado a componentes
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web Application
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer Faces
 
JavaScript Model-View no Frontend
JavaScript Model-View no FrontendJavaScript Model-View no Frontend
JavaScript Model-View no Frontend
 
Cactus - Testes em J2EE com Jakarta Cactus
Cactus - Testes em J2EE com Jakarta CactusCactus - Testes em J2EE com Jakarta Cactus
Cactus - Testes em J2EE com Jakarta Cactus
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
Revisao Geral
Revisao GeralRevisao Geral
Revisao Geral
 
Java Server Pages
Java Server PagesJava Server Pages
Java Server Pages
 
Jsf
JsfJsf
Jsf
 
Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Como escolher o Framework Java para web?
Como escolher o Framework Java para web?
 
Model View Controller
Model View ControllerModel View Controller
Model View Controller
 
Javaone Brazil 2012: Integrando Ext JS 4 com Java EE
Javaone Brazil 2012: Integrando Ext JS 4 com Java EEJavaone Brazil 2012: Integrando Ext JS 4 com Java EE
Javaone Brazil 2012: Integrando Ext JS 4 com Java EE
 
Testes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosTestes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizados
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
JSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.java
 
JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010JSF2 ScrumToys SestInfo 2010
JSF2 ScrumToys SestInfo 2010
 
Jsf – Java Sever Faces
Jsf – Java Sever FacesJsf – Java Sever Faces
Jsf – Java Sever Faces
 
Minha aplicação Java vai pra nuvem. E agora?
Minha aplicação Java vai pra nuvem. E agora?Minha aplicação Java vai pra nuvem. E agora?
Minha aplicação Java vai pra nuvem. E agora?
 

Uma abordagem ao Java EE 6

  • 1. Uma abordagem ao Java EE 6 Daniel Campos e Ernesto Oliveira
  • 2. Tópicos Abordados  JavaEE, o que é?;  Arquitetura MVC;  As novidades do Java EE 6;  RIA e exemplos práticos;  Próximos passos. www.mgjug.com.br
  • 3. JavaEE, o que é?  Conjunto de bibliotecas (API);  Padrão de desenvolvimento; Componentes modulares; Executada em um servidor:  Web container:  Tomcat.  Application Server:  Glassfish;  JbossAS. www.mgjug.com.br
  • 5. As novidades do Java EE 6 www.mgjug.com.br
  • 6. As novidades do Java EE 6 Servlet 3.0  Como é no Servlet 2.5;  Como está no Servlet 3.0;  Modularização do web.xml;  Servlets em tempo de execução;  Asynchronous Processing. www.mgjug.com.br
  • 7. As novidades do Java EE 6 Como é no Servlet 2.5  Declarações extensas no arquivo web.xml. <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns=“http://java.sun.com/xml/ns/javaee” xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd” version="2.5"> <display-name>Aplicação WEB</display-name> <servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>com.webapp. HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app> www.mgjug.com.br
  • 8. As novidades do Java EE 6 Como é no Servlet 2.5 public class HelloWorld extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServetResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println(“MGJUG"); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } } www.mgjug.com.br
  • 9. As novidades do Java EE 6 Como está no Servlet 3.0  Uso de anotações (annotations) ao invés de XML. @WebServlet(“/hello”) public class HelloWorld extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServetResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); ... www.mgjug.com.br
  • 10. As novidades do Java EE 6 Como está no Servlet 3.0 Configurando um servlet utilizando os atributos value e initParams: @WebServlet(value="/hello“, initParams={@WebInitParam(name=“jug",value="mgjug") }) public class HelloWorld extends HttpServlet { ... Configurando várias url’s utilizando o atributo urlPatterns: @WebServlet(urlPatterns={"/hello","/hello2"}) public class HelloWorld extends HttpServlet { ... Lembre-se, não é possível ter ao mesmo tempo os atributos value e urlPatterns! www.mgjug.com.br
  • 11. As novidades do Java EE 6 Como está no Servlet 3.0 Outras annotations: @WebFilter; @WebListener; www.mgjug.com.br
  • 12. As novidades do Java EE 6 Servlet 3.0: Modularização do web.xml  Organização;  Pode utilizar as mesmas tags do web.xml. Ex servlet,servlet-mapping, etc.;  A ordem de carga dos web-fragments pode ser definida;  Localização (META-INF ou WEB-INF/lib). <web-fragment> <name>Fragmento_A</name> </web-fragment> <web-fragment> <name>Fragmento_B</name> </web-fragment> web-fragment.xml www.mgjug.com.br
  • 13. As novidades do Java EE 6 Servlet 3.0 : Modularização do web.xml  Definindo a ordenação no web.xml; <absolute-ordering> <name>Fragmento_B</name> <name>Fragmento_A</name> </absolute-ordering> web.xml www.mgjug.com.br
  • 14. As novidades do Java EE 6 Servlet 3.0: Servlets em tempo de execução  Interface ServletContext com novos métodos;  Dispensa utilização de @WebServlet. try{ ProgrammaticallyConfiguredServlet servlet = servletContext. createServlet(ProgrammaticallyConfiguredServlet.class); servletContext.addServlet("ProgrammaticallyConfiguredSer vlet“, servlet); ServletRegistration servletRegistration = servletContext.getServletRegistration( "ProgrammaticallyConfi guredServlet"); servletRegistration.addMapping("/ProgrammaticallyConfigured Servlet"); }catch (ServletException servletException){ servletContext.log(servletException.getMessage()); } www.mgjug.com.br
  • 15. As novidades do Java EE 6 Servlet 3.0: Asynchronous Processing  Utilização de mais uma Thread por requisição;  Libera thread para outras requisições;  Configuração feita através do atributo asyncSupported = true. @WebServlet(name = "AsynchronousServlet", urlPatterns = { "/AsynchronousServlet"}, asyncSupported = true) www.mgjug.com.br
  • 16. Servlet 3.0 Exemplo Prático www.mgjug.com.br
  • 17. As novidades do Java EE 6 JavaServer Faces (JSF2.0) Facelets; Faces-config.xml opcional; Localização padrão de arquivos de recurso; Suporte nativo à Ajax; www.mgjug.com.br
  • 18. As novidades do Java EE 6 JSF 2.0: Facelets Novo padrão do JSF para camada de visão; Versões antigas utilizavam JSP; XHTML, ganho de desempenho (30% a 50%); Facilidade na criação e reutilização de templates; Independende de web container; Criação de componentes reutilizáveis. www.mgjug.com.br
  • 19. As novidades do Java EE 6 JSF 2.0: Facelets Facelets x JSP JSP é compilada, executada, produzido o html e enviado ao browser; Facelets utiliza processo rápido de compilação SAX-parser e foi concebido respeitando o ciclo de vida da árvore de componentes do JSF. www.mgjug.com.br
  • 20. As novidades do Java EE 6 JSF 2.0: Facelets JSP compilada public class _LOGIN extends com.orionserver.http.OrionHttpJspPage {    // ** Begin Declarations // ** End Declarations   public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException {   response.setContentType( "text/html;charset=ISO-8859-1"); /* set up the intrinsic variables using the pageContext goober: ** session = HttpSession ** application = ServletContext ** out = JspWriter ** page = this ** config = ServletConfig ** all session/app beans declared in globals.jsa */ www.mgjug.com.br
  • 21. As novidades do Java EE 6 JSF 2.0: Facelets JSP compilada __jsp_tag_ctru0.setPageContext(pageContext); __jsp_tag_ctru0.setParent(null); __jsp_tag_starteval=__jsp_tag_ctru0.doStartTag(); if (OracleJspRuntime.checkStartBodyTagEval(__jsp_tag_starteval)) out.print(TelaPBAb.getWebRootApp(pageContext) +"/css/sicaf/sicaf.css" ); __ojsp_s_out.write(__oracle_jsp_text[1]); out.print(TelaPBAb.getWebRootApp(pageContext) +"/css/sicaf/unifw.css" ); __ojsp_s_out.write(__oracle_jsp_text[2]); __oracle_jsp_text[10] = "/js/sicaf/unifwMenuInit.js"></script>rn<script language="JavaScript1.2" fptype="dynamicanimation" src="".getBytes("ISO8859_1"); www.mgjug.com.br
  • 22. As novidades do Java EE 6 JSF 2.0: Facelets Customização / Reutilização de componentes < Cabeçalho omitido > <ui:component> <h:outputLabel for="#{id}" value="#{label}" /> <h:inputText id="#{id}" value="#{value}" /> <h:message for="#{id}" /> </ui:component> itemFormulario.hxtml www.mgjug.com.br
  • 23. As novidades do Java EE 6 JSF 2.0: Facelets Customização / Reutilização de componentes < Cabeçalho omitido > <facelet-taglib> <namespace>http://exemplo.com.br/jsf</namespace> <tag> <tag-name>itemFormulario</tag-name> <source>itemFormulario.xhtml</source> </tag> </facelet-taglib> meuProjeto.taglib.xml www.mgjug.com.br
  • 24. As novidades do Java EE 6 JSF 2.0: Facelets Customização / Reutilização de componentes Registrando a Taglib < Cabeçalho omitido > <context-param> <param-name>facelets.LIBRARIES</param-name> <param-value>/WEB-INF/facelets/meuProjeto.taglib.xml</param-value> </context-param> web.xml www.mgjug.com.br
  • 25. As novidades do Java EE 6 JSF 2.0: Facelets Customização / Reutilização de componentes Utilização <html xmlns=http://www.w3.org/1999/xhtml xmlns:custom="http://exemplo.com.br/jsf"> <body> <custom:itemFormulario id="username" label=“Login:" value="#{loginController.username}" /> </body> minhaPagina.xhtml www.mgjug.com.br
  • 26. As novidades do Java EE 6 JSF 2.0: Faces-config.xml opcional JSF 1.2 • Definição de managed-bean; • Definição de regras de navegação. www.mgjug.com.br
  • 27. As novidades do Java EE 6 JSF 2.0: Faces-config.xml opcional <faces-config version="2.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web- facesconfig_2_0.xsd> <managed-bean> <managed-bean-name>UsuarioManagedBean</managed-bean-name> <managed-bean-class>br.com.UsuarioManagedBean</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean> <navigation-rule> <from-view-id>/index.xhtml</from-view-id> <navigation-case> <from-outcome>inserir</from-outcome> <to-view-id>/usuario/cadastrar.xhtml</to-view-id> </navigation-case> </navigation-rule> </faces-config> www.mgjug.com.br
  • 28. As novidades do Java EE 6 JSF 2.0: Faces-config.xml opcional JSF 2.0 • Managed-bean anotado na própria classe; • Regras de navegação utilizam o nome do arquivo .xhtml (por default) através do action value (command link ou command button). www.mgjug.com.br
  • 29. As novidades do Java EE 6 JSF 2.0: Faces-config.xml opcional Classe @ManagedBean(name = "login") @RequestScoped public class LoginManagedBean { Arquivo .xhtml <h:commandButton action="usuario/cadastrar" value="Cadastrar" /> www.mgjug.com.br
  • 30. As novidades do Java EE 6 JSF 2.0: Localização padrão de arquivos de recurso Resources são artefatos que uma página JSF precisa para renderizar devidamente;  CSS;  Javascript;  Imagens; Localização (Raíz ou dentro do META-INF). www.mgjug.com.br
  • 31. As novidades do Java EE 6 JSF 2.0: Localização padrão de arquivos de recurso Por exemplo, podemos colocar um arquivo de estilo chamado styles.css no caminho /resources/css/styles.css. Em nossas páginas JSF, nós podemos chamá-lo usando a tag <h:outputStylesheet>: <h:outputStylesheet library="css" name="styles.css"/> O valor do atributo library deve ser equivalente ao subdiretório de resources, nesse caso, css. Exemplos para Javascript e Imagens: <h:outputStylesheet library="css" name="styles.css"/> <h:graphicImage library="images" name="logo.png"/> www.mgjug.com.br
  • 32. JSF 2.0 Exemplo Prático www.mgjug.com.br
  • 33. RIA – Rich Internet Application ZK Framework; Richfaces; Apache Trinidad; Icefaces; Primefaces; Vaadin. www.mgjug.com.br
  • 34. RIA Exemplo Prático www.mgjug.com.br
  • 35. Próximos passos www.mgjug.com.br
  • 36. Próximos passos Comunidades virtuais •http://www.portaljava.com •http://www.guj.com.br Grupos de usuários •http://www.soujava.org.br •http://www.mgjug.com.br •http://www.rsjug.org •http://www.dfjug.org Cursos on-line •http://jedi.wv.com.br www.mgjug.com.br
  • 37. Próximos passos Download JDK •http://www.oracle.com/technetwork/java/javase/d ownloads/index.html Download Netbeans IDE •http://www.netbeans.org Download Eclipse IDE •http://www.eclipse.org www.mgjug.com.br
  • 38. MGJUG • Divulgação de vagas de emprego; • Divulgação de eventos; • Dúvidas; • Novidades; JUG Leader : users-subscribe@mgjug.dev.java.net Adriano de Pinho Tavares - adriano@mgjug.com.br Coordenadores: Daniel Felicíssimo Campos - daniel.felicissimo@gmail.com Juarez Alvares Barbosa Junior - juarez.barbosa@gmail.com + de 500 Marco Aurélio de Souza Mendes - corelio@gmail.com Alcebíades Araujo - alcebiades.araujo@arkhi.com.br membros Fabiano G. Souza - fabiano@gmail.com Vinicius Carvalho - viniciusccarvalho@gmail.com www.mgjug.com.br
  • 39. Perguntas? www.mgjug.com.br
  • 40. Obrigado! www.mgjug.com.br