Title: JAVA SERVER PAGES CREATING DYNAMIC WEB PAGES USING JAVA
1JAVA SERVER PAGESCREATING DYNAMIC WEB PAGES
USING JAVA
- James Faeldon
- CS 119 Enterprise Systems Programming
2Overview
- Introduction to JSP
- Understanding the need for JSP
- Evaluating the benefits of JSP
- Installing JSP Files
- JSP Scripting Elements
- 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
3Introduction to JSP
- Java Server Pages (JSP) technology enables you to
mix regular, static HTML with dynamically
generated content.
OrderConfirmation.jsp
4Introduction to JSP
- Dynamic Pages can change in response to different
context or conditions.
HTTP request parameters used as dynamic content
5Servlets 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
6Reading 3 Parameters (Example)
SERVLET HTML code in JAVA
JSP JAVA code in HTML
ThreeParams.java
ThreeParams.jsp
7Reading 3 Parameters (Example)
8Servlets vs. JSP
- JSP doesnt provide any capabilities that
couldnt 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.
9Installation of JSP files
- JSP Directories for Tomcat
- Main Location
- tomcat_install_dir/webapps/ROOT
- Corresponding URL
- http//localhost8080/SomeFile.jsp
- More Specific Location (Arbitrary Subdirectory)
- tomcat_install_dir/webapps/ROOT/SomeDirectory
- Corresponding URL
- http//localhost8080/SomeDirectory/SomeFile.jsp
10Types of JSP Scripting Elements
- Expressions of the form lt Java Expression gt,
which are evaluated and inserted into the
servlets output. - Scriptlets of the form lt Java Code gt, which are
inserted into the servlets _jspService method
(called by service). - Declarations of the form lt! Field/Method
Declaration gt, which are inserted into the body
of the servlet class, outside any existing
methods.
11Using JSP Expressions
- A JSP expression is used to insert values
directly into the output. It has the following
form - lt Java Expression gt
-
- Example
- Current time lt new java.util.Date() gt
12Predefined 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 lt request.getRemoteHost() gt
13Example JSP Expressions
Expressions.jsp
14Example JSP Expressions
15Writing 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 - lt Java Code gt
-
- Example
- lt
- String queryData request.getQueryString()
- out.println("Attached GET data " queryData)
- gt
16Example JSP Scriplets
BgColor.jsp
17Example JSP Scriplets
18Another Example JSP Scriplets
DayWish.jsp
19Another Example JSP Scriplets
20Using 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 - lt! Field or Method Definition gt
- Example
- ltH1gtSome Headinglt/H1gt
- lt!
- private String randomHeading()
- return("ltH2gt" Math.random() "lt/H2gt")
-
- gt
- lt randomHeading() gt
21Example JSP Declarations
AccesCounts.jsp
22Example JSP Declarations
23JSP Directive
- A JSP Directive affects the overall structure of
the JSP page. It has the form - lt_at_ directive attribute"value" gt
- lt_at_ directive attribute1"value1"
- attribute2"value2"
- ...
- attributeN"valueN" gt
- There are three main types of directives page,
include and taglib.
24The import Attribute
- The import attribute of the page directive lets
you specify the packages that should be imported
into the JSP page. - lt_at_ page import"package.class" gt
- lt_at_ page import"package.class1,...,package.classN
" gt - Example
- lt_at_ page import"java.util." gt
- Date today lt new Date() gt
25The 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. - lt_at_ page contentType"MIME-Type" gt
- lt_at_ page contentType"MIME-Type
charsetCharacter-Set" gt - Example
- First Last Email Address
- James Gosling james_at_gosling.com
- Larry Brown larry_at_brown.com
- Steve Balmer steve_at_balmer.com
- Scott McNealy scott_at_mcnealy.com
- lt_at_ page contentType"application/vnd.ms-excel"
gt - lt-- There are tabs, not spaces, between columns.
--gt
26Example Conditionally Generating Excel
Spreadsheets
ApplesAndOranges.jsp
27Example Conditionally Generating Excel
Spreadsheets
28Strategies 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 jspuseBean,
jspgetProperty, and jspsetProperty 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.
29Tips
- 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.
30Exercise
- 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.