Transcript Lally Singh

WebObjects
Matt Aguirre
Lally Singh
What Is It?
A Java based development platform
specifically designed for database-backed web
applications.
What Does It Have?
 Scalability: built in load balancing among a
dynamically configurable set of servers
 Industry standards support: JSP/J2EE/JNDI support
built in
 Multiple client type support: Web Browser, Java
Client Application, XML, SMIL, WAP…
 Easy extensibility: add new web components for
immediate reuse.
Architectural Overview
Architecture In Depth
Web Components
 Three Parts:



HTML file
Bindings file
Java code
 Embeddable within themselves: follows the
Composite design pattern
 Embeddable within JSP pages
 Communicate to each other & Enterprise Objects
(EOs) through Key-Value coding
Example Web Component
 A simple form containing two items: a
textbox and a submit button
 User hits ‘Submit’ and the name is shown in
System.out.
 Not very useful
The HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META NAME="generator" CONTENT="WebObjects 5">
<TITLE>Untitled</TITLE>
</HEAD>
<BODY BGCOLOR=#FFFFFF>
<webobject name=Form1>Sample Form
<p>Name: <webobject name=TextField1></webobject></p>
<p><webobject name=SubmitButton1></webobject></p>
</webobject>
</BODY>
</HTML>
The Bindings
Form1: WOForm {
}
SubmitButton1: WOSubmitButton {
action = submit;
}
TextField1: WOTextField {
value = name;
}
The Java File
public class Main extends WOComponent {
protected String name;
public Main(WOContext context) {
super(context);
name = new String();
}
public WOComponent submit()
{
System.out.println("name="+name);
return null; // default - means we go back to same page
}
}
What Happens?
 When the page is requested, the value for name is taken
from the Component’s instance via Key-Value Coding
 The page is displayed to the user
 The user types in something into the textbox
 The user hits submit
 WO updates the value of name with what the user put in the
textbox
 WO then calls Main’s submit() method
 submit() prints out the string the user typed in
Key Value Coding
 A method to access data in classes without
relying on their interfaces
 Implemented through the KeyValueCoding
Java interface
 The default implementation scans through
reflection.

Ex: to set the key foo, the following will be
checked in order: 1. setFoo() 4. _isFoo
2. _setFoo()
5. foo
3. _foo
6. isFoo