25
CMPUT 391 – Database Management Systems Department of Computing Science University of Alberta CMPUT 391 Database Management Systems JavaServer Page s (JSP) - Lab 4 -

JavaServer Pages (JSP) - Lab 4 -

  • Upload
    rene

  • View
    40

  • Download
    4

Embed Size (px)

DESCRIPTION

JavaServer Pages (JSP) - Lab 4 -. What Is JSP?. JSP  Java Server Page SUN’s solution to both CGI and ASP Java version of ASP  a Web page with Java code embedded inside it that runs on the Web server - PowerPoint PPT Presentation

Citation preview

Page 1: JavaServer Pages (JSP) - Lab 4 -

CMPUT 391 – Database Management SystemsDepartment of Computing Science

University of Alberta

CMPUT 391

Database Management Systems

JavaServer Pages (JSP)

- Lab 4 -

Page 2: JavaServer Pages (JSP) - Lab 4 -

Lab 4 JavaServer Pages

CMPUT 391 – Database Management Systems 2

What Is JSP?

JSP Java Server Page SUN’s solution to both CGI and ASP Java version of ASP a Web page with Jav

a code embedded inside it that runs on the Web server

JSP source code runs on the web server in the JSP engine. The JSP engine dynamically generates the HTML and sends the HTML output to the web browser

Page 3: JavaServer Pages (JSP) - Lab 4 -

Lab 4 JavaServer Pages

CMPUT 391 – Database Management Systems 3

JSP vs. ASP

Fairly similar in the functionalityA web page with code embedded

inside it that runs on the Web server ASP-- only on Microsoft platforms,

JSP -- on any platform that conforms to the J2EE specification

Page 4: JavaServer Pages (JSP) - Lab 4 -

Lab 4 JavaServer Pages

CMPUT 391 – Database Management Systems 4

JSP vs. Servlet

both are Sun’s technology and have many features in common

both can be used for generating dynamic web content

Servlet -- Java class that provides special server side service,

JSP -- HTML page with embedded code all JSPs eventually become servlets before e

xecuting

Page 5: JavaServer Pages (JSP) - Lab 4 -

Lab 4 JavaServer Pages

CMPUT 391 – Database Management Systems 5

Why Use JSP?

separation of static from dynamic content (different from Servlet)

Write Once Run Anywherecompletely leverages the Servlet API

Page 6: JavaServer Pages (JSP) - Lab 4 -

Lab 4 JavaServer Pages

CMPUT 391 – Database Management Systems 6

JSP Architecture

Page 7: JavaServer Pages (JSP) - Lab 4 -

Lab 4 JavaServer Pages

CMPUT 391 – Database Management Systems 7

JSP Lifecycle

JSP initialization run JspInit method

JSP execution run _jspService (HttpServletRequest, HttpServletResponse) method

JSP cleanup run JspDestroy method

JSP loading

JSP compilation(if it has not yet been compiled)

Page 8: JavaServer Pages (JSP) - Lab 4 -

Lab 4 JavaServer Pages

CMPUT 391 – Database Management Systems 8

Your First JSP

<HTML> <BODY>

Welcome to CMPUT391 Lab! </BODY> </HTML>

Store the file in the your JSP directory: YourHomeDirectory/catalina/webapps/proj1

Load the new file, with the ".jsp" extension, in your browser

http://ugweb.cs.ualberta.ca/~c391/tutorial/examples/JSPExample1.jsp

Page 9: JavaServer Pages (JSP) - Lab 4 -

Lab 4 JavaServer Pages

CMPUT 391 – Database Management Systems 9

Adding Dynamic Content via Expressions

The ability to embed Java to embed Java expressions in JSP pages put

them within the Expression tag: <%= … %>

<HTML> <BODY>

Hello!  The time is now <%= new java.util.Date() %>

</BODY> </HTML>

http://ugweb.cs.ualberta.ca/~c391/tutorial/examples/JSPExample2.jsp

Page 10: JavaServer Pages (JSP) - Lab 4 -

Lab 4 JavaServer Pages

CMPUT 391 – Database Management Systems 10

Scriptlets

Scriptlet: a block of Java code inside JSPExecuted every time JSP is invoked  to create a scriplet, place your Java code

within the tag <% … %> (just like Expression tag, but without the = sign at the start of the sequence)

Page 11: JavaServer Pages (JSP) - Lab 4 -

Lab 4 JavaServer Pages

CMPUT 391 – Database Management Systems 11

Scriptlets: Example

<HTML>

<BODY>

<%    

// This is a scriptlet.  Notice that the "date"    

// variable we declare here is available in the    

// embedded expression later on.      

java.util.Date date = new java.util.Date();

%>

Hello!  The time is now <%= date %>

</BODY>

</HTML>

http://ugweb.cs.ualberta.ca/~c391/tutorial/examples/JSPExample3.jsp

Page 12: JavaServer Pages (JSP) - Lab 4 -

Lab 4 JavaServer Pages

CMPUT 391 – Database Management Systems 12

Generating HTML in Scriplets

A scriptlet does not generate HTML by itself (unlike an Expression tag)  

Use a variable called "out".  NO need to declare

(already predefined for scriptlets)

Page 13: JavaServer Pages (JSP) - Lab 4 -

Lab 4 JavaServer Pages

CMPUT 391 – Database Management Systems 13

Generating HTML in Scriplets: Example

<HTML> <BODY> <%     // This scriptlet declares and initializes "date"         java.util.Date date = new java.util.Date(); %> Hello!  The time is now <%     // This scriptlet generates HTML output     out.println(String.valueOf(date)); %> </BODY> </HTML> http://ugweb.cs.ualberta.ca/~c391/tutorial/examples/JSPExample4.jsp

Page 14: JavaServer Pages (JSP) - Lab 4 -

Lab 4 JavaServer Pages

CMPUT 391 – Database Management Systems 14

Pre-defined Objects for JSPs

there are several objects that are automatically available in JSP:

Variable Type request Javax.servlet.http.HttpServletRequest

response Javax.servlet.http.HttpServletResponse

out Javax.servlet.jsp.JspWriter

session Javax.servlet.http.httpsession

pageContent Javax.servlet.jsp.pagecontext

application Javax.servlet.http.ServletContext

config Javax.servlet.http.ServletConfig

page Java.lang.Object

Page 15: JavaServer Pages (JSP) - Lab 4 -

Lab 4 JavaServer Pages

CMPUT 391 – Database Management Systems 15

Mixing Scriptlets and HTML

<TABLE BORDER=2>

<%     for ( int i = 0; i < 10; i++ ) {         %>        

<TR>        

<TD>Number</TD>

        <TD> <%= i+1 %> </TD>        

</TR>        

<%     } %>

</TABLE>

http://ugweb.cs.ualberta.ca/~c391/tutorial/examples/JSPExample5.jsp

Page 16: JavaServer Pages (JSP) - Lab 4 -

Lab 4 JavaServer Pages

CMPUT 391 – Database Management Systems 16

JSP Directives

<%@ page import="java.util.*" %>

<HTML>

<BODY>

<% Date date = new Date(); %>

Hello!  The time is now <%= date %>

</BODY>

</HTML>

http://ugweb.cs.ualberta.ca/~c391/tutorial/examples/JSPExample6.jsp

Page 17: JavaServer Pages (JSP) - Lab 4 -

Lab 4 JavaServer Pages

CMPUT 391 – Database Management Systems 17

JSP Directives (cont.)

a JSP directive gives special information about the page to the JSP Engine.

directive tag: <%@ directive ... %> there are three main types of directives:

– page - processing information for this page • List of imported packages:

<%@ page import="java.util.*, java.io.*" %>

– include - files to be included– tag library - tag library to be used in this page.

Page 18: JavaServer Pages (JSP) - Lab 4 -

Lab 4 JavaServer Pages

CMPUT 391 – Database Management Systems 18

JSP Directives: Include (Example)

<HTML>

<BODY>

Going to include another.jsp …

<BR>

<%@  include file=“another.jsp”%>

</BODY>

</HTML>

Page 19: JavaServer Pages (JSP) - Lab 4 -

Lab 4 JavaServer Pages

CMPUT 391 – Database Management Systems 19

JSP Declarations

for a JSP, all the code within the <% %> tags and all the expressions within the <%= %> tags belong to one big Java method in the generated servlet

a JSP declaration is used to enclosed any declarations that belong outside the big method that generates the page

declaration tag: <%! ... %>

Page 20: JavaServer Pages (JSP) - Lab 4 -

Lab 4 JavaServer Pages

CMPUT 391 – Database Management Systems 20

JSP Declarations: Example

<%@ page import="java.util.*" %>

<HTML>

<BODY>

<%! Date theDate = new Date();    

Date getDate()     {

System.out.println( "In getDate() method" );        

return theDate;    

} %>

Hello!  The time is now <%= getDate() %>

</BODY>

</HTML>

http://ugweb.cs.ualberta.ca/~c391/tutorial/examples/JSPExample7.jsp

Page 21: JavaServer Pages (JSP) - Lab 4 -

Lab 4 JavaServer Pages

CMPUT 391 – Database Management Systems 21

Inserting Comments into JSPs

If your JSP is generating HTML, you can use HTML comments: <!--  ... -->

Java one-line comment: <%// ... %-->Java multi-liners comments:

<% /* %>

<% */ %>

Page 22: JavaServer Pages (JSP) - Lab 4 -

Lab 4 JavaServer Pages

CMPUT 391 – Database Management Systems 22

Processing a Form with JSP

<html>

<head></head>

<body>

<form action=“JSPExample8.jsp" method="post">

Enter a test string:<br>

<input type="text" name=“test"><br>

<input type="submit" name="submit">

</form>

</body>

</html>

JSPExample8.html

<html>

<head></head>

<body>

Your info has been received:

<br><br>

<%

String sName = request.getParameter(“test");

out.print(sName);

%>

</body>

</html>

JSPExample8.jsp

Page 23: JavaServer Pages (JSP) - Lab 4 -

Lab 4 JavaServer Pages

CMPUT 391 – Database Management Systems 23

Summary

JSPs are eventually turned into Servlets though JSPs are much simpler than ser

vlets, for some cases Servlets are still useful

one could combine JSP and Servlet in one project

Page 24: JavaServer Pages (JSP) - Lab 4 -

Lab 4 JavaServer Pages

CMPUT 391 – Database Management Systems 24

Further Readings

other JSP tutorials:– http://developer.java.sun.com/

developer/onlineTraining/JSPIntro/

– http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/

JSP specifications: – http://java.sun.com/products/jsp/

Page 25: JavaServer Pages (JSP) - Lab 4 -

Lab 4 JavaServer Pages

CMPUT 391 – Database Management Systems 25

Exercise

create and populate a table in your Oracle account (At least 2 columns & 4 records)

Only use JSP, implement:– connect to Oracle database– execute the SQLStatement received from the

browser (e.g. select * from “table name”;)– display ResultSet (including column labels) &

format the output (i.e. align the columns. Tip: use ResultSetMetaData & “Table” tag in HTML)

– display an error if the SQL statement was not executed correctly in Oracle (e.g. select * from “wrong table”)