DT2113 Internet Application Development - PowerPoint PPT Presentation

1 / 52
About This Presentation
Title:

DT2113 Internet Application Development

Description:

DT2113 Internet Application Development – PowerPoint PPT presentation

Number of Views:34
Avg rating:3.0/5.0
Slides: 53
Provided by: fsdf
Category:

less

Transcript and Presenter's Notes

Title: DT2113 Internet Application Development


1
DT211/3 Internet Application Development
Introduction to Java Server Pages (JSP)
2
Introduction
  • First need to know the various java related
    terms
  • J2EE, J2SE, JDK, JRE, JSP,JSTL, Java
    Servlets,Tomcat, Apache etc..

3
Introduction J2EE
  • Sun Microsystems supply the Java 2 Enterprise
    Edition(J2EE) platform, enabling developers to
    develop java based enterprise applications
  • J2EE is a standard set of technologies and APIs
  • (note J2SE is the standard edition of the java
    platform but is not geared at large enterprise
    environments with distributed systems)
  • J2EE includes the following components

Java Server Pages
Java beans
Servlets
Java Messaging
JNDI
JDBC
4
Introduction J2EE
  • Since J2EE is a specification, vendors create
    productsthat support the J2EE specifcation e.g.
    Apache, IBMWebSphere, BEA Weblogic.
  • From a web perspective, the J2EE applications
    that areparticularly relevant are
  • Java Server PagesJava servletsJava Beans

Can be used on its ownor with beans/servlets to
create a webapplication
Can be used on its ownor with JSP/beans to
create a webapplication
More complex web applications may use all 3
5
Introduction JDK
  • The (JDK) Java Development Kit is the collective
    name for the various development components
    supplied in the J2EE (or J2SE).
  • The Java Runtime Environment (JRE) is consists of
    the components required to run a java application

6
Introduction to JSP
  • Java Server Pages A technology for developing
    web
  • pages that include dynamic content
  • Created by SUN microsystems
  • Equivalent of Microsofts Active Server Pages
    technology
  • Pages have a file extension of .JSP
  • JSPs enable web developers to enhance HTML code
  • by adding special JSP elements that are
    processed by the
  • server
  • Will use JSP v2.0

7
Advantages of JSP
  • JSP pages are pre-compiled ? Fast
  • Part of the Suns J2EE -? Can be used with other
    types of java technologies, such as servlets -?
    flexible
  • JSP is a specification ? multiple vendors support
    it ? commercially stable/not fly by night
    technology
  • Easy to develop HTML can be easily maintained
    with JSP. Relatively minimal programming skills
    required.
  • JSP page code is not visible on client only
    generated HTML is visible

8
Running JSP pages
Not automatically included with all web servers
  • To develop and run JSP pages, need
  • - Java Developer Kit (JDK which is part of
    J2EE) or higher AND a Web server that contains a
    JSP Container
  • JSP Containers are not automatically included
    with all Web servers
  • Examples of web servers that contain a JSP
    container are Apache Tomcat and Blazix.

9
JSP Containers
  • JSP Container
  • The JSP Container intercepts all client request
    for JSP pages
  • First time a JSP page is requested, the Container
    converts the page into a java program called a
    Servlet and compiles --? Translation phase
  • For all follow-on request, the Container
    processes each request by invoking the
    appropriate servlet and then generating the
    response -? Request processing phase
  • Q What happens if the JSP page is changed?

10
How a JSP page is processed by server
First time through, JSP is translated to a
servlet After, container goes directly to the
servlet in the request processing phase
If JSP page is changed, servlet is re-compiled
11
JSP and Apache
  • Apache project have a sub project called
    Jakarta(see http//jakarta.apache.org/index2.html
    )
  • Jakarta project produces
  • Tomcat web server (nicknamed Catalina)
  • Tomcat webserver incorporates JSP container
    (nicknamed Jasper)

12
Software Versions
JSP technology developing rapidly ? New version
contain major new capabilities ? Always note the
JSP container version you are working with, and
check functionality supported (on apache
website) This course using Apache Tomcat Version
5 JSP 2 JSLT 1.1 Servlet 2.4
13
To run a JSP
Using apache Tomcat Create your web application
directory Create the subset WEB-INF directory
(wont run without this) Put JSP page into web
application directory Call from the
browser http//localhost8080/webapp/somename.jsp
14
To run a JSP
In the background Tomcat will retrieve the
JSP page from the web server If its the first
time JSP page has been called/run or if page has
changed, Tomcat will compile the JSP page (into a
servlet) - .java and .class placed in /work
directory. -? subsequent calls to page will be
faster as no compile needed JSP page will be
presented back to the user
15
Simplest JSP.. Helloworld
  • Prints out message to user when JSP is loaded..
  • Tomcat demo..

16
Another Simple JSP example
  • lthtmlgt
  • lt_at_ page import"java.util.Date" gt
  • ltheadgt
  • lttitlegtJSP DATE EXAMPLElt/titlegt
  • lt/headgt
  • ltbody bgcolorffffffgt
  • lth1gtJSP DATElt/h1gt
  • lth2gt
  • The current date is lt new Date() gt.
  • lt/h2gt
  • lt/bodygt
  • lt/htmlgt

Prints out the current date
17
Readability of JSP pages
  • Always always always ensure that code is
  • INDENTED COMMENTED CONTAINS AN ID
    BLOCK
  • Indented - to reflect level of the code
    lthtmlgt
  • ltheadgtajsdlkfjads etc
  • 2) Well commented. Comments in JSP appear
    aslt-- calculate the sum of x and z here --gt
  • Comments in HTML appear as lt!--- this is a
    comment --gt
  • HTML comments will be visible by view source in
    browser, JSP comments wont.

18
Readability of JSP pages
3) Titled with an ID block At the top of each
JSP page, should have an ID block explaining who
write the script, date, script name, description
and any revisions. Can use either JSP or HTML
comments (depending on whether users should be
able to see the ID block)
lt--
Script name addition.jsp
Author Keith Morneau
Date July 7th 2006
Desciption whatever it does..
Revisions
August 8th 2006 added subroutine
-
-gt etc
19
JSP techniques
JSP provides variety of techniques to enable
dynamic processing
  • Directive elements

In this topic
  • Scripting elements (java)
  • Action elements and Java Standard Tags Library
  • Java Beans

20
JSP Pages Directive Elements
  • Directive Elements - Used to provide information
    about the general set-up of the page. e.g.
    inclusion of header files, name of page to report
    errors, whether session tracking is required etc
  • Always enclosed between lt_at_ gt
  • Syntax lt_at_ directivename attribute
    value, attribute value . gt

21
JSP Pages Directive Elements
  • There are Three directives available to use
  • lt_at_ page .. gt
  • lt_at_ include gt
  • lt_at_ taglib .. gt

22
Directive Elements
  • Each directive has a set of associated attributes
    (similar to some tags in HTML)
  • Usually placed at top of JSP file but doesnt
    have to be
  • Example
  • lt_at_ page import"java.util., java.lang." gt
  • Full list of attributes available at
    http//java.sun.com/products/jsp/syntax/1.1/syntax
    ref11.html

23
Directive Elements Page
Page directive - defines attributes that apply to
an entire JSP page. Examples lt_at_ page
contentType text/html gt lt_at_ page language
java gt lt_at_ page errorPage"error.jsp" gt
24
Directive Elements Page
List of attributes includes lt_at_ page
language"java" import"package.class
package., ..." session"truefalse"
isThreadSafe"truefalse" multiple threads
allowed or not info"text" gives info about
the page to administration errorPage"relativeUR
L" contentType"mimeType charsetcharacterS
et " "text/html charsetISO-8859-1"
isErrorPage"truefalse" Specifies whether
exception object available or notgt
25
Directive Elements Include
Include directive - Includes a static file in a
JSP file attranslation time Syntax lt_at_ include
file"relativeURL" gt The included file can be
an HTML file, a JSP file, a text file, or a code
file written in the Java programming
language Useful for including repetitive HTML
content across a web site headers, navigation
bars, footers etc Useful for common logic e.g.
date displays
26
Directive Elements Include
Example jsp page name includexample.jsp
lthtmlgtltheadgtlttitlegtAn Include Testlt/titlegtlt/headgt
ltbody bgcolor"white"gtltfont color"blue"gtThe
current date and time islt_at_ include
file"date.jsp" gtlt/fontgtlt/bodygtlt/htmlgt
27
Directive Elements Include
Example (continued) jsp page name date.jsp
lt_at_ page import"java.util." gtlt (new
java.util.Date() ).toLocaleString() gt
Included into includexample.jsp from previous page
When includexample.jsp is run, displays as The
current date and time areAug 30, 2006 23840
28
Directive Elements Taglib
Taglib directive - Defines a tag library and
prefix for the custom tags used in the JSP page.
Syntax lt_at_ taglib uri"URIToTagLibrary
prefix"tagPrefix" gt Example lt_at_ taglib
urihttp//java.sun.com/jstl/core prefixc"
gt More on taglib directives later when we use
Java Standard Tag Library (JSTL)
29
Directive Elements summary
  • Three directives page, include, taglib
  • Used to define general set-up information about
    the JSP page
  • By themselves, dont do anything
  • At least one used in most JSP pages

30
JSP dynamic processing
Done
  • Directive elements
  • Scripting elements
  • Action elements and JSTL
  • Java Beans

31
Scripting elements
Developers in JSP can insert java code directly
into a JSP pages using scripting elements The
code is executed when the page is requested
  • Should be used with extreme care
  • Too much code ? difficult to maintain
  • Difficult for HTML programmers
  • More suitable for simple applications with small
    development team

Q How do you specify that the language being
used in page by scripting elements is java?
A Page directive language attribute
32
Scripting elements
  • Three types of scripting elements
  • Expressions The expression syntax lt ... gt
    defines a scripting language expression ..
    result
  • Scriptlets The scriptlet syntax lt ... gt can
    handle declarations, expressions, or any other
    type of code fragment valid in the page scripting
    language.
  • When you write a scriptlet, end the scriptlet
    with gt before you switch to HTML, text, or
    another JSP tag
  • 3. Declarations The declaration syntax lt! ...
    gt declares variables or methods.

33
Scripting elements Expressions
  • Expressions
  • Contains any valid java expression in the JSP
    page
  • Used to output dynamic values directly onto web
    page (e.g. result of a calculation, dates)
  • Enclosed between lt and gt
  • output as a string
  • Syntax lt expression gt e.g. lt 11gt

34
Expressions - examples
  • E.gs any valid java expression
  • lt Math.sqrt(2) gtlt itemsi gtlt a b
    c gtlt new java.util.Date() gt

35
Scripting elements Expressions
Example lthtmlgt ltbodygt Current time is lt
new java.util.Date() gt lt/bodygt lt/htmlgt
36
Scripting elements Expressions
  • Note
  • Evaluated at run time. Result is added to the
    response body and output directly to web page
  • Can use an expression within a line of text,
    whether or not it is tagged with HTML
  • Must be a valid java expression
  • No required at end of expression (unlike
    scriptlets)

37
Scripting elements
  • Three types of scripting elements
  • Expressions
  • Scriptlets
  • Declarations

38
Scripting elements Scriptlets
  • Scriplets are java code fragments with a JSP page
  • Enables more complex functionality than
    expressions
  • Java code is placed between lt and gt characters
    (just like expressions, but without the sign at
    the start of the sequence.)
  • Can have any number of valid java code statements
  • Scriptlet contains Java code that is executed
    every time the JSP is invoked
  • Syntax lt code gt

39
Scripting elements Scriptlets
Example jsp page that outputs numbers 1 to 10
onto a web page
htmlgt ltheadgt lttitlegtCount to 10 in JSP
scriptletlt/titlegt lt/headgt ltbodygt lt for(int
i1ilt10i) gt ltigtltbr/gt lt gt
lt/bodygt lt/htmlgt
Scriptlets
Expression used to output to page. Cant put
HTML Tags into the scriptlet. Can onlycontain
valid java code
40
Scripting elements Scriptlets
Example jsp page that outputs numbers 1 to 10
onto a web page Output in browser will be..
Count to 10 in JSP 1 2 3 4 5 6 7 8 9 10
41
Scriplets mixing scriplets with HTML and other
tags
  • When you mingle scripting elements with HTML and
    JSP tags, you must always end a scripting element
    before you start using tags and then reopen the
    scripting element afterwards, like this
  • lt else gt lt!-- closing the scriptlet
    before the tags start --gt... tags follow
    ...lt gt lt!-- reopening the scriptlet to
    close the language block --gt
  • At first, this may look a bit strange, but it
    ensures that the scripting elements are
    transformed correctly when the JSP source file is
    compiled

42
Scripting elements Scriptlets
Example 2 jsp page that outputs Hello! The
time is now Wed Sep 03 131758 BST 2006 Your
machine's address is 127.0.0.1 onto a web page
ltHTMLgt ltBODYgt lt java.util.Date date new
java.util.Date() gt Hello! The time is now lt
out.println( date ) out.println( "ltBRgtYour
machine's address is " ) out.println(
request.getRemoteHost()) gt lt/BODYgt lt/HTMLgt
Note could have put this line outside the
scriptlet as HTML
43
Scripting elements Scriptlets
Note Any text, HTML tags, or JSP elements you
write must be outside the scriptlet Readability
Mixture of Tags and Java code can be
difficult to read especially for HTML
developers
44
Scripting elements Scriptlets
lt if (Math.random() lt 0.5) gt Have a
ltBgtnicelt/Bgt day! lt else gt Have a
ltBgtlousylt/Bgt day! lt gt
In background, JSP container compiles the JSP
page into Java code.. converting the HTML
snippets into java code to out.print statements
---?
45
Scripting elements Scriptlets
JSP code on previous page will be converted in
background to the following java code..
if (Math.random() lt 0.5)
out.println("Have a ltBgtnicelt/Bgt day!")
else out.println("Have a ltBgtlousylt/Bgt
day!")
46
Scripting elements Scriptlets
Example 3 fragment of JSP page that generates a
table in HTML containing numbers 1 to n
ltTABLE BORDER2gt lt for ( int i 0 i lt n
i ) gt ltTRgt
ltTDgtNumberlt/TDgt ltTDgtlt i1 gtlt/TDgt
lt/TRgt lt gt lt/TABLEgt
HTML within for loop is output n times
Note would need to supply int variable n before
it will work
47
Scripting elements
  • Three types of scripting elements
  • Expressions
  • Scriptlets
  • Declarations

48
Scripting elements Declarations
Declaration Declares a variable or method that
can be used throughout the JSP page Examples lt
! int i 0 gtlt! int a, b, c gtlt! Circle a
new Circle(2.0) gt Syntax lt!
declarations gt
Note the
49
Scripting elements Declarations
Declarations dont generate any output onto the
page by themselves -? usually used with
expressions and/or scriptlets Examples lt!
private int accessCount gt Accesses to page
since server reboot lt accessCount gt
Prints the number of times the current page has
been requested since the server was booted
50
Scripting elements Declarations
Example Declares method getDate()
lt_at_ page import"java.util." gt ltHTMLgt ltBODYgt lt!
Date theDate new Date() Date
getDate() System.out.println( "In
getDate() method" ) return theDate
gt Hello! The time is now lt getDate()
gt lt/BODYgt lt/HTMLgt
Method getDate() returns a Date object
51
Declaration
  • Declarations (between lt! and gt tags) contain
    one or more variable or method declarations that
    end or are separated by semicolons
  • lt! int i 0 gtlt! int a, b double c gtlt!
    Circle a new Circle(2.0) gt You must declare
    a variable or method in a JSP page before you use
    it in the page. The scope of a declaration is
    usually a JSP file, but if the JSP file includes
    other files with the include directive, the scope
    expands to cover the included files as well.

52
Declarations
  • Warnings!
  • Declaring variables in a JSP page using
    declarations can cause synchronisation problems..
    Compiled servlets see these as variables which
    may be shared across all users using the JSP
    page.
  • On previous date example, Date stays the same
    when the page is reloaded.. Because only a single
    instance of the page (and there of the variable
    theDate is available). Better to use local
    variables within declared methods or scriptlets
Write a Comment
User Comments (0)
About PowerShow.com