JAVA SERVER PAGES CREATING DYNAMIC WEB PAGES USING JAVA James Faeldon CS 119 Enterprise Systems...

Post on 31-Dec-2015

221 views 1 download

transcript

JAVA SERVER PAGESCREATING DYNAMIC WEB PAGES USING JAVA

James FaeldonCS 119 Enterprise Systems Programming

Overview

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

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)

SERVLETHTML code in JAVA

JSPJAVA 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 AddressJames Gosling james@gosling.comLarry Brown larry@brown.comSteve Balmer steve@balmer.comScott McNealy scott@mcnealy.com<%@ 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.