JEE

From Wiki RB4

Introduction

Versions

  • J2EE
  • JEE (5)

Die aktuelle Version der J2EE-Spezifikation ist die Version 5.0. Der neue Name für die Spezifikation lautet Java Platform, Enterprise Edition, kurz Java EE (manchmal mit Extension 5).

Overview

JEE basiert auf der Standard Edition (Java SE) and is a collection of specifications for server-based services and frameworks:

  • Web Services Technologies
    • Implementing Enterprise Web Services (JSR 109)
    • Java API for XML-Based Web Services (JAX-WS) 2.0 (JSR 224)
    • Java API for XML-Based RPC (JAX-RPC) 1.1 (JSR 101)
    • Java Architecture for XML Binding (JAXB) 2.0 (JSR 222)
    • SOAP with Attachments API for Java (SAAJ) (JSR 67)
    • Streaming API for XML (JSR 173)
    • Web Service Metadata for the Java Platform (JSR 181)
  • Web Application Technologies
    • Java Servlet 2.5 (JSR 154)
    • JavaServer Faces 1.2 (JSR 252)
    • JavaServer Pages 2.1 (JSR 245)
    • JavaServer Pages Standard Tag Library (JSR 52)
  • Enterprise Application Technologies
    • Enterprise JavaBeans 3.0 (JSR 220)
    • J2EE Connector Architecture 1.5 (JSR 112)
    • Common Annotations for the Java Platform (JSR 250)
    • Java Message Service (JMS) (JSR 914)
    • Java Persistence API (JSR 220)
    • Java Transaction API (JTA) (JSR 907)
    • JavaBeans Activation Framework (JAF) 1.1 (JSR 925)
    • JavaMail (JSR 919)
  • Management and Security Technologies

Successfully tested JEE-server get from Sun the grade 'Jave EE compliant'.

Web-Applications

A web application is a collection of servlets, jsps, html-pages, classes and other resources installed under a specific subset of the server's URL namespace such as /catalog and possibly installed via a .war file. In the case of a web application marked "distributed" in its deployment descriptor, there will be one context instance for each virtual machine.

Directory Structure

<SERVER_ROOT>/<WEBAPP>/ JSPs, HTMLs
<SERVER_ROOT>/<WEBAPP>/WEB-INF/ deployment descriptor s. 2.2
<SERVER_ROOT>/<WEBAPP>/WEB-INF/CLASSES/ servlet and utility classes
<SERVER_ROOT>/<WEBAPP>/LIB/ Jar-Archives the application depends on. If there are duplicate classes in the classes directory they will be used.

Deployment Descriptor

Eine Web-Applikation wird im File web.xml beschrieben (s. description). Das root Element ist <web-app>.

Servlet

Ein Servlet wird duch <servlet> mit den folgenden Elementen beschrieben:

<servlet-name> required
<servlet-class> required (or use <jsp-file>) [<Packages>].<Class>

Zur Abbildung auf eine URL dient das <servlet-mapping> mit den folgenden Elementen:

<servlet-name> required
<url-pattern> required /xyz/abc => nur <WebAppURL>/xyz/abc\\\\/xyz/* => alle <WebAppURL>/*\\\\*.abc => alle <WebAppURL>/*/*.abc

Listener

<listener> braces the listener classes. <listener-class> contains the name of the class that responds to a Web Application event.

War-Files

A war file (web application archive) is just a jar file. Jar up your WEB-INF directory and any other resources (html files, jsp files, etc) into myweb.war, and drop it into your tomcat webapps directory.

Applet Code within a Web-Application

An applet is executed on the client side (browser), not on the server side (servlet container). You need to place the applet class files in a location accessible from the browser, which means you have to treat them like normal files (like HTML or GIF files that you want the browser to load). Thus they need to go in the webapp directory tree, but not in the WEB-INF subdirectory. It is best to think of the set of applet class files as entirely different from the set of servlet class files. They will be loaded by different Virtual Machines, and may even have different versions of classes. It is a simple matter to configure your build environment (Ant or make) to create copies of common class files in the two different classpath directories.


Servlets

Java Server Pages (JSP)

Java Server Faces (JSF)

JNDI

The Java Naming and Directory Interface (JNDI) is part of the Java platform, providing applications based on Java technology with a unified interface to multiple naming and directory services. JNDI works in concert with other technologies in the Java Platform, Enterprise Edition (Java EE) to organize and locate components in a distributed computing environment. JNDI erlaubt die Unterstützung praktisch aller Arten von Namens- und Verzeichnisdiensten, insbesondere von:

  • LDAP
  • DNS
  • NIS
  • CORBA Namensdienst
  • Dateisystem

JavaBeans

The JavaBeans API provides a framework for defining reusable, embeddable, modular software components.

  • Öffentlicher Standardkonstruktor (Default constructor)
  • Serialisierbarkeit (Serializable)
  • Öffentliche Zugriffmethoden (Public Getters/Setters)


Conventions

A bean defines a property <P> of type T if it has accessor methods

public <P>   get<P>() // if T is boolean public boolean  is&;ltP>()
public void     set<P>()

Eine Bean sollte keine public member haben. Die genaue Spezifikation can be found here.

Enterprise Java Beans (EJB)