Sie sind auf Seite 1von 22

J2EE Overview

Web Programming CSCI 4300

J2EE multi-tier architecture

Servlet: Java class loaded into Web server JSP page: enhanced HTML page that is compiled into a servlet for deployment JavaBean: data holding class (part of Model in MVC)

J2EE Architecture

Applets and special clients: downloaded, connect back to server Enterprise Java Beans: long-term, applicationscope data storage and business logic

Web Application Layout

Mirroring packages with directories

Web Application Descriptor, web.xml


Defines servlets and maps them to URL paths Declares the welcome file for the app Specifies pages or servlets to handle various errors Provides initialization parameters to servlets Provides links to external resources such as database connections

Web.xml prolog
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" http://java.sun.com/dtd/web- app_2_3.dtd> You can validate your web.xml using the W3C validator service (recommended1) When you change your web.xml, you must ask Chris or me to reload your web-app

Web.xml root element


<web-app> web application contents. </web-app> Can contain:
Servlet definitions Servlet paths Parameters Etc, etc.

Servlet element
<servlet>
<servlet-name>GonzoServlet</servlet-name> <servlet-class>cs4300.Gonzo</servlet-class>

</servlet>

Or
<servlet>
<servlet-name>GonzoServlet</servlet-name> <jsp-page>gonzo.jsp</jsp-page>

</servlet>

Servlet-mapping element
<servlet-mapping>
<servlet-name>GonzoServlet</servlet-name> <url-pattern>/gonzo</url-pattern>

</servlet-mapping> If the web application root is http://ganesha.cs.uga.edu/myapp, GonzoServlet is accessed at http://ganesha.cs.uga.edu/myapp/gonzo

Welcome page
<welcome-file-list> <welcome-file> index.jsp </welcome-file> </welcome-file-list> Index.jsp is the file served at the URL http://ganesha.cs.uga.edu/myapp

Error page elements


<error-page> <error-code>404</error-code> <location>notFound.jsp</location> </error-page> <error-page> <exception-type> org.xml.sax.SaxParseException </exception-type> <location>parseError.jsp</location> </error-page>

Basic JSP page


<%@ page contentType="text/html; charset=UTF-8" %> <html> <head>

<Static HTML code> Declarations Java expressions Scriptlets (chunks of Java code) Try to minimize the mixing of HTML with Java (violates Model 2 architecture)

Declaration, scriptlet, and expression


<%! int i; String[] userName %> <table border=1> <% for (i=0;i<userName.length;i++) { %> <tr><td><%=i+1 %> </td> <td> <%=userName[i] %> </td></tr> <% } %> </table>

Equivalent HTML from previous


<table border=1> <tr><td>1</td><td>Michael Adams</td></tr> <tr><td>2</td><td>Dan Everett</td></tr> <tr><td>1</td><td>Hunter Thompson</td></tr> </table> But note that we try to avoid such mixing of Java and HTML!

Model 2 Architecture (MVC)

Helper Object Scopes

JavaBean
Helper class that holds information Separates Java code from HTML Implements Model component of MVC architecture Useful for holding session data

JSP Address Book Interface

JavaBean Example

Store functionality: user enters name -email pair for storage in bean Fetch functionality: user enters name, bean replies with email

JSP-Bean communication
Make <INPUT> element names in JSP correspond to variable names in Bean Write Bean class with setX() and getX() setter and getter methods <jsp:setProperty> sends inputs to Bean <jsp:getProperty> gets values from Bean

Acknowledgements
J2EE architecture diagrams: Sun J2EE tutorial, http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html Object scopes: jGuru Java Server Pages fundamentals,
http://java.sun.com/developer/onlineTraining/JSPIntro/contents.html#JSPIntro6_3