Tải bản đầy đủ (.pdf) (15 trang)

JSP Intro and Overview

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.8 MB, 15 trang )

© 2010 Marty Hall
JSP
JSP

Intro and Overview
Ori
g
inals of Slides and Source Code for Examples:
/>Customized Java EE Training: />Servlets, JSP, JSF 2.0, Struts, Ajax, GWT 2.0, Spring, Hibernate, SOAP & RESTful Web Services, Java 6.
Developed and taught by well-known author and developer. At public venues or onsite at your location.
2
© 2010 Marty Hall
For live Java EE training, please see training courses
at
at
Servlets, JSP, Struts, JSF 1.x, JSF 2.0, Ajax (with jQuery, Dojo,
Prototype, Ext-JS, Google Closure, etc.), GWT 2.0 (with GXT),
Java 5, Java 6, SOAP-based and RESTful Web Services, Sprin
g
,
g
Hibernate/JPA, and customized combinations of topics.
Taught by the author of Core Servlets and JSP, More
Servlets and JSP
and this tutorial Available at public
Customized Java EE Training: />Servlets, JSP, JSF 2.0, Struts, Ajax, GWT 2.0, Spring, Hibernate, SOAP & RESTful Web Services, Java 6.
Developed and taught by well-known author and developer. At public venues or onsite at your location.
Servlets and JSP
,
and this tutorial
.


Available at public
venues, or customized versions can be held on-site at your
organization. Contact for details.
Agenda
• Understanding the need for JSP
• Evaluating the benefits of JSP
• Com
p
arin
g
JSP to other technolo
g
ies
pg g
• Avoiding JSP misconceptions

Understanding the JSP lifecycle
Understanding

the

JSP

lifecycle
• Installing JSP pages

Looking at JSP in the real world

Looking


at

JSP

in

the

real

world
4
The Need for JSP
• With servlets, it is easy to
– Read form data
– Read HTTP request headers
Set HTTP status codes and response headers

Set

HTTP

status

codes

and

response


headers
– Use cookies and session tracking
– Share data amon
g
servlets
g
– Remember data between requests
– Get fun, high-paying jobs
• But, it sure is a pain to
– Use those println statements to generate HTML
Miti thtHTML

M
a
i
n
t
a
i
n
th
a
t

HTML
5
The JSP Framework
• Idea:
Use regular HTML for most of page


Use

regular

HTML

for

most

of

page
– Mark servlet code with special tags
– Entire JSP page gets translated into a servlet (once), and
servlet is what actually gets invoked (for each request)
servlet

is

what

actually

gets

invoked

(for


each

request)
• Example:
<!DOCTYPE …>
<
HTML>
<
HEAD>
<TITLE>Order Confirmation</TITLE>
<LINK REL=STYLESHEET
HREF="JSP-St
y
les.css"
y
TYPE="text/css">
</HEAD>
<BODY>
<
H2>Order Confirmation</H2>
Thanks for ordering
<I><%= request.getParameter("title") %></I>!
</BODY></HTML>
6
Benefits of JSP
• Although JSP technically can’t do anything
l’dJSPkii
serv
l
ets can


t
d
o,
JSP
ma
k
es
i
t eas
i
er to:
– Write HTML
Read and maintain the HTML

Read

and

maintain

the

HTML
• JSP makes it possible to:

Use standard HTML tools such as Macromedia
Use

standard


HTML

tools

such

as

Macromedia

DreamWeaver or Adobe GoLive.
– Have different members of your team do the HTML
lhdhJ i
l
ayout t
h
an
d
o t
h
e
J
ava programm
i
ng
• JSP encourages you to
Separate the (Java) code that creates the content from the

Separate


the

(Java)

code

that

creates

the

content

from

the

(HTML) code that presents it
7
Advantages of JSP Over
Competing Technologies
Competing

Technologies
• Versus ASP or ColdFusion
– Better language for dynamic part
– Portable to multiple servers and operating systems
Versus PHP


Versus

PHP
– Better language for dynamic part

Better tool support
Better

tool

support
• Versus pure servlets
– More convenient to create HTML
– Can use standard tools (e.g., DreamWeaver)
– Divide and conquer
– JSP programmers still need to know
servlet programming
8
Advantages of JSP (Continued)
• Versus Velocity or WebMacro
– Standar
d
• Versus client-side JavaScript (in browser)

Capabilities mostly do not overlap with JSP but
Capabilities

mostly


do

not

overlap

with

JSP
,
but
• You control server, not client
• Richer language

Versus server
-
side JavaScript

Versus

server
-
side

JavaScript

(e.g., LiveWire, BroadVision)
– Richer language
V t ti HTML


V
ersus s
t
a
ti
c
HTML
– Dynamic features

Adding dynamic features no longer
Adding

dynamic

features

no

longer
“all or nothing” decision
9
Setting Up Your Environment
• Set your CLASSPATH. Not.
• Compile your code. Not.
• Use packages to avoid name conflicts. Not.
• Put JSP page in special directory. Not.
– Use the WebContent folder in Eclipse
Same as for HTML GIF JPEG CSS etc

Same


as

for

HTML
,
GIF
,
JPEG
,
CSS
,
etc
.
• Use special URLs to invoke JSP page. Not.

Use same URLs as for HTML pages (except for file
Use

same

URLs

as

for

HTML


pages

(except

for

file

extensions)
• Caveats
– Previous rules about CLASSPATH, install dirs, etc., still
apply to regular Java classes used by a JSP page
10
Example
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HTML>
<HEAD>
<TITLE>JSP Expressions</TITLE>
<
META NAME="keywords"
CONTENT="JSP,expressions,JavaServer Pages">
<
META NAME="descri
p
tion"
p
CONTENT="A quick example of JSP expressions.">
<LINK REL=STYLESHEET
HREF=

"
JSP
-
Styles css
"
HREF= JSP
-
Styles
.
css
TYPE="text/css">
</HEAD>
11
Example (Continued)
<BODY>
<
H2>JSP Expressions</H2
>
<UL>
<
LI>Current time:
<
%= new
j
ava.util.Date
()
%
>
j()
<LI>Server: <%= application.getServerInfo() %>

<LI>Session ID: <%= session.getId() %>
<LI>The <CODE>testParam</CODE> form parameter:
<LI>The

<CODE>testParam</CODE>

form

parameter:
<%= request.getParameter("testParam") %>
</UL>
</BODY></HTML>
12
Example: Result
• If Eclipse project was

j
sp-scripting
• And folder was
WbC

W
e
bC
ontent
• And file was
Expressions jsp

Expressions
.

jsp
• URL would be

http://localhost/jsp
-
scripting/Expressions jsp
http://localhost/jsp
scripting/Expressions
.
jsp
13
Most Common Misunderstanding
Forgetting JSP is Server
-
Side Technology
Forgetting

JSP

is

Server
-
Side

Technology
• Very common question
– I can’t do such and such with HTML.
Will JSP let me do it?


Why doesn

t this question make sense?

Why

doesn t

this

question

make

sense?
– JSP runs entirely on server
– It doesn’t chan
g
e content the client
(
browser
)
can handle
g()
• Similar questions
– How do I put a normal applet in a JSP page?
Adl hli
A
nswer: sen
d

an <app
l
et…> tag to t
h
e c
li
ent
– How do I put an image in a JSP page?
Answer: send an
<
img

>
tag to the client
Answer:

send

an

img


tag

to

the

client

– How do I use JavaScript/Acrobat/Shockwave/Etc?
Answer: send the appropriate HTML tags
14
2nd Most Common Misunderstanding
Translation/Request Time Confusion
Translation/Request

Time

Confusion
• What happens at page translation time?
– JSP constructs get translated into servlet code.
• What happens at request time?
Sl d d
N
iifJSP

S
erv
l
et co
d
e gets execute
d
.
N
o
i
nterpretat
i

on o
f

JSP

occurs at request time. The original JSP page is totally
i
g
nored at re
q
uest time; onl
y
the servlet that resulted from
gq y
it is used.
• When does page translation occur?
Till hfi i JSP i df ii

T
yp
i
ca
ll
y, t
h
e
fi
rst t
i
me

JSP
page
i
s accesse
d
a
f
ter
i
t
i
s
modified. This should never happen to real user
(
develo
p
ers should test all JSP
p
a
g
es the
y
install
)
.
(p pgy)
– Page translation does not occur for each request.
15
The JSP Lifecycle
Re

q
uest Re
q
uest Re
q
uest Re
q
uest Re
q
uest Re
q
uest
q
#1
q
#2
q
#3
q
#4
q
#5
q
#6
JSP page
translated into
servlet
Yes No No No Yes No
Servlet
Yes

No
No
No
Yes
No
Page first w
Server rest
a
Page modi
Servlet

compiled
Yes
No
No
No
Yes
No
Servlet
instantiated
and loaded into
Yes No Yes No Yes No
ritten
a
rted
fied
server’s
memory
init (or
equivalent)

called
Yes No Yes No Yes No
doGet (or
equivalent)
called
Yes Yes Yes Yes Yes Yes
16
Ten Most Popular Web Sites
(Alexa com Summer 2010)
(Alexa
.
com
,
Summer

2010)
1. Google 6. Baidu

Java (Web),
C++ (indexing)
2.
Facebook

Unknown
7. Wikipedia
PHP
2.
Facebook
– PHP
3. YouTube


PHP
8. Blogger

Java

Flash, Python, Java
4. Yahoo
PHP and Java
9. MSN
– .NET
10
Titt

PHP

and

Java
5. Microsoft Live.com

.NET
10
.
T
w
itt
er
– Ruby on Rails, Scala, Java
17

Fall 2010: Google reports over two billion Web pages that use JSP (inurl:jsp).
Keywords in Job Postings
18
JSP/Servlets in the Real World:
Airlines
Airlines
• Delta Airlines
• United Airlines
• AirTran
• American
Airlines
Biti hAi

B
r
iti
s
h

Ai
rways
• KLM
Ai Chi

Ai
r
Chi
na
• Saudi Arabian
Airlines

Airlines
• Iceland Air
19
JSP/Servlets in the Real World:
Travel Sites
Travel

Sites
• Travelocity.com
Obit

O
r
bit
z.com
• HotWire.com

Hotels.com
Hotels.com
• CheapTickets.
com
Nti lC

N
a
ti
ona
l

C

ar
Rental

Avis Car Rental
Avis

Car

Rental
• Enterprise
Car Rental
Hertz Car

Hertz

Car
Rental
20
JSP/Servlets in the Real World:
Financial Services
Financial

Services
• American
Century
Century
• Vanguard
• Fidelity

NY Stock


NY

Stock

Exchange
• First USA Bank
RlBkf

R
oya
l

B
an
k
o
f

Scotland
• Banco Popular de
Puerto Rico
Puerto

Rico
• Bank of America
• China
Ctti
C
ons

t
ruc
ti
on
Bank
21
JSP/Servlets in the Real World:
Retail
Retail
• Sears.com
Wl t

W
a
l
mar
t
.com
• HomeDepot.com

SamsClub com

SamsClub
.
com
• Macys.com

llbean.com
llbean.com
• Kohls.com

• Ikea.com
• Target.com
• Longaberger.com
Nik

Nik
e.com
• CircuitCity.com
22
JSP/Servlets in the Real World:
Entertainment
Entertainment
• WarnerBrothers.
com
• Billboard.com
E!

E!

(eonline.com)

PBS org

PBS
.
org
• Comcast

games atari com


games
.
atari
.
com
23
JSP/Servlets in the Real World:
Military and Federal Government
Military

and

Federal

Government
• DHS
TSA

TSA
• FAA

CIA

CIA
• NSA
• GSA
• IRS
• Army
N


N
avy
• USPS
24
Science and Research
• NSF
• UN
Oceans
di b t

di
a
b
e
t
es.or
g
• fas.org
dl

dl
se.or
g
• science.edu.sg
bif t

gbif
.ne
t
• collegeboard

com
.
com
25
JSP/Servlets in the Real World:
State Local International
State
,
Local
,
International
26
JSP/Servlets in the Real World:
Sports
Sports
• Baltimore
Oi l
O
r
i
o
l
es
• Baltimore
Ravens
Ravens
• Washington
Redskins
Redskins
• Washington

Nationals
Nationals
• Major League
Baseball
• NHL.com
• Nascar.com
27
JSP/Servlets in the Real World:
Search/Portals
Search/Portals
• Most of Google
• All of Ebay
• netscape.com
• excite.com
• dice.com
• hi5
• Paypal
28
JSP/Servlets in the Real World:
Random Amusing
Random

Amusing
29
Summary
• JSP is more convenient, not more powerful
JSP k it i t t d i t i HTML hil

JSP
ma

k
es
it
eas
i
er
t
o crea
t
e an
d
ma
i
n
t
a
i
n
HTML
, w
hil
e
still providing full access to servlet code
• JSP pages get translated into servlets
– It is the servlets that run at request time
– Client does not see anything JSP-related

You still need to understand servlets
You


still

need

to

understand

servlets
– Understanding how JSP really works
– Servlet code called from JSP
ih l b hS
– Know
i
ng w
h
en serv
l
ets are
b
etter t
h
an J
S
P
– Mixing servlets and JSP

Other technologies use similar approach,
Other


technologies

use

similar

approach,
– But aren’t as portable and don’t let you use Java for the
“real code”
30
© 2010 Marty Hall
Questions?
Customized Java EE Training: />Servlets, JSP, JSF 2.0, Struts, Ajax, GWT 2.0, Spring, Hibernate, SOAP & RESTful Web Services, Java 6.
Developed and taught by well-known author and developer. At public venues or onsite at your location.
31

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×