Download JSP

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Creating the Web Tier: JavaServer Pages
Copyright © 2004, Oracle. All rights reserved.
Objectives
After completing this lesson, you should be able to do
the following:
• Compare servlets and JavaServer Pages (JSP)
• Build a simple JSP
• Describe the JSP life cycle
• List the basic JSP elements
• Develop JSPs with declarations, expressions, and
scriptlets
• List implicit objects
• Use JavaBeans with JSP
8-2
Copyright © 2004, Oracle. All rights reserved.
JavaServer Pages
Connects to
Request
JSP
Database
Client
Generates
Dynamic content
Response
8-3
Copyright © 2004, Oracle. All rights reserved.
EJB
Comparing Servlets and JSPs
Servlets:
• Are Java programs
with embedded
HTML
• Generate dynamic
content
• Do not separate
static and dynamic
content
8-4
JavaServer Pages:
• Are HTML pages
with embedded Java
code or they can be
pure XML
• Generate dynamic
content
• Separate static and
dynamic content
Copyright © 2004, Oracle. All rights reserved.
Invoking JSPs
HTML
Invoke
JSP
Servlet
JSP
8-5
Copyright © 2004, Oracle. All rights reserved.
The 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>
8-6
Copyright © 2004, Oracle. All rights reserved.
The 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();
}
...
8-7
Copyright © 2004, 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.)
8-8
Copyright © 2004, Oracle. All rights reserved.
JSP Life Cycle
J2EE container
First
time
OC4J
http://host/date.jsp
Yes
1
Create servlet
date.java
No
2
3
Compile servlet
date.class
Servlet life cycle
8-9
Copyright © 2004, Oracle. All rights reserved.
Basic JSP Elements
A JSP contains three main elements:
• Text elements
• Directives
• Scripting elements
– Declarations
– Expressions
– Scriptlets
8-10
Copyright © 2004, 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
during translation
Are used in conjunction with expressions or
scriptlets
•
<%! private int i=3; %>
<%! private String a="Hello", b=" World"; %>
8-11
Copyright © 2004, 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 %>
1
<%= a + b %>
<%= new java.util.Date() %>
8-12
Copyright © 2004, Oracle. All rights reserved.
2
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");
%>
8-13
Copyright © 2004, Oracle. All rights reserved.
Implicit Objects
There are eight implicit objects, also known as
predefined variables, in JSP:
• request
• application
• response
• config
• session
• pageContext
• out
• page
8-14
Copyright © 2004, Oracle. All rights reserved.
Example
8-16
Copyright © 2004, Oracle. All rights reserved.
Directives
•
•
•
Are used to set global values such as class
declaration, method implementations, and so on
Begin with the sequence <%@
End with the sequence %>
•
Are of the following types:
– page
– include
– taglib
8-18
Copyright © 2004, Oracle. All rights reserved.
include: Example
8-19
Copyright © 2004, Oracle. All rights reserved.
page Directive
You can define the following attributes by using the
page directive:
• extends
• import
• info
• contentType
• errorPage
• isThreadSafe
• isErrorPage
• session
• language
• buffer
• autoflush
8-20
Copyright © 2004, Oracle. All rights reserved.
JSP and JavaBeans
package lesson08;
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;
}
}
8-22
Copyright © 2004, Oracle. All rights reserved.
Using JavaBeans with JSP
Accessing JavaBeans with the <jsp:useBean> tag:
<jsp:useBean id="myBean" scope="session"
class="lesson08.LuckyNumberBean" />
8-23
Copyright © 2004, Oracle. All rights reserved.
scope Attribute of <jsp:useBean> Tag
Client
Request
Response
Request
Response
Forward
Page 1
Page 2
Page 3
page scope
page scope
page scope
request scope
request scope
session scope
8-25
Copyright © 2004, Oracle. All rights reserved.
Accessing and Setting Bean Property
•
Accessing bean property:
<jsp:getProperty name="myBean"
property=“luckyNum" />
•
Setting bean property:
<jsp:setProperty name="myBean"
property=“luckyNum" value="10" />
8-26
Copyright © 2004, 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
•
•
8-28
Copyright © 2004, Oracle. All rights reserved.
Traditional Syntax Versus XML Syntax
Traditional:
• No root element
•
<jsp:root> is the root
element
<jsp:directive.
page
/>
•
page directive
<%@ page %>
•
•
Declaration tag
<%!
%>
Expression tag
<%= expression %>
Scriptlet
<%
%>
•
<jsp:declaration>
</jsp:declaration>
•
<jsp:expression>
</jsp:expression>
<jsp:scriptlet>
</jsp:scriptlet>
•
•
8-29
XML:
•
Copyright © 2004, Oracle. All rights reserved.
JDeveloper and JSPs
•
•
•
•
•
Use the JSP Wizard in JDeveloper to create JSPs
containing skeleton code.
The structure pane helps to ensure that the JSP
and HTML tags are properly formatted.
Tag Insight automatically inserts end tags after
starting a scriptlet.
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
8-31
Copyright © 2004, Oracle. All rights reserved.
Creating JSPs Visually
8-32
Copyright © 2004, Oracle. All rights reserved.
JSP Tag Insight
8-33
Copyright © 2004, Oracle. All rights reserved.
Summary
In this lesson, you should have learned how to:
• Differentiate between servlets and JSPs
• Build a simple JSP
• Describe the JSP life cycle
• Use JSP elements and implicit objects
• Develop JSPs with declarations, expressions, and
scriptlets
• Use JavaBeans with JSP
8-34
Copyright © 2004, Oracle. All rights reserved.
Practices 8-1, 8-2, and 8-3: Overview
These practices cover the following topics:
• Creating a JSP that counts the occurrence of each
character in a given string
• Using JavaBean to calculate an equal discount on
the total amount of purchase
• Creating a JSP that displays product_id,
product_name, and price in the form of a table
8-35
Copyright © 2004, Oracle. All rights reserved.
Related documents