Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 ›...

26
Introduction to Java Web Programming Gregg Sporar [email protected]

Transcript of Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 ›...

Page 1: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

Introduction toJava Web

Programming

Gregg [email protected]

Page 2: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

2

Agenda

●What is Java?

●Web/Application Servers

●Servlets

●JSPs

●Java Web Frameworks

●JavaServer Faces

●Beyond the Java Language

Page 3: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

3

What is Java?

● Runs Everywhere

● and Open SourceFREE

Page 4: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

4

Java Flavors

OptionalPackages

Java Enterprise

Edition(Java EE)

Java StandardEdition

(Java SE)

JVM

Java Card APIs

CardVM

OptionalPackages

Personal Basis Profile

Personal Profile

Foundation Profile

CDC

MIDP

CLDC

KVM

Java Micro Edition(Java ME)

Page 5: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

5

“Hello World” in Java

Page 6: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

6

A Specification...

Page 7: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

7

Web/Application Servers

Client

Client

Client

Client

Client

ClientTier

Enterprise Information

TierMiddle

Tier

Enterprise Information

Systems (EIS):

RelationalDatabase,

Legacy Applications,

ERP Systems

Enterprise JavaBeans™

Enterprise JavaBeans

Other Services:JNDI, JMS,JavaMail™

Java EEApplication

Server

Web ServerJSP,

Servlets

Firewall

HTML/XML

Page 8: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

8

Web/Application Servers●Open Source

● Tomcat

● JBoss

● Geronimo

● GlassFish

●Proprietary● WebSphere

● WebLogic

● OC4J

Page 9: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

9

What is a Servlet?

A servlet is a Java programming language class used to extend the capabilities of servers that host applications accessed via a request-response programming model.

Page 10: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

10

Servlet Processing

Page 11: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

11

“Hello World” Java Servlet

Page 12: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

12

Servlet Deployment

Page 13: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

13

“Hello World” Revisited...

Not Very Robust....

Page 14: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

14

What is a JSP?

JavaServer Page: A JSP page is a text-based document that contains two types of text:

static template data, which can be expressed in any text-based format, such as HTML, SVG, WML, and XML;

...and...

JSP elements, which construct dynamic content.

Page 15: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

15

“Hello World” with a JSP

Page 16: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

16

You Might Be Wondering...Why does the code do so much grunt work?

Page 17: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

17

Java Web Frameworks●Struts

●Tapestry

●Wicket

●Stripes

●Spring MVC

●Google Web Toolkit

●JavaServer Faces (JSF)

●etc...

Page 18: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

18

What is JavaServer Faces?

JavaServer Faces technology includes:

* A set of APIs for representing UI components and managing their state, handling events and input validation, defining page navigation, and supporting internationalization and accessibility.

* A JavaServer Pages (JSP) custom tag library for expressing a JavaServer Faces interface within a JSP page.

Page 19: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

19

“Hello World” with JSF

Page 20: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

20

“Hello World” with JSF (cont'd)

Page 21: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

21

“Hello World” with JSF (cont'd)

Page 22: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

22

“Hello World” with JSF (cont'd)

Page 23: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

23

JSF Life cycle

Source: JSF for nonbelievers, by Rick Hightower

Page 24: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

24

Beyond the Java Language

DevicesDevelopment

and more...

The Virtual Machine

JavaFX Script

Page 25: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

25

Beyond the Java Language (cont'd)

on

Page 26: Java Web Programming - University of Wisconsin–Madisonpages.cs.wisc.edu › ~estan › cs638 › slides › JavaWebProgramming.pdfJava Web Programming Gregg Sporar gregg.sporar@sun.com.

26

Resources ●Java: java.sun.com

●JavaPassion: javapassion.com

●Java EE: java.sun.com/javaee

●Servlets: java.sun.com/products/servlet/articles/tutorial/

●JSP: java.sun.com/j2ee/tutorial/1_3-fcs/doc/JSPIntro.html

●JSF: www.ibm.com/developerworks/library/j-jsf1/

●Ruby, JRuby, Rails: www.netbeans.org/kb/trails/ruby.html

●NetBeans: netbeans.org