JSP Tag Libraries based Framework for Wireless Application Development

quicksandwalleyeInternet and Web Development

Oct 31, 2013 (3 years and 9 months ago)

79 views

(
1
)

JSP Tag Libraries
based Framework for
Wireless Application
Development


Hitesh Kr. Seth

Chief Technology Evangelist

SeraNova, Inc

hitesh.seth@seranova.com

O’Reilly Conference on
Enterprise Java, 2001

(
2
)

Agenda


Overview


Servlets


Java Server Pages


JSP Tag Libraries


Tag Libraries for Wireless Application
Development


Design Requirements


Tags


Enhancements


Conclusion


References

(
3
)

Servlets

(
4
)

Servlets


Java based web server
extension mechanism


Based on HTTP request
-
response Paradigm


Multi threaded, Session
Management


Versions


J2EE v1.2


Servlets 2.2


J2EE v1.3
-

2.3 (Draft)


Usage Scenarios


Creating dynamic web
applications


Finer control than JSP

(
5
)

Features


Extend Web Server Functionality


Similar to CGI
-
BIN, NSAPI/ISAPI extensions, apache
Modules


Portable


Multiple Servlet implementations on various platforms


Rich


Can call any Java API, such as JDBC, EJB, JNDI etc.


High Performance


Loaded into memory once and called


Uses threads for concurrency


Can maintain connection pools

(
6
)

Features


Converts HTTP Form parameters into a
Hashtable


Customizable Session Management capabilities


Using cookies and URL rewriting


Application Servers implement session management
Mechanisms


Memory, File System, Relational Database; Web farm
compatible


Leverage other java capabilities such as
localization

(
7
)

Servlet by Example

(
8
)

Java Server
Pages

(
9
)

JSP


Embedded dynamic Java
scriptlets


Similar to ASP and Server Side
JavaScript


Implemented as a “Self
-
Managed” Servlet


“Compiled” into Servlets and kept
in Memory


Separates presentation from
business logic


Tag Extension mechanism


Versions


J2EE v1.2


JSP 1.1


J2EE v1.3


JSP 1.2 (Draft)


Usage Scenarios


Dynamic/flexible presentation
layer

(
10
)

JSP Elements


Static Templates


HTML/XML/WML/...


Standard Directives


Include Directive


Page Directive


Taglib Directive


Scripting Elements


Declaration


Expression


Comments


Standard Actions


forward, get/set Property, include, plugin, useBean, param


Custom Tags


Tag Libraries

(
11
)

JSP Implicit Objects


request


response


pageContext


session


application


out


config


page


exception


Error Pages Only

(
12
)

JSP by Example

(
13
)

JSP by Example
-

Interactions

HTML Form


(SubmitForm.jsp)


(
14
)

JSP by Example
-

Beans

Using Beans

Without Beans

(
15
)

Using Third Party Beans


Upload HTML


<form method="post"
action="Upload.jsp"
enctype="multipart/form
-
data">



<input type="file"
name="FILE1"
SIZE="50"><br/>



<input type="submit"
value="Upload">


</form>


JSP

(
16
)

JSP/Servlet Implementations


Reference Implementation


Apache
Tomcat@Jakarata


Third Party Implementations


Allaire JRun Application Server


ATG Dynamo Application Server


BEA Weblogic Application Server


Gemstone/J Application Server


IBM WebSphere Application Server


iPlanet Application Server


Orion Application Server


SilverStream Application Server


etc.

(
17
)

JSP Tag Libraries

(
18
)

JSP Tag Libraries


Create application/vertical specific tags


Rich


Encapsulation of functionality


Simplified Code


Less presentation code to manage


Easier to author


Ease of Use


Ease of Use within WYSIWYG authoring tools


Portability


Reusability


Less Java “Scriptlets”


Cleaner separation of presentation format &
presentation logic

(
19
)

JSP Taglib Examples


Examples


Logging

<x:log message=“database #13 connection opened”/>


XSLT Transformation

<xslt:transform stylesheet=“Product.xsl”>

xml content

</xslt:transform>


Iteration


<x:Iterate …/>



</x:Iterate>


Send an Email

<x:email from="hitesh.seth@seranova.com" to=“hitesh.seth@seranova.com">

Message...

</x:email>


JSR #000052


A Standard Tag Library for Java Server Pages

(
20
)

Tag Libraries by Example

(
21
)

Taglib Descriptor

(
22
)

Reusable Tag Libraries


Allaire JRun Tag Library


Sql, Email, JMS, JNDI, XML Query, XSLT
Transformation, Field Validation, Logic
-

For Each, If,
Switch, Case


Apache Jakarta Taglibs


Application, BSF, DateTime, Input, JNDI, JSP Spec,
Page , Regexp, Request, Response, Session, SQL,
Utility, XSL


BEA Weblogic Portal Tag Library


Portal Framework


Orion Taglibs


EJB/Utility

(
23
)

Tag Libraries for

Wireless Application
Development

(
24
)

Design
Requirements

(
25
)

Requirements Summary


Leverage existing HTTP/HTTPS based
application delivery frameworks


Support multiple display formats


HTML, WML, HDML, i
-
mode (Compact HTML),
XHTML
-
Basic


Simple


Similar to existing known HTML tags


Simple tags and attributes


Compliant with Authoring Tools

(
26
)

Multi
-
modal Page

<page> Tag

(
27
)

Hello World

Tag
Library

Multi
-
modal
Page

(
28
)

Rendering


Web Browser


Wireless Microbrowser

(
29
)

Taglib Descriptor

(
30
)

Page Tag Impl.

Browser
Detection

(
31
)

Page Tag Impl.(contd.)

WAP/WML
Delivery

(
32
)

Page Tag Impl. (contd.)

(
33
)

Page Tag Impl. (contd.)

(
34
)

Hyperlinks

<link> Tag

(
35
)

The Link Tag

(
36
)

Rendering


HTML Browser


WML Microbrowser

(
37
)

Tag Descriptor

(
38
)

Link Tag Impl.

(
39
)

Interactions

<form> and <field>
Tags

(
40
)

Form & Fields

(
41
)

Rendering


HTML Browser

(
42
)

Rendering


WML Microbrowser

(
43
)

Tag Descriptor (Field)

(
44
)

Tag Descriptor (Form)

(
45
)

Field Tag Impl.

Call Parent
Tag
Methods

(
46
)

Form Tag Impl.

(
47
)

Form Tag Impl.

Enumerate

all fields

(
48
)

Taglib So far


Implemented


<page> Tag


<link> Tag


<form> Tag


<field> Tag


Common Elements


<p>, <br/>, <b>, simplified <table>


Basic Simple Constructs for creating an
complete multi
-
modal application

(
49
)

Benefits


Similar to HTML tags


Ease of authoring/learning


Use existing XML Compliant HTML tags


<p>, <br/> etc.


Simplicity


Just <page>, <link>, <form>, <field> tags can be
used to create full featured applications


Use all JSP features with the application


Session Management


Request/Response handling


Call any Java API

(
50
)

Enhancements


Implement other delivery formats


HDML, i
-
Mode, etc.


More functionality (more tags/attributes)


Use “body” tags


Code optimization


Use XSLT for “templated” delivery


Provide capability to implement
device/network specific functionality


(
51
)

Conclusion


JSP Tag Libraries


Powerful mechanism to implement rich
functionality


Promotes usability and maintainability


Application for a multi
-
modal Wireless
Framework

(
52
)

References

(
53
)

References


Servlets


Servlets Homepage

http://www.javasoft.com/products/servlet


Java Tutorial (JavaSoft)

http://www.javasoft.com/tutorial


Servlet Central

http://www.servletcentral.com


Servlets.com

http://www.servlets.com


Java Servlet Programming (O’Reilly)


Java Enterprise in a Nutshell


JSP


JSP Homepage

http://www.javasoft.com/products/jsp


Professional JSP (Wrox)


JSP Resource Index

http://www.jspin.com

(
54
)

References


Tag Libraries


Tag Libraries in JavaServer Pages

http://java.sun.com/products/jsp/pdf/talks/TagLibs.pdf


Jakarta
-
Taglibs Tutorial

http://jakarta.apache.org/taglibs/tutorial.html


JSR #000052

http://java.sun.com/aboutJava/communityprocess/jsr/jsr_052_jspta
glib.html


Allaire JRun Tag Library

http://www.allaire.com/handlers/index.cfm?ID=15990&Method=Full


Apache Jakarta Taglibs

http://jakarta.apache.org/taglibs


BEA Weblogic Portal Tag Library

http://edocs.beasys.com/wlac/portals/docs/tagscontents.html


Orion Taglibs (EJB/Utility)

http://www.orionserver.com/tags/


JSP Tag Libraries at Jspin.com

http://www.jspin.com/home/tags

(
55
)

References


Wireless


WAP Forum

http://www.wapforum.org


HDML 3.0 Reference

http://developer.phone.com/dev/ts/htmldoc/31h/hdmlref/out
put/

(
56
)

Questions/Suggestions?

?

(
57
)

Thanks for your
time