You are on page 1of 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, application-
scope 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

You might also like