Slide 5 Java Server Pages
Slide 5 Java Server Pages
Slide 5 Java Server Pages
Objectives
◼ JavaServer Pages (JSP) introduction
◼ How JSP Works?
◼ Basic tags
◼ Comment
◼ Directive
◼ Declaration
◼ Expression
◼ Scriplets
◼ Implicit Objects
◼ Action tags
◼ Exception handling
Contact me @ https://www.facebook.com/quynhtran.ly.94
JavaServer Pages (JSP)
◼ JavaServer Pages (JSP) technology provides a
simplified, fast way to create web pages that
display dynamically-generated content.
◼ JSP is an extension to Servlet, provides more
functionality than servlet like EL, JSTL..
◼ The JSP specification is an important part of the
Java 2 Platform, Enterprise Edition.
◼ The first place to check for information on JSP
technology is
https://www.oracle.com/java/technologies/jspt.html
◼ Presentation layer for MVC architecture: separate
the dynamic content of a Web page from its
presentation
Contact me @ https://www.facebook.com/quynhtran.ly.94
JSP introduction
◼ Middle-tier
◼ Presentation-tier
Web Server
(Servlet Container)
HTTP
JDBC
Request
Browser
Servlet Database
(client)
Server
1st tier
(3rd tier)
Response
JSP
Request
Contact me @ https://www.facebook.com/quynhtran.ly.94
JSP Page
• JSP page consists of HTML tags and JSP tags. The JSP
pages are easier to maintain than Servlet because
we can separate designing and development.
• A JSP page has the extension .jsp; this signals to the
web server that the JSP engine will process elements
on this page.
• Pages built using JSP technology are typically
implemented using a translation phase that is
performed once, the first time the page is called.
The page is compiled into a Java Servlet class and
remains in server memory, so subsequent calls to
the page have very fast response times.
Contact me @ https://www.facebook.com/quynhtran.ly.94
Simple JSP Page
Contact me @ https://www.facebook.com/quynhtran.ly.94
Example
HTML tag
<HTML>
<HEAD><TITLE>MyFirstProgram.jsp</TITLE></HEAD>
<BODY> Comment
<%-- MyFirstProgram.JSP --> JSP
Directive
Contact me @ https://www.facebook.com/quynhtran.ly.94
How JSP Works?
User Request – JSP File Requested
Server
Contact me @ https://www.facebook.com/quynhtran.ly.94
Class Hierarchy Generated Servlet
Contact me @ https://www.facebook.com/quynhtran.ly.94
JSP Lifecycle
Servlet from JSP
Init Event jspInit()
Request
Response
jspService()
Contact me @ https://www.facebook.com/quynhtran.ly.94
HTML Comment
• Generates a comment that is sent to the client.
◼ Syntax
◼ Example:
<!-- This page was loaded on
<%= (new java.util.Date()).toLocaleString() %>
-->
Contact me @ https://www.facebook.com/quynhtran.ly.94
JSP Directives
• Directives are used to control how the web
container translates and executes the JSP page
• Directives have attributes that dictate their meaning
and effect. In almost all cases, the effects produced
by directives can’t be replicated using expressions,
scriptlets, or declarations.
• We’ll consider the three directives:
◼ page,
◼ include,
◼ taglib.
Contact me @ https://www.facebook.com/quynhtran.ly.94
The page Directive
◼ The page directive defines attributes that apply to an
entire JSP page
<%@ page attributeName=“value" %>
◼ Page attribute
Contact me @ https://www.facebook.com/quynhtran.ly.94
The page Directive
◼ import to create import statements in the generated
servlet source produced at translation phase.
import=“java.util.*,model.*”
◼ contentType is a String that specifies the MIME type of
the response to be sent back. The default value is
"text/html;charset=ISO-8859-1"
contentType=“text/html;charset=UTF-8”
◼ pageEncoding set the character encoding of the page
source.
pageEncoding=“UTF-8”
◼ buffer sets the buffer size in kilobytesThe default size
of the buffer is 8Kb.
Contact me @ https://www.facebook.com/quynhtran.ly.94
Other attributes of the page directive
Contact me @ https://www.facebook.com/quynhtran.ly.94
The include Directive
• A JSP source file and the pages it includes through
the include directive are collectively referred to as a
“translation unit.”
• The file type you include doesn’t have to be JSP
page source, nor does it have to have a .jsp
extension. Once included, the file contents must
make sense to the JSP translation process, but this
gives scope to include entire HTML or XML
documents, or document fragments.
• Defining Implicit Includes with JSP property group
Contact me @ https://www.facebook.com/quynhtran.ly.94
The include Directive…
<%@ include file=“relativeURL " %>
<html>
<body>
<%@ include file="header.jsp" %>
<h1>Including Page</h1>
<%@ include file="footer.html" %>
</body>
</html>
• Expressions
<%= expression%>
• Scriplets
<% java code %>
Contact me @ https://www.facebook.com/quynhtran.ly.94
Declaration
• Declares variable or method valid in the scripting
language used in the JSP page.
◼ Syntax
<%! declaration; [ declaration; ]+ ... %>
◼ Examples
<%! String destin; %>
<%! public String getDestination()
{return destin;}%>
<%! Circle a = new Circle(2.0); %>
◼ You can declare any number of variables or methods within one
declaration element, as long as you end each declaration with a
semicolon.
◼ The declaration must be valid in the Java language.
Contact me @ https://www.facebook.com/quynhtran.ly.94
Declaration
Contact me @ https://www.facebook.com/quynhtran.ly.94
Expression
• Contains an expression valid in the scripting language used
in the JSP page.
◼ Syntax
<%= expression %>
Example
<%! String name = new String(“JSP World”); %>
<%! public String getName() { return name; } %>
<B><%= getName() %></B>
◼ Description:
Contact me @ https://www.facebook.com/quynhtran.ly.94
Expression
Contact me @ https://www.facebook.com/quynhtran.ly.94
Scriptlet
• Contains a code fragment valid in the page scripting
language.
◼ Syntax
<% code fragment %>
<%
String var1 = request.getParameter("name");
out.println(var1);
%>
• This code will be placed in the generated servlet method:
_jspService()
• The use of scriptlet should be limited in JSP because JSP is
mainly used for presentation
Contact me @ https://www.facebook.com/quynhtran.ly.94
JSP Scriptlet- Best Practice
Contact me @ https://www.facebook.com/quynhtran.ly.94
Predefined Variable – Implicit Objects
• request – Object of HttpServletRequest (request parameters, HTTP headers, cookies
Contact me @ https://www.facebook.com/quynhtran.ly.94
JSP Session object
Contact me @ https://www.facebook.com/quynhtran.ly.94
JSP Session object
Contact me @ https://www.facebook.com/quynhtran.ly.94
Predefined Variable – Implicit Objects
Contact me @ https://www.facebook.com/quynhtran.ly.94
JSP Actions
• Standard actions are used for the same purpose
as Java language-based scripting: Most if not all
the goals that you can achieve with standard
actions are achievable with other scripting
elements.
• So why use them?
◼ The answer is that they get the job done more
elegantly. They often provide an alternative to
inserting java code into your neatly designed
presentation page.
Contact me @ https://www.facebook.com/quynhtran.ly.94
Standard actions general syntax
<prefix:tagname firstAttribute="value"
secondAttribute="value">
...
</prefix:tagname>
Contact me @ https://www.facebook.com/quynhtran.ly.94
Dispatching action <jsp:include>
• The standard action <jsp:include> can be used to
include the response from another page within your
JSP page output.
• You specify the file whose response should be
included with the page attribute, like this:
<jsp:include page="pageToInclude.jsp" />
• The file whose response should be included has to
reside somewhere in your web application but
doesn’t have to be present until the page is actually
requested.
Contact me @ https://www.facebook.com/quynhtran.ly.94
<jsp:include> vs. <%@ include %>
<jsp:include>
Contact me @ https://www.facebook.com/quynhtran.ly.94
<jsp:include> vs. <%@ include %>
Contact me @ https://www.facebook.com/quynhtran.ly.94
Dispatching action <jsp:forward>
• The purpose of this standard action is to forward
processing to another resource within the web
application.
<jsp:forward page=“destinationPage">
<jsp:param name=“.." value=“.." />
…
</jsp:forward>
Contact me @ https://www.facebook.com/quynhtran.ly.94
JSP exception handling
◼ Translation and compilation errors
◼ Both the translation and the compilation phases can
yield errors that are observed only when the page is
requested for the first time.
◼ If an error is encountered during either phase, the
server will return JasperException and a message
that includes the name of the JSP page and the line
where the error occurred.
◼ Runtime Exception
◼ Occurs during serving request
◼ Catch by error page for specific exception
◼ Define error pages for the whole web app in web.xml
Contact me @ https://www.facebook.com/quynhtran.ly.94
JSP exception handling
◼ The page directive in JSP provides two
attributes to be used in exception handling.
◼ errorPage: Used to site which page to be
displayed when exception occurred
◼ isErrorPage : Used to mark a page as an error
page where exceptions are displayed
◼ <%@page isErrorPage="true“ %>
◼ <%@page errorPage=“errorhandle.jsp“ %>
◼ exception implicit object available only on error
page
◼ use to send customized error message to the client.
Contact me @ https://www.facebook.com/quynhtran.ly.94
Summary
• JavaServer Pages (JSP)
◼ Presentation tier
◼ JSP Page
◼ How JSP Works?
◼ JSP Lifecycle
◼ JSP Tags
◼ JSP Implicit Objects
◼ JSP Action
◼ JSP error handling
Contact me @ https://www.facebook.com/quynhtran.ly.94
Constructive question
◼ Why should you limit the use of scriptlets in JSP?
◼ Design views for customer registration of a web
application.
◼ How will the JSP page meet the needs of multiple
concurrent users?
◼ Compare 2 variables declared by declaration tag and by
scriptlet
◼ Compare two include mechanisms using directives and
actions
◼ When you want to redirect users to login to their role-
specific page, should use sendRedirect or action forward?
Contact me @ https://www.facebook.com/quynhtran.ly.94