0% found this document useful (0 votes)
100 views

JSP Intro and Overview: For Live J2EE Training, See Training Courses On JSP, Servlets, Struts, JSF, AJAX, and

JSP, Servlets, Struts, JSF, AJAX, and Java 5 training: 3 J2EE Books from sun press. Available at public venues, or customized versions can be JSP. JSP makes it easier to: - Write HTML - Read and maintain the HTML JSP encourages you to - Separate the (Java) code that creates the content from the (HTML) code that presents it.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
100 views

JSP Intro and Overview: For Live J2EE Training, See Training Courses On JSP, Servlets, Struts, JSF, AJAX, and

JSP, Servlets, Struts, JSF, AJAX, and Java 5 training: 3 J2EE Books from sun press. Available at public venues, or customized versions can be JSP. JSP makes it easier to: - Write HTML - Read and maintain the HTML JSP encourages you to - Separate the (Java) code that creates the content from the (HTML) code that presents it.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

2006 Marty Hall

JSP Intro and Overview


JSP, Servlet, Struts, JSF, AJAX, & Java 5 Training: http://courses.coreservlets.com J2EE Books from Sun Press: http://www.coreservlets.com

2006 Marty Hall

For live J2EE training, see training courses on JSP, servlets, Struts, JSF, AJAX, and Java 5 at http://courses.coreservlets.com/.
Taught by the author of Core Servlets and JSP, More Servlets and JSP, and this tutorial. Available at public venues, or customized versions can be JSP, Servlet, Struts, JSF, AJAX, & at your organization. held on-site Java 5 Training: http://courses.coreservlets.com
3

J2EE Books from Sun Press: http://www.coreservlets.com Additional topics available upon request.

Agenda
Understanding the need for JSP Evaluating the benefits of JSP Comparing JSP to other technologies Avoiding JSP misconceptions Understanding the JSP lifecycle Installing JSP pages Looking at JSP in the real world

J2EE training: http://courses.coreservlets.com

The Need for JSP


With servlets, it is easy to
Read form data Read HTTP request headers Set HTTP status codes and response headers Use cookies and session tracking Share data among servlets Remember data between requests Get fun, high-paying jobs

But, it sure is a pain to


Use those println statements to generate HTML Maintain that HTML
5

J2EE training: http://courses.coreservlets.com

The JSP Framework


Idea:
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)

Example:
<!DOCTYPE > <HTML> <HEAD> <TITLE>Order Confirmation</TITLE> <LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css"> </HEAD> <BODY> <H2>Order Confirmation</H2> Thanks for ordering <I><%= request.getParameter("title") %></I>! </BODY></HTML>
6

J2EE training: http://courses.coreservlets.com

Benefits of JSP
Although JSP technically can't do anything servlets can't do, JSP makes it easier to:
Write HTML Read and maintain the HTML

JSP makes it possible to:


Use standard HTML tools such as Macromedia DreamWeaver or Adobe GoLive. Have different members of your team do the HTML layout than do the Java programming

JSP encourages you to


Separate the (Java) code that creates the content from the (HTML) code that presents it
7

J2EE training: http://courses.coreservlets.com

Advantages of JSP Over Competing Technologies


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

Versus PHP
Better language for dynamic part Better tool support

Versus pure servlets



8

More convenient to create HTML Can use standard tools (e.g., DreamWeaver) Divide and conquer JSP programmers still need to know servlet programming
J2EE training: http://courses.coreservlets.com

Advantages of JSP (Continued)


Versus Velocity or WebMacro
Standard

Versus client-side JavaScript (in browser)


Capabilities mostly do not overlap with JSP, but
You control server, not client Richer language

Versus server-side JavaScript (e.g., LiveWire, BroadVision)


Richer language

Versus static HTML


Dynamic features Adding dynamic features no longer "all or nothing" decision
9

J2EE training: http://courses.coreservlets.com

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.
install_dir\webapps\ROOT\ (HTML and JSP -- Tomcat) install_dir\servers\default\default-app (JRun)

Use special URLs to invoke JSP page. Not.


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

J2EE training: http://courses.coreservlets.com

Example
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML> <HEAD> <TITLE>JSP Expressions</TITLE> <META NAME="keywords" CONTENT="JSP,expressions,JavaServer Pages"> <META NAME="description" CONTENT="A quick example of JSP expressions."> <LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css"> </HEAD>

11

J2EE training: http://courses.coreservlets.com

Example (Continued)
<BODY> <H2>JSP Expressions</H2> <UL> <LI>Current time: <%= new java.util.Date() %> <LI>Server: <%= application.getServerInfo() %> <LI>Session ID: <%= session.getId() %> <LI>The <CODE>testParam</CODE> form parameter: <%= request.getParameter("testParam") %> </UL> </BODY></HTML>

12

J2EE training: http://courses.coreservlets.com

Example: Result
If location was
C:\jakarta-tomcat-xx\webapps\ROOT\ jsp-scripting\Expressions.jsp or C:\JRun4\servers\default\default-ear\default-war\ jsp-scripting\Expressions.jsp

URL would be
http://localhost/jsp-scripting/Expressions.jsp

13

J2EE training: http://courses.coreservlets.com

Most Common Misunderstanding


Forgetting JSP is Server-Side Technology
Very common question
I cant do such and such with HTML. Will JSP let me do it?

Why doesnt this question make sense?


JSP runs entirely on server It doesnt change content the client (browser) can handle

Similar questions
How do I put a normal applet in a JSP page? Answer: send an <APPLET> tag to the client How do I put an image in a JSP page? Answer: send an <IMG > tag to the client How do I use JavaScript/Acrobat/Shockwave/Etc? Answer: send the appropriate HTML tags
14

J2EE training: http://courses.coreservlets.com

2nd Most Common Misunderstanding Translation/Request Time Confusion


What happens at page translation time?
JSP constructs get translated into servlet code.

What happens at request time?


Servlet code gets executed. No interpretation of JSP occurs at request time. The original JSP page is totally ignored at request time; only the servlet that resulted from it is used.

When does page translation occur?


Typically, the first time JSP page is accessed after it is modified. This should never happen to real user (developers should test all JSP pages they install). Page translation does not occur for each request.
15

J2EE training: http://courses.coreservlets.com

The JSP Lifecycle


Request #1 JSP page translated into servlet Servlet compiled Servlet instantiated and loaded into server's memory init (or equivalent) called doGet (or equivalent) called Page first written Yes Request #2 No Request #3 No Request #4 No Request #5 Yes Request #6 No

Yes Yes

No No

No Yes

No Page modified No

Yes Yes

No No

Server restarted

Yes

No

Yes

No

Yes

No

Yes

Yes

Yes

Yes

Yes

Yes

16

J2EE training: http://courses.coreservlets.com

JSP/Servlets in the Real World: Airlines



17

Delta Airlines United Airlines AirTran American Airlines British Airways KLM Air China Saudi Arabian Airlines Iceland Air
J2EE training: http://courses.coreservlets.com

JSP/Servlets in the Real World: Travel Sites


Travelocity.com Orbitz.com HotWire.com Hotels.com

18

J2EE training: http://courses.coreservlets.com

JSP/Servlets in the Real World: Financial Services


American Century Vanguard Fidelity NY Stock Exchange First USA Bank Royal Bank of Scotland Banco Popular de Puerto Rico Bank of America China Construction Bank
19

J2EE training: http://courses.coreservlets.com

JSP/Servlets in the Real World: Retail


Sears.com Walmart.com SamsClub.com Macys.com llbean.com Kohls.com Ikea.com REI.com Longaberger.com

20

J2EE training: http://courses.coreservlets.com

JSP/Servlets in the Real World: Entertainment


WarnerBrothers. com Billboard.com E! (eonline.com) PBS.org

21

J2EE training: http://courses.coreservlets.com

JSP/Servlets in the Real World: Military and Federal Government


DHS TSA FAA CIA NSA GSA IRS Army Navy

22

J2EE training: http://courses.coreservlets.com

JSP/Servlets in the Real World: State, Local, International

23

J2EE training: http://courses.coreservlets.com

JSP/Servlets in the Real World: Sports


Baltimore Orioles Major League Baseball (mlb.com) NHL.com Nascar.com The Sports Authority Dicks Sporting Goods
24

J2EE training: http://courses.coreservlets.com

JSP/Servlets in the Real World: Search/Portals


Parts of Google All of Ebay netscape.com excite.com dice.com

25

J2EE training: http://courses.coreservlets.com

Summary
JSP makes it easier to create and maintain HTML, while 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


Understanding how JSP really works Servlet code called from JSP Knowing when servlets are better than JSP Mixing servlets and JSP

26

Other technologies use similar approach, but aren't as portable and don't let you use Java for the "real code"
J2EE training: http://courses.coreservlets.com

2006 Marty Hall

Questions?

27

JSP, Servlet, Struts, JSF, AJAX, & Java 5 Training: http://courses.coreservlets.com J2EE Books from Sun Press: http://www.coreservlets.com

You might also like