Transcript JSP Slides

JAVA SERVER PAGES
CREATING DYNAMIC WEB PAGES USING JAVA
James Faeldon
CS 119 Enterprise Systems Programming
Overview

Introduction to JSP




JSP Scripting Elements




Understanding the need for JSP
Evaluating the benefits of JSP
Installing JSP Files
JSP Expressions
JSP Scriplets
JSP Declarations
JSP Page Directive



Understanding the purpose of the page directive
Designating which classes are imported
Specifying the MIME type of the page
Introduction to JSP

Java Server Pages (JSP) technology enables you to mix regular,
static HTML with dynamically generated content.
OrderConfirmation.jsp
Introduction to JSP

Dynamic Pages can change in response to different context or conditions.
HTTP request parameters used as dynamic content
Servlets vs. JSP

Servlets are good for data processing while JSP is good for presentation.

Benefits of JSP

It is easier to write and maintain the HTML

You can use standard Web-site development tools

You can divide up your development team
Reading 3 Parameters (Example)
SERVLET
JSP
HTML code in JAVA
JAVA code in HTML
ThreeParams.java
ThreeParams.jsp
Reading 3 Parameters (Example)
Servlets vs. JSP




JSP doesn’t provide any capabilities that couldn’t be accomplished with
Servlets.
JSP documents are automatically translated into servlets behind the scenes.
The issue is not the power of the technology, it is the convenience,
productivity, and maintainability of one or the other.
Choose the right tool for the job.
Installation of JSP files
JSP Directories for Tomcat

Main Location:
tomcat_install_dir/webapps/ROOT

Corresponding URL:
http://localhost:8080/SomeFile.jsp

More Specific Location (Arbitrary Subdirectory):
tomcat_install_dir/webapps/ROOT/SomeDirectory

Corresponding URL:
http://localhost:8080/SomeDirectory/SomeFile.jsp
Types of JSP Scripting Elements



Expressions of the form <%= Java Expression %>, which are evaluated and
inserted into the servlet’s output.
Scriptlets of the form <% Java Code %>, which are inserted into the servlet’s
_jspService method (called by service).
Declarations of the form <%! Field/Method Declaration %>, which are inserted into
the body of the servlet class, outside any existing methods.
Using JSP Expressions
A JSP expression is used to insert values directly into the output. It has the following
form:
<%= Java Expression %>
Example:
Current time: <%= new java.util.Date() %>
Predefined Variables

request, the HttpServletRequest.

response, the HttpServletResponse.



session, the HttpSession associated with the request (unless disabled with the session
attribute of the page directive
out, the Writer (a buffered version of type JspWriter) used to send output to the
client.
application, the ServletContext. This is a data structure shared by all servlets and
JSP pages in the Web application and is good for storing shared data.
Example:
Your hostname: <%= request.getRemoteHost() %>
Example: JSP Expressions
Expressions.jsp
Example: JSP Expressions
Writing JSP Scriplets
If you want to do something more complex than output the value of a simple expression,
JSP scriptlets let you insert arbitrary code. It has the following form:
<% Java Code %>
Example:
<%
String queryData = request.getQueryString();
out.println("Attached GET data: " + queryData);
%>
Example: JSP Scriplets
BgColor.jsp
Example: JSP Scriplets
Another Example: JSP Scriplets
DayWish.jsp
Another Example: JSP Scriplets
Using JSP Declarations
A JSP declaration lets you define methods or fields that get inserted into the main body of
the servlet class. It has the following form:
<%! Field or Method Definition %>
Example:
<H1>Some Heading</H1>
<%!
private String randomHeading() {
return("<H2>" + Math.random() + "</H2>");
}
%>
<%= randomHeading() %>
Example: JSP Declarations
AccesCounts.jsp
Example: JSP Declarations
JSP Directive

A JSP Directive affects the overall structure of the JSP page. It has the form:
<%@ directive attribute="value" %>
<%@ directive attribute1="value1"
attribute2="value2"
...
attributeN="valueN" %>

There are three main types of directives: page, include and taglib.
The import Attribute
The import attribute of the page directive lets you specify the packages that should be
imported into the JSP page.
<%@ page import="package.class" %>
<%@ page import="package.class1,...,package.classN" %>
Example:
<%@ page import="java.util.*" %>
Date today: <%= new Date() %>
The contentType Attribute


The contentType attribute sets the Content-Type response header, indicating the MIME
type of the document being sent to the client.
Use of the contentType attribute takes one of the following two forms.
<%@ page contentType="MIME-Type" %>
<%@ page contentType="MIME-Type; charset=Character-Set" %>
Example:
First
Last
Email Address
James
Gosling
[email protected]
Larry
Brown
[email protected]
Steve
Balmer
[email protected]
Scott
McNealy
[email protected]
<%@ page contentType="application/vnd.ms-excel" %>
<%-- There are tabs, not spaces, between columns. --%>
Example: Conditionally Generating Excel Spreadsheets
ApplesAndOranges.jsp
Example: Conditionally Generating Excel Spreadsheets
Strategies for invoking dynamic code in JSP






Call Java code directly. Place all Java code in JSP page.
Appropriate only for very small amounts of code.
Call Java code indirectly. Develop separate utility classes. Insert into
JSP page only the Java code needed to invoke the utility classes.
Use beans. Develop separate utility classes structured as beans. Use
jsp:useBean, jsp:getProperty, and jsp:setProperty to invoke the code.
Use the MVC architecture. Have a servlet respond to original request,
look up data, and store results in beans.Forward to a JSP page to
present results. JSP page uses beans.
Use the JSP expression language. Use shorthand syntax to access
and output object properties. Usually used in conjunction with beans
and MVC.
Use custom tags. Develop tag handler classes. Invoke the tag handlers with
XML-like custom tags.
Tips

Limit the amount of Java code that is in JSP pages. At the very least, use helper
classes that are invoked from the JSP pages.

Put all your classes in packages.

Define most methods with separate Java classes, not JSP declarations.
Exercise:
Create a web page that will display the contents of
the PERSON table in the owners database.
You should be able to display the records in an HTML
table or in an Excel spreadsheet.
Note: If your browser does not support displaying Excel spreadsheet a prompt
will show just choose to open the file.