(1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief...

Post on 27-Mar-2015

223 views 5 download

Tags:

Transcript of (1) JSP Tag Libraries based Framework for Wireless Application Development Hitesh Kr. Seth Chief...

(1)

JSP Tag Libraries based Framework for Wireless Application

Development

Hitesh Kr. SethChief Technology EvangelistSeraNova, Inchitesh.seth@seranova.comO’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 WorldTag

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

(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

(55)

References Wireless

WAP Forumhttp://www.wapforum.org

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

(56)

Questions/Suggestions?

?

(57)

Thanks for your time