06_Creating the Web Tier Using Java Server Pages

28
6 Copyright © 2007, Oracle. All rights reserved. Creating the Web Tier Using JavaServer Pages

Transcript of 06_Creating the Web Tier Using Java Server Pages

Page 1: 06_Creating the Web Tier Using Java Server Pages

6Copyright © 2007, Oracle. All rights reserved.

Creating the Web Tier Using JavaServer Pages

Page 2: 06_Creating the Web Tier Using Java Server Pages

6-2 Copyright © 2007, Oracle. All rights reserved.

Objectives

After completing this lesson, you should be able to do the following:

• Describe the relationship between JavaServer Pages (JSP) and servlets

• List implicit objects on JSP pages

• Describe the semantics of JSP tags

• Create a JSP segment

• Explain the use of JSP tag files

• Run and debug a JSP-based application

Page 3: 06_Creating the Web Tier Using Java Server Pages

6-3 Copyright © 2007, Oracle. All rights reserved.

JavaServer Pages

Generates

Dynamic content

JSP

Connects to

EJB

Client

Request

Database

Response

Page 4: 06_Creating the Web Tier Using Java Server Pages

6-4 Copyright © 2007, Oracle. All rights reserved.

Comparing Servlets and JSPs

Servlets:

• Are Java programs with embedded HTML code

• Generate dynamic content

• Do not separate static and dynamic content

JavaServer Pages:

• Are HTML pages with embedded Java code or pure XML

• Generate dynamic content

• Separate static and dynamic content

Page 5: 06_Creating the Web Tier Using Java Server Pages

6-5 Copyright © 2007, Oracle. All rights reserved.

Invoking JSPs

HTML

JSP

Invoke

Servlet

JSP

Page 6: 06_Creating the Web Tier Using Java Server Pages

6-6 Copyright © 2007, Oracle. All rights reserved.

Date JSP

<%@ page contentType="text/html;charset=WINDOWS-1252"%><html> <head><meta http-equiv="Content-Type" content="text/html; charset=WINDOWS-1252"><title> Show Date </title></head><body><h2> The current time is: </h2><p> <%= new java.util.Date() %> </p></body></html>

Page 7: 06_Creating the Web Tier Using Java Server Pages

6-7 Copyright © 2007, Oracle. All rights reserved.

Date Servlet

...public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(CONTENT_TYPE); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head><title>Show Date </title></head><body><h2>The current time is:</h2><p>"); out.println(new java.util.Date()); out.println("</body></html>"); out.close(); }...

Page 8: 06_Creating the Web Tier Using Java Server Pages

6-8 Copyright © 2007, Oracle. All rights reserved.

Automated JSP Features

• A JSP is automatically converted into a servlet the first time it is invoked:– Java source files are generated.– Java class files are generated.– The Java Just-In-Time compiler can be used.

• A JSP can contain extensible components:– Tags: Libraries such as OC4J JSP (OJSP) or

custom-developed tags– JavaBeans (Beans are reused and their properties

are automatically introspected.)

Page 9: 06_Creating the Web Tier Using Java Server Pages

6-9 Copyright © 2007, Oracle. All rights reserved.

JSP Life Cycle

http://host/date.jsp

Java EE container

Create servletdate.java

Compile servletdate.class

1

Servlet life cycle

Firsttime

Yes

2

3

No

OC4J

Page 10: 06_Creating the Web Tier Using Java Server Pages

6-10 Copyright © 2007, Oracle. All rights reserved.

Basic JSP Elements

A JSP contains three main elements:

• Text elements

• Directives

• Scripting elements– Declarations– Expressions – Scriptlets

Page 11: 06_Creating the Web Tier Using Java Server Pages

6-11 Copyright © 2007, Oracle. All rights reserved.

Declarations

• Are used to define methods or variables

• Begin with the sequence <%!• End with the sequence %>• Are inserted into the body of the servlet class, not

within a method, during translation

• Are used in conjunction with expressions or scriptlets

<%! private int i=3; %><%! private String a="Hello", b=" World"; %>

Page 12: 06_Creating the Web Tier Using Java Server Pages

6-13 Copyright © 2007, Oracle. All rights reserved.

Expressions

• Begin with the sequence <%=• Contain Java expressions that are evaluated and

inserted into the servlet’s output

• End with the sequence %>• Do not end with a semicolon

<%= i+1 %><%= a + b %><%= new java.util.Date() %>

1

2

Page 13: 06_Creating the Web Tier Using Java Server Pages

6-14 Copyright © 2007, Oracle. All rights reserved.

Scriptlets

• Begin with the sequence <%• Contain a block of Java code that is executed

every time a request is made

• End with the sequence %>

<% if (i<3) out.print("i<3"); if (i==3) out.print("i==3"); else out.print("i>3");%>

Page 14: 06_Creating the Web Tier Using Java Server Pages

6-15 Copyright © 2007, Oracle. All rights reserved.

Implicit Objects

There are eight implicit objects, also known as predefined variables, in JSP:• request• response• session• out

• application• config• pageContext• page

These objects are created in the generated servlet.

Page 15: 06_Creating the Web Tier Using Java Server Pages

6-17 Copyright © 2007, Oracle. All rights reserved.

Example

Page 16: 06_Creating the Web Tier Using Java Server Pages

6-19 Copyright © 2007, Oracle. All rights reserved.

Directives

• Are used to set global values such as class declarations and method implementations

• Begin with the sequence <%@• End with the sequence %>• Are of the following types:

– page– include– taglib

Page 17: 06_Creating the Web Tier Using Java Server Pages

6-20 Copyright © 2007, Oracle. All rights reserved.

include: Example

Page 18: 06_Creating the Web Tier Using Java Server Pages

6-21 Copyright © 2007, Oracle. All rights reserved.

page Directive

You can define the following attributes by using the page directive:

• import• contentType• isThreadSafe• session• buffer• autoFlush

• extends• info• errorPage• isErrorPage• language

Page 19: 06_Creating the Web Tier Using Java Server Pages

6-23 Copyright © 2007, Oracle. All rights reserved.

JSP and JavaBeans

package lesson04;import java.lang.*;import java.util.*;public class LuckyNumberBean { private int luckyNum; public LuckyNumberBean() { luckyNum = (int) (1000 * Math.random()); } public int getLuckyNum() { return luckyNum; } public void setLuckyNum(int luckyNum) { this.luckyNum = luckyNum; }}

Page 20: 06_Creating the Web Tier Using Java Server Pages

6-24 Copyright © 2007, Oracle. All rights reserved.

Using JavaBeans with JSP

Accessing JavaBeans with the <jsp:useBean> tag:

<jsp:useBean id="myBean" scope="session" class="lesson04.LuckyNumberBean" />

Page 21: 06_Creating the Web Tier Using Java Server Pages

6-26 Copyright © 2007, Oracle. All rights reserved.

page scope

scope Attribute of <jsp:useBean> Tag

Client

Page 1 Page 2 Page 3

Request

Forward

Response

Request

Response

page scope page scope

request scope request scope

session scope

Page 22: 06_Creating the Web Tier Using Java Server Pages

6-27 Copyright © 2007, Oracle. All rights reserved.

Accessing and Setting Bean Property

• Accessing bean property:

• Setting bean property:

<jsp:getProperty name="myBean" property=“luckyNum" />

<jsp:setProperty name="myBean" property=“luckyNum" value="10" />

Page 23: 06_Creating the Web Tier Using Java Server Pages

6-29 Copyright © 2007, Oracle. All rights reserved.

JSP XML Document

• Contains <jsp:root> as its root element

• Includes only XML syntax and does not include the traditional JSP tags

• Can be processed directly by the JSP container

• Can be used with XML development tools

Page 24: 06_Creating the Web Tier Using Java Server Pages

6-30 Copyright © 2007, Oracle. All rights reserved.

Traditional Syntax Versus XML Syntax

Traditional: XML:• It has no root element.

• page directive<%@ page %>

• Declaration tag<%! %>

• Expression tag<%= expression %>

• Scriptlet<% %>

• <jsp:root> is the root element.

• <jsp:directive.page/>

• <jsp:declaration></jsp:declaration>

• <jsp:expression></jsp:expression>

• <jsp:scriptlet></jsp:scriptlet>

Page 25: 06_Creating the Web Tier Using Java Server Pages

6-32 Copyright © 2007, Oracle. All rights reserved.

JSP Segments

• Use a JSP segment for creating a partial JSP page.

• Include one or more segments in a JSP using <jsp:include>.

JSP segment – footer.jspf:

JSP:

Copyright 2005, <a href="http://www.oracle.com"> Oracle</a>

<%@ include file="/footer.jspf"%>

Page 26: 06_Creating the Web Tier Using Java Server Pages

6-33 Copyright © 2007, Oracle. All rights reserved.

JDeveloper and JSPs

• The JSP Wizard in JDeveloper is used to create JSPs containing skeleton code.

• Structure Pane helps to ensure that the JSP and HTML tags are properly formatted.

• Tag Insight automatically inserts end tags after starting a scriptlet.

• The JSP code is automatically created and recompiled.

• JDeveloper increases productivity while debugging JSPs:– Automatically includes source Java files such as

your JavaBean source– Enables you to set breakpoints and watch

expressions in JSPs

Page 27: 06_Creating the Web Tier Using Java Server Pages

6-34 Copyright © 2007, Oracle. All rights reserved.

Summary

In this lesson, you should have learned how to:

• Identify the differences and similarities between JSPs and servlets

• Use declarations, expressions, scriptlets, and implicit objects on JSP pages

• Use JavaBeans with JSPs

• Create a JSP segment

• Explain the use of JSP tag files

• Run and debug a JSP-based application

Page 28: 06_Creating the Web Tier Using Java Server Pages

6-35 Copyright © 2007, Oracle. All rights reserved.

Practice Overview: Developing JSPs

This practice covers the following topics:

• Building a basic JSP

• Developing a JSP that uses the request and session objects

• Building a JSP to display the results