Uma abordagem ao Java EE 6
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Uma abordagem ao Java EE 6

  • 2,476 views
Uploaded on

Apresentação que abordou os conceitos do Java EE assim como as novidades da versão 6, focando em Servlets 3.0 e JSF 2.0, mostrando exemplos práticos e aplicações do zero. Ao final, foi apresentado......

Apresentação que abordou os conceitos do Java EE assim como as novidades da versão 6, focando em Servlets 3.0 e JSF 2.0, mostrando exemplos práticos e aplicações do zero. Ao final, foi apresentado em execução alguns dos melhores RIAs do mercado.

More in: Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
2,476
On Slideshare
2,414
From Embeds
62
Number of Embeds
3

Actions

Shares
Downloads
57
Comments
0
Likes
0

Embeds 62

http://mgjug.com.br 32
http://www.mgjug.com.br 29
http://www.slideshare.net 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Uma abordagem ao Java EE 6Daniel 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
  • 4. Arquitetura MVCModel-View-Controller 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.0Configurando 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: FaceletsFacelets 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: FaceletsJSP 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: FaceletsJSP 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: FaceletsCustomizaçã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: FaceletsCustomizaçã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: FaceletsCustomizaçã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: FaceletsCustomizaçã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.0Exemplo Prático www.mgjug.com.br
  • 33. RIA – Rich Internet Application ZK Framework; Richfaces; Apache Trinidad; Icefaces; Primefaces; Vaadin. www.mgjug.com.br
  • 34. RIAExemplo Prático www.mgjug.com.br
  • 35. Próximos passos www.mgjug.com.br
  • 36. Próximos passosComunidades virtuais•http://www.portaljava.com•http://www.guj.com.brGrupos de usuários•http://www.soujava.org.br•http://www.mgjug.com.br•http://www.rsjug.org•http://www.dfjug.orgCursos on-line•http://jedi.wv.com.br www.mgjug.com.br
  • 37. Próximos passosDownload JDK•http://www.oracle.com/technetwork/java/javase/downloads/index.htmlDownload Netbeans IDE•http://www.netbeans.orgDownload 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.netAdriano de Pinho Tavares - adriano@mgjug.com.brCoordenadores:Daniel Felicíssimo Campos - daniel.felicissimo@gmail.comJuarez Alvares Barbosa Junior - juarez.barbosa@gmail.com + de 500Marco Aurélio de Souza Mendes - corelio@gmail.comAlcebíades Araujo - alcebiades.araujo@arkhi.com.br membrosFabiano G. Souza - fabiano@gmail.comVinicius Carvalho - viniciusccarvalho@gmail.com www.mgjug.com.br
  • 39. Perguntas? www.mgjug.com.br
  • 40. Obrigado! www.mgjug.com.br