60
UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

UTC Flex ProgramJava Introduction

January 9, 2002

Jeffrey L. EppingerSenior Systems Scientist

School of Computer Science

Page 2: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

2

Outline

Survey

Introductions

Java Overview

Page 3: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

3

The Survey

• It’s Optional

• It’s Ungraded

• It’s Anonymous– You can still put your name on the cover sheet

• Answer as much as you can– It’s intentionally far reaching so if you can’t get

too far…don’t worry (be happy :-)

Page 4: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

4

Bonus Questions

Bonus questions (in my classes):• will NOT effect your grade,• but those who answer correctly will receive prized

potentially worth THOUSANDS of dollars!

(If you want to remain anonymous…rip off the back page of the survey and write your name on it.)

Page 5: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

5

Bonus Question

• So…who is James Gosling?– Creator of Java

• Where did he get a Ph.D.?– From CMU (in Computer Science)

Page 6: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

6

Outline

SurveyIntroductions

Java Overview

Page 7: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

7

Introductions

• Raghu, you know

• Me

• You

• Course Home Page

• Goals

Page 8: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

8

About Me

Jeff Eppinger ([email protected], WeH 4620)Ph.D. Computer Science (CMU)Asst Professor of Computer Science (Stanford)Co-founder of Transarc Corp. (Bought by IBM)

• Transaction Processing Software• Distributed File Systems Software

IBM Faculty Loan to CMU eCommerce Inst. (99-00)Now an the faculty of the eCommerce InstituteMost Significant Qualification to Teach Java:

• James Gosling was my officemate in grad school

Page 9: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

9

You

• 14 Students from United Technologies Corp

• How many know how to program?– In any language?– In Java?

Page 10: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

10

The Course Home Page

Up to date info available on course homepage:http://euro.ecom.cmu.edu/program/courses/tcr753– Today:

• Copies of these slides

• Source code for all the examples

– Eventually:• Up to date information during the Core Java Mini

Page 11: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

11

What should you expect to get from this class?Intuition about writing software for eCommerce

– What’s possible– What’s hard– How long it takes– Whom to hire– Who is giving you the run around

Ability to write moderately complex Java Programs– Ability to find what you need in Java– Ability to do programming in other MSEC classes

My Goals

Page 12: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

12

What Are Your Goals?

• Pass the class

• Learn Java

• Have fun

• Learning to swear in Java

• Gadgets in Java

Page 13: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

13

Outline

SurveyIntroductionsJava Overview

Page 14: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

14

Java

• Java is the coolest technology that you’ll learn about in the MSEC program.

• Here’s why:– Runs “everywhere”– Programming Language with the “Right Stuff”

Page 15: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

15

Runs Everywhere

• You can run this stuff anywhere– On Windows, Mac, Linux, Unix, Mainframe, …– From MS-DOS Prompt– In Web Browsers

• Using Applets!

– In Web Servers• Using Servlets and EJBs

– In Smart Cards– In Integrated Development Environments

Page 16: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

16

Examples

• First some quick examples from the MS-DOS Prompt (because these are the smallest programs)

HelloWorld.java AddYourNumber.javaPrintString.java IsEven.javaPrintNumber.java TimesTable.javaAddNumbers.java

• Next we’ll talk about other aspects of Java• Then I’ll show you examples of Java running

in other environments

Page 17: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

17

HelloWorld.java

public class HelloWorld {

public static void main(String[] args) {

System.out.println("Hello World");

}

}

Page 18: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

18

How does a program work?

• When you run a program, Java starts a little man running in the main method. The little man speaks only Java. He diligently does whatever the Java program says to do.

main(String args[]) { System.out.println("Hello…}

Page 19: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

19

PrintString.java

public class PrintString {

public static void main(String[] args) {

System.out.println(args[0]);

}

}

Page 20: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

20

PrintNumber.java

public class PrintNumber {

public static void main(String[] args) {

System.out.println(2);

}

}

Page 21: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

21

AddNumbers.java

public class AddNumbers {

public static void main(String[] args) {

System.out.println(2+2);

}

}

Page 22: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

22

AddYourNumber.java

public class AddYourNumber {

public static void main(String[] args) {

int yourNum = Integer.parseInt(args[0]);

System.out.println(2+yourNum);

}

}

Page 23: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

23

IsEven.java

public class IsEven { public static void main(String[] args) { int yourNum = Integer.parseInt(args[0]); int halfYourNum = yourNum / 2; if (halfYourNum*2 == yourNum) System.out.println("Yes"); else System.out.println("No"); }}

Page 24: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

24

TimesTable.java

public class TimesTable {

public static void main(String[] args) {

int yourNum = Integer.parseInt(args[0]);

int i=1;

while (i <= 10) {

System.out.println(i + " times "

+ yourNum + " is " + i*yourNum);

i=i+1;

}

}

}

Page 25: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

25

Review

We saw:• a few examples of simple Java programs,• simple use of Strings• command line arguments• conversion of Strings to ints• if statements• a loop

I’ll show you more environments toward the end…

Page 26: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

26

Java

• Java is the coolest technology that you’ll learn about in the MSEC program.

• Here’s why:√ Runs “everywhere”Programming Language with the “Right Stuff”

Page 27: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

27

Right Stuff?

• Object-oriented

• Network-oriented (Security-oriented)

• Multithreaded

• Large class libraries

• High-performance

• Easy-to-use

Page 28: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

28

Object-oriented

• The Data– Numbers, strings, etc, that represent the object

• The Methods– Operations you can perform on the data

• Concept– You don’t need to understand the data or the

implementation of the methods• In Java these are called classes• Examples of classes:

– String (or more formally java.lang.String)– StockQuote

Page 29: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

29

Example Object: StockQuote

• Constructor:StockQuote(String ticker)

• Instance Methods:String currentQuote()

float getPrice()

String getName()

String getChange()

Page 30: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

30

Let’s Try It: StockQuoteTest.java

public class StockQuoteTest {

public static void main(String args[]) {

StockQuote sq = new StockQuote(args[0]);

System.out.println(" " +

sq.getName() + " " +

sq.currentQuote() );

}

}

Page 31: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

31

Network/Security Oriented

• Class Libraries to access the network• Portable: “write once, run anywhere”

– Interpreted byte codes

• Sandbox– Allows you to run untrusted code– Downloaded applets have restricted access

• Libraries to access security features– ACLs, Certificates, Encryption

• Example– java.net.URL

Page 32: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

32

Selected Guts of StockQuote.javapublic class StockQuote … {

private URL url;

private final String urlHeader =

"http://quote.yahoo.com/d/quotes.csv?s=";

String urlString = urlHeader+ticker+urlTrailer;

url = new java.net.URL(urlString);

InputStream is = url.openStream();

}

Page 33: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

33

Multithreaded

• Lets programs do multiple things at a time

• Your PC is “multithreaded”– Browser can run multiple windows

• Typical uses:– Separate threads to perform I/O and computing

• Example:– StockQuoteMTTest.java

Page 34: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

34

Threads

• When you run a program the Java loader starts a thread running in the main method of the class you load (you know: java HelloWorld)

main(String args[]) { System.out.println("Hello…}

Page 35: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

35

Making More Threads

• Use new Thread(obj) to create a new thread– This makes another little man

• Use start() method on the thread to run it– This starts the man in object’s run() method

main(String args[]) { StockQuote sq = new StockQuote(IBM); Thread t = new Thread(sq); t.start(); …}

Page 36: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

36

Additional threads start in run()

public class StockQuote implements Runnab… public StockQuote(…ticker) { … }

public void run() { … }

…}

Page 37: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

37

MT StockQuote ExampleCode excerpt from StockQuoteMTTest.java:

System.out.println("Enter ticker:");

while (true) { char c = (char) isr.read(); if (c == '\n') { sq = new StockQuote(b.toString()); backgroundThread = new Thread(sq); backgroundThread.start(); b = new StringBuffer(); } else if (c != '\r') { if (sq != null) sq.stopRunning(); b.append(c); } }

Page 38: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

38

Large Class Libraries

• Need a class that does something?– Chances are it’s already been written!

• The Java Foundation Classes– Packaged with Java– Provides everything from data structures to GUIs

• Examples– Vectors (implemented by java.util.Vector)– Swing GUIs (javax.swing)– Applets (e.g., java.swing.JApplet)

Page 39: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

39

Example: java.util.Vector

(for those of you with programming background…)

• Implements an array of arbitrary size

• Incredibly handy

Selected Constructor:

Vector()

Selected Instance Methods:

add(obj)

insertElementAt(obj,pos)

Page 40: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

40

Example: ToDoSwingGUI.javaCode excerpt from ToDoSwingGUI.java:

public class ToDoSwingGUI extends JFrame … { JButton topButton, bottomButton; JTextField textField; JTextArea textArea; java.util.Vector toDoList;

public ToDoSwingGUI() { … }

… public static void main(String[] args) { new ToDoSwingGUI(); }}

Page 41: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

41

Example: ToDoApplet.java

Code excerpt from ToDoApplet.java:

public class ToDoApplet extends JApplet implement… { JButton topButton, bottomButton; JTextField textField; JTextArea textArea; java.util.Vector toDoList;

public void init() { … }}

Page 42: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

42

Example: ToDo.html<html>

<head>

<title>HTML File to Launch ToDoApplet</title>

</head>

<body>

<p>

<applet code="ToDoApplet.class" width=500 height=550>

Your browser doesn't support Java!

</applet>

</body>

</html>

Page 43: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

43

Example: StockQuoteSwingGUICode excerpt from StockQuoteSwingGUI.java:

public class StockQuoteSwingGUI extends JFrame … { private JButton button; private JTextField textField; private JTextArea textArea;

private java.util.Vector quoteHistory;

public StockQuoteSwingGUI() { … }

… public static void main(String[] args) { new StockQuoteSwingGUI(); }}

Page 44: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

44

Example: TwoSwingGUIs.java

public class TwoSwingGUIs { public static void main(String[] args) { new ToDoSwingGUI(); new StockQuoteSwingGUI(); }}

Page 45: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

45

High Performance

• High being a relative term:– Faster than PERL– (Slower than C or C++)

• Threading can improve throughput

• Many people working on optimization tools– JIT: Just-in-time compliation

• Your machine is fast, you can afford to run Java

Page 46: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

46

Easy-to-use

• (Easy being a relative-term)

• Easier than other programming languages– No pointers– Automatic Garbage Collection

• Less cryptic than Perl

Page 47: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

47

Right Stuff?

• Object-oriented

• Network-oriented (Security-oriented)

• Multithreaded

• Large class libraries

• High-performance

• Easy-to-use

Page 48: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

48

Java Drawbacks

• Version skew– Newer versions not yet available in Web most web

browsers that are in use• Internet Explorer 5.0 offers Java 1.1.4• Netscape 4.7 offers Java 1.1.5• Netscape 6.1 offers Java 1.3.0_01

– I’m using Java.1.3.1• You can download an update for your browser, but…

– What’s on your machines?

• Time to download Java code for browser-based apps• Complexity of programming

Page 49: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

49

Java Opportunities

• Server-side application programming– Consistent Environment– Need for faster development

• Ease of use (relative to older technologies…)• Availability of programmers

– Typical example: web applications

• Development of appliances– Smart cards, cellphones, printers, PDAs,

refrigerators, …– Same reasons as above

Page 50: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

50

Integrated Development Environment• Source-code, syntax-directed editor• Incremental compiler• Repository-based environment for code• Project-based development• Integrated debugging• Support for team development• Tools to facilitate specific programming models

– Applets, Servlets, EJBs, Stored Procedures, XML, ...

Page 51: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

51

Compile and Run

• Compile (This generates HelloWorld.class)

javac HelloWorld.java

• Run (This runs HelloWorld.class)

java HelloWorld

Page 52: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

52

Many IDEs for Java

Being that I’m from IBM, I’ve been using:

• IBM’s WebSphere Visual Age for Java

Also, check out:

• JBuilder (Borland)

• JRun (Allaire)

Page 53: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

53

Java in a DOS Window

java IsEven

IsEven.class

java.c

JVM

IsEven.class

Page 54: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

54

Java in an IDE

Respository

VAJ

JVM

IsEven.class

Page 55: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

55

Java in an Applet

Browser HTTP Server

Operating System

Operating System

HTTP Request

HTML

DataFiles

HTTP Request

ToDoApplet.classJVM

Page 56: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

56

Java in Servlets

Browser HTTP Server

.classfiles

Operating System

Operating System

HTTP Request

HTML ServletEngine

DataFiles

JVM

Page 57: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

57

Power of Server Side Java

• No Java version mismatch– Just generate HTML (HTML mismatch easier problem)

• No long download problems– Many “real” apps have many big .class files

• Right way to access server data– Secure: Your program, running on your server– Fast: Your program, running on your server

Page 58: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

58

Final Demo

• The IBM Visual Age IDE– With the WebSphere Unit Test Environment

• I’ll start up the server

• You start up your web browsers

Page 59: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

59

MSEC Uses of Java

• Networking Programming Examples

• Java-based Web Servers– Servlets, Java Server Pages, JDBC, etc.

• Other programming assignments

Page 60: UTC Flex Program Java Introduction January 9, 2002 Jeffrey L. Eppinger Senior Systems Scientist School of Computer Science

9-Jan-2002 UTC Flex Java Intro Copyright (C) 2002 J. L. Eppinger

60

Summary

• Java is the coolest technology that you’ll learn about in the MSEC program.

• Here’s why:√ Runs “everywhere”√ Programming Language with the “Right Stuff”