57
(1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc [email protected] O’Reilly Conference on Enterprise Java, 2001

(1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc [email protected]

Embed Size (px)

Citation preview

Page 1: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(1)

JSP Tag Libraries based Framework for Wireless Application

Development

Hitesh Kr. SethChief Technology EvangelistSeraNova, [email protected]’Reilly Conference on Enterprise Java, 2001

Page 2: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(2)

Agenda Overview

Servlets Java Server Pages

JSP Tag Libraries Tag Libraries for Wireless Application

Development Design Requirements Tags

Enhancements Conclusion References

Page 3: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(3)

Servlets

Page 4: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(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

Page 5: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(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

Page 6: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(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

Page 7: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(7)

Servlet by Example

Page 8: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(8)

Java Server Pages

Page 9: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(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

Page 10: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(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

Page 11: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(11)

JSP Implicit Objects request response pageContext session application out config page exception

Error Pages Only

Page 12: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(12)

JSP by Example

Page 13: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(13)

JSP by Example - Interactions

HTML Form (SubmitForm.jsp)

Page 14: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(14)

JSP by Example - Beans

Using Beans Without Beans

Page 15: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(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

Page 16: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(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.

Page 17: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(17)

JSP Tag Libraries

Page 18: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(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

Page 19: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(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="[email protected]" to=“[email protected]">

Message...</x:email>

JSR #000052 A Standard Tag Library for Java Server Pages

Page 20: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(20)

Tag Libraries by Example

Page 21: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(21)

Taglib Descriptor

Page 22: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(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

Page 23: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(23)

Tag Libraries for Wireless Application

Development

Page 24: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(24)

Design Requirements

Page 25: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(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

Page 26: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(26)

Multi-modal Page

<page> Tag

Page 27: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(27)

Hello WorldTag

Library

Multi-modal Page

Page 28: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(28)

Rendering Web Browser Wireless Microbrowser

Page 29: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(29)

Taglib Descriptor

Page 30: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(30)

Page Tag Impl.

Browser Detection

Page 31: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(31)

Page Tag Impl.(contd.)

WAP/WML Delivery

Page 32: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(32)

Page Tag Impl. (contd.)

Page 33: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(33)

Page Tag Impl. (contd.)

Page 34: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(34)

Hyperlinks

<link> Tag

Page 35: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(35)

The Link Tag

Page 36: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(36)

Rendering HTML Browser WML Microbrowser

Page 37: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(37)

Tag Descriptor

Page 38: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(38)

Link Tag Impl.

Page 39: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(39)

Interactions

<form> and <field> Tags

Page 40: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(40)

Form & Fields

Page 41: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(41)

Rendering HTML Browser

Page 42: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(42)

Rendering WML Microbrowser

Page 43: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(43)

Tag Descriptor (Field)

Page 44: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(44)

Tag Descriptor (Form)

Page 45: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(45)

Field Tag Impl.

Call Parent Tag

Methods

Page 46: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(46)

Form Tag Impl.

Page 47: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(47)

Form Tag Impl.

Enumerate all fields

Page 48: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(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

Page 49: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(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

Page 50: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(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

Page 51: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(51)

Conclusion

JSP Tag Libraries Powerful mechanism to implement rich

functionality Promotes usability and maintainability

Application for a multi-modal Wireless Framework

Page 52: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(52)

References

Page 53: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(53)

References Servlets

Servlets Homepagehttp://www.javasoft.com/products/servlet

Java Tutorial (JavaSoft)http://www.javasoft.com/tutorial

Servlet Centralhttp://www.servletcentral.com

Servlets.comhttp://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

Page 54: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(54)

References Tag Libraries

Tag Libraries in JavaServer Pageshttp://java.sun.com/products/jsp/pdf/talks/TagLibs.pdf

Jakarta-Taglibs Tutorialhttp://jakarta.apache.org/taglibs/tutorial.html

JSR #000052http://java.sun.com/aboutJava/communityprocess/jsr/jsr_052_jsptaglib.html

Allaire JRun Tag Libraryhttp://www.allaire.com/handlers/index.cfm?ID=15990&Method=Full

Apache Jakarta Taglibshttp://jakarta.apache.org/taglibs

BEA Weblogic Portal Tag Libraryhttp://edocs.beasys.com/wlac/portals/docs/tagscontents.html

Orion Taglibs (EJB/Utility)http://www.orionserver.com/tags/

JSP Tag Libraries at Jspin.comhttp://www.jspin.com/home/tags

Page 55: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(55)

References Wireless

WAP Forumhttp://www.wapforum.org

HDML 3.0 Referencehttp://developer.phone.com/dev/ts/htmldoc/31h/hdmlref/output/

Page 56: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(56)

Questions/Suggestions?

?

Page 57: (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief Technology Evangelist SeraNova, Inc hitesh.seth@seranova.com

(57)

Thanks for your time