j2ee overview

22
J2EE Overview J2EE Overview Web Programming Web Programming CSCI 4300 CSCI 4300

Upload: bud

Post on 05-Feb-2016

172 views

Category:

Documents


0 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: J2EE Overview

J2EE OverviewJ2EE Overview

Web ProgrammingWeb Programming

CSCI 4300CSCI 4300

Page 2: J2EE Overview

J2EE multi-tier architectureJ2EE 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)

Page 3: J2EE Overview

J2EE ArchitectureJ2EE Architecture

• Applets and special clients: downloaded, connect back to server

• Enterprise Java Beans: long-term, application-scope data storage and business logic

Page 4: J2EE Overview

Web Application LayoutWeb Application Layout

Page 5: J2EE Overview

Mirroring packages with directoriesMirroring packages with directories

Page 6: J2EE Overview

Web Application Descriptor, Web Application Descriptor, web.xmlweb.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

Page 7: J2EE Overview

Web.xml prologWeb.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

Page 8: J2EE Overview

Web.xml root elementWeb.xml root element

<web-app>

… web application contents.

</web-app>

• Can contain:– Servlet definitions– Servlet paths– Parameters– Etc, etc.

Page 9: J2EE Overview

Servlet elementServlet 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>

Page 10: J2EE Overview

Servlet-mapping elementServlet-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 athttp://ganesha.cs.uga.edu/myapp/gonzo

Page 11: J2EE Overview

Welcome pageWelcome 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

Page 12: J2EE Overview

Error page elementsError 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>

Page 13: J2EE Overview

Basic JSP pageBasic 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)

Page 14: J2EE Overview

Declaration, scriptlet, and Declaration, scriptlet, and expressionexpression

<%! 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>

Page 15: J2EE Overview

Equivalent HTML from previousEquivalent 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!

Page 16: J2EE Overview

Model 2 Architecture (MVC)Model 2 Architecture (MVC)

Page 17: J2EE Overview

Helper Object ScopesHelper Object Scopes

Page 18: J2EE Overview

JavaBeanJavaBean

• Helper class that holds information

• Separates Java code from HTML

• Implements Model component of MVC architecture

• Useful for holding session data

Page 19: J2EE Overview

JSP Address Book InterfaceJSP Address Book Interface

Page 20: J2EE Overview

JavaBean ExampleJavaBean Example

• Store functionality: user enters name -email pair for storage in bean

• Fetch functionality: user enters name, bean replies with email

Page 21: J2EE Overview

JSP-Bean communicationJSP-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

Page 22: J2EE Overview

AcknowledgementsAcknowledgements

• 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