1 / 56

Speak Java in one hour

Speak Java in one hour. An introduction in Java lingo. Wat is java?. Programmeertaal Jvm Platform 'Write Once, Run Anywhere'. Acronymen hel. NetBeans. Duke. iBatis. JAX-RPC. GlassFish. Hibernate. Struts. JVM. JBoss. IIOP. SAAJ. JAXB. Trinidad. JSR. POJO. Applet. TestNg.

hailey
Download Presentation

Speak Java in one hour

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Speak Java in one hour An introduction in Java lingo

  2. Wat is java? • Programmeertaal • Jvm • Platform • 'Write Once, Run Anywhere'

  3. Acronymen hel NetBeans Duke iBatis JAX-RPC GlassFish Hibernate Struts JVM JBoss IIOP SAAJ JAXB Trinidad JSR POJO Applet TestNg JavaDoc JavaDesktop JUnit NetBeans war JAXB Wicket JSP Drools J2EE Java SE JMS Swing WebLogic JIT JSF ant ear JDBC Servlet MyFaces Tapestry JPA JDK Java Stripes JavaFX Apache GWT Tomcat EL Java ME RichFaces SDO ADF JCP Seam TopLink JavaBeans IceFaces Log4J Ajax Cocoon JDO JSTL Velocity Groovy JCA JNDI WebSphere JDom Java EE Spring AOP SCA AWT Acegi James Gosling Lucene JMX Jre RMI Maven AMIS JAAS EJB JAXP Facelets Java Web Start Tuscany

  4. Java programming

  5. Java language • Object oriëntatie • POJO • Plain Old Java Object • properties • methods • Netwerk support • Remoting

  6. Example import java.net.*; import java.io.*; public class google { public static void main (String[] args) { try { String thisLine; URL u = new URL("http://www.google.com"); DataInputStream theHTML = new DataInputStream(u.openStream()); while ((thisLine = theHTML.readLine()) != null) { System.out.println(thisLine); } } catch (MalformedURLException e) { System.err.println(e); } catch (IOException e) { System.err.println(e); } } }

  7. bytecode .java .class compiler platform / libraries jvm jit compilation OS

  8. IDE • Code completion • Syntax Highlighting • Wizards • Documentation • Refactoring • Unittest support • Delivery support • Compilation • Classpath organization • ... • Eclipse • WSAD • JDeveloper • IntelliJ IDEA • NetBeans • WebLogic Workshop • [Notepad] • ...

  9. Java Virtual Machine

  10. JVM • Platform specific • Run bytecode • normally, but not necessary, generated from java source code • The JVM is distributed along with a set of standard class libraries which implement the Java API (Application Programming Interface) : JRE

  11. Java Platform

  12. Java family / Platform • Java SE : Standard Edition • Java EE : Enterprise Edition • Java ME : MicroEdition • Java FX : Scripting & Mobile

  13. JAVA SE

  14. History Many version updates

  15. Java SE - Overview

  16. Delivery • jar file • java -jar MyApp

  17. Toepassingen • applets • Application in browser • GUI apps, Swing • Command line • Basis voor Java EE • Java in the DB • Webstart • automatic network distribution • ...

  18. JAVA EE

  19. History

  20. Toepassingen • Web applications • Multitier • Distributed • Transactional • SOA • Integration • Web Services • Messaging • ...

  21. Programming • Interfaces • Implementation is provided by vendors and only partially by Java EE • (vendor specific) Extensible • JavaBeans

  22. Delivery • 'Standard' directory structure • jar • war • /WEB-INF/web.xml • ear • /META-INF/application.xml • rar • ...

  23. Application Server

  24. Architecture Application Server EJB Container EJB EJB Clients EJB Other Systems Web Container jsp servlet Admin etc.

  25. Architecture

  26. Architecture

  27. Architecture

  28. JOnAS Architecture

  29. WebSphere Architecture

  30. Vendors • Oracle iAS • IBM WebSphere • BEA WebLogic • JBoss • GlassFish • Geronimo • JOnAS • SAP Netweaver • Pramati • ATG Dynamo • Tomcat • Jetty • http://en.wikipedia.org/wiki/Comparison_of_application_servers#Java

  31. Technologies

  32. Servlets • Web application • Plain java • No visual representation import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWWW extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n" + "<HTML>\n" + "<HEAD><TITLE>Hello WWW</TITLE></HEAD>\n" + "<BODY>\n" + "<H1>Hello WWW</H1>\n" + "</BODY></HTML>"); } }

  33. JSP • Web application • Visual • pre-compiled to servlet

  34. Jsp Examples <%@ page import="hello.NameHandler" %> <jsp:useBean id="mybean" scope="page" class="hello.NameHandler" /> <jsp:setProperty name="mybean" property="*" /> <html> <head><title>Hello, User</title></head> <body bgcolor="#ffffff" background="background.gif"> <%@ include file="dukebanner.html" %> <table border="0" width="700"> <tr> <td width="150"> &nbsp; </td> <td width="550"> <h1>My name is Duke. What's yours?</h1> </td> </tr> <tr> <td width="150" &nbsp; </td> <td width="550"> <form method="get"> <input type="text" name="username" size="25"> <br> <input type="submit" value="Submit"> <input type="reset" value="Reset"> </form> </td> </tr> </table> <% if ( request.getParameter("username") != null ) { %> <%@ include file="response.jsp" %> <% } %> </body> </html>

  35. Jsp with tag Examples <%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %> <html> <head> <title>JSTL: Formatting/I18N Support -- Number, Currency, and Percent Example</title> </head> <body bgcolor="#FFFFFF"> <h3>Formatting numbers, currencies, and percentages using <tt>en-US</tt> locale</h3> <fmt:setLocale value="en-US" /> <ul> <li> Format &quot;123456789&quot; as number:<br> <fmt:formatNumber value="123456789" /> <li> Format &quot;123456789&quot; as percent:<br> <fmt:formatNumber type="percent">123456789</fmt:formatNumber> <li> Format &quot;12345.67&quot; as currency:<br> <fmt:formatNumber value="12345.67" type="currency" /> <li> Format &quot;12345.67&quot; as currency, with special formatting:<br> <fmt:formatNumber value="12345.67" type="currency" groupingUsed="false" maxIntegerDigits="4" maxFractionDigits="0" /> </ul> </body> </html>

  36. JDBC • Java DataBase Connectivity • Interactie tussen java en database import java.sql.*; public class JdbcExample { public static void main(String[] args) { try { DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver()); Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@oracle:1521:orcl","scott","tiger"); Statement stmt = conn.createStatement(); ResultSet r = stmt.executeQuery ("SELECT * FROM STD"); while (r.next()) System.out.println(r.getString(2) + " " + r.getString(4)); r.close(); stmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(System.out); } } }

  37. EJB • Server-side component architecture • Message Driven Beans • Session Beans • [Entity Beans] • [JPA (Java Persistense API)] • Complicated and Complex • Improved much with 3.0

  38. Issues • Java (SE / EE) only provides the basics • Reference implementation • J2EE is too complicated • Long / slow adaptation process for new technologies

  39. Result • Framework 'hel' • Improvement of Java • EJB 3.0 • Convention over configuration • Java Persistence • JSF

  40. Frameworks

  41. Struts • Apache Framework • de-facto Standard voor jsp development • Action based • Still alive • ADF v9

  42. JSF • Visual • Component based • Java EE Standard • /WEB-INF/faces-config.xml

  43. Available component libraries • ADF Faces • JBoss RichFaces • IceFaces • MyFaces • Tobago • Trinidad • Quipukit • WebGalileoFaces • ILOG JSF tools • Jenia • Woodstock • ...

  44. Hibernate • Framework voor de interactie tussen java and de database • map java objects to db tables • query en persist • ~ ADF Business Components • ~ Toplink

  45. Ontstaan uit onvrede over complexiteit Java EE • Ease of development • Non invasive • Testability • Inversion Of Control / Dependency Injection

  46. Spring Mission Statement • We believe that: • J2EE should be easier to use • It is best to program to interfaces, rather than classes. Spring reduces the complexity cost of using interfaces to zero. • JavaBeans offer a great way of configuring applications. • OO design is more important than any implementation technology, such as J2EE. • Checked exceptions are overused in Java. A framework shouldn't force you to catch exceptions you're unlikely to be able to recover from. • Testability is essential, and a framework such as Spring should help make your code easier to test. • We aim that: • Spring should be a pleasure to use • Your application code should not depend on Spring APIs • Spring should not compete with good existing solutions, but should foster integration.

  47. Spring Projects • Spring Framework • Spring Web Flow • Spring Web Services • Spring Security (Acegi Security) • Spring Dynamic Modules For OSGi(tm) Service Platforms • Spring Batch • Spring Integration • Spring LDAP • Spring IDE • Spring Modules • Spring JavaConfig • Spring Rich Client • Spring .NET • Spring BeanDoc

  48. ADF • Visual and declarative development of J2EE applications • Onderdelen • ADF Faces • ADF Business Components • ADF Model (binding)

  49. SEAM • JBoss • Unify and integrate (o.a) • AJAX, JSF, EJB3, BPM

  50. Open Source

More Related