Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
© MIT 2000
Building Web Applications With Building Web Applications With WebjectsWebjects
Michael D. BarkerThe MIT Educational Media Creation
Center
November 2001
© MIT 2001
Key Parts of This PresentationKey Parts of This Presentation
n What's a Webject?n Graphic Views of the Servletsn Configuration Filesn Parameters
© MIT 2001
What's a What's a WebjectWebject??n Webject as one set of data (and a webjectlist as
a collection of webjects!)n A set of servlets, allowing handling of several
"standard" operations on data over the web by setting up the correct forms and configuration files. Notice that I did not say writing code –the servlets are deliberately designed to be generic, so that changes are made in the forms and configuration files, not the code.
n At this point in time, there are six webject servlets: Capture, Lister, Displayer, Revise, Deleter, and Publisher.
© MIT 2001
Key Parts of This PresentationKey Parts of This Presentation
n What's a Webject?n Graphic Views of the Servletsn Configuration Filesn Parameters
© MIT 2001
CaptureCapture
HTML Form
Capture Servlet Webject
List
Capture is used to collect information from a web form for ONE webject. Often, the web form is just a simple html page, with form action posting to capture.
© MIT 2001
ListerLister
HTML Form
Lister ServletWebject
List
Lister generates a web form displaying information from all the webjects in a list.
HTMX Template
© MIT 2001
DisplayerDisplayer
HTML Form
Displayer ServletWebject
List
Displayer generates a web form displaying information from a single webject.
HTMX Template
© MIT 2001
ReviseRevise
HTML Form
Revise Servlet Webject
List
Revise is used to collect information from a web form to make changes for ONE webject. Almost always the web form is generated by displayer.
© MIT 2001
DeleterDeleter
HTML Form
Deleter Servlet Webject
List
Deleter is used to remove one webject from the list. Often, it is invoked from a form generated by lister, although it is often useful to use displayer to generate a form showing the details of the webject being deleted to confirm that the correct object has been selected. (There is no undelete!)
© MIT 2001
PublisherPublisher
HTMLFile
Publisher ServletWebject
List
Publisher generates a file containing a web form displaying information from all the webjects in a list.
HTMX Template
© MIT 2001
Typical ApplicationTypical Application
(with apologies for torturing English)n Collect information (using Capture)n Display a list of results (using Lister)n With edit buttons (using Displayer) that
bring up forms whose submit changes the information (using Revise)
n And delete buttons (that bring up a form to confirm, then invoke Deleter)
© MIT 2001
Key Parts of This PresentationKey Parts of This Presentation
n What's a Webject?n Graphic Views of the Servletsn Configuration Filesn Parameters
© MIT 2001
Parameters, XML files, and Parameters, XML files, and suchsuch
n Every servlet has some parameters.n webject specification file n webject list file n Configuration in servlet zone properties
file (this will change with Tomcat!)n page templates (htmx templates)
© MIT 2001
Webject Webject Specification FileSpecification File<?xml version="1.0" encoding="UTF-8"?><defnspec docclass="edu.mit.emcc.webject.XMLObjectSpecFile" >
<parameter name="term" required="1" errorRequired="You must provide a term to be defined."
/>
<parameter name="definition" required="1"errorRequired="You must provide a definition for the term."
/>
<parameter name="SUBMIT" ignored="1"/><parameter name="Submit" ignored="1"/>
</defnspec>
Replace the parameter definitions with your data fields.
© MIT 2001
Possible AttributesPossible AttributesAmong the attributes that can be specified for a parameter are: n name="name" The name of the parameter. Required.n required="1" n errorRequired="message"n optional="1" (default)n ignored="1" (discard even if value present – good for discarding
submit)n multiple="1" May have multiple valuesn default="value"n equals="name" use value of namen defaultequals="name" use value of name as defaultn format="type" where type is one of name, extphone, phone, email,
state, zipcode, password
© MIT 2001
Webject Webject List FileList File
<?xml version="1.0" encoding="UTF-8"?><iplist type="iprange"specfile="../conf/iplistspec.xml" docclass="edu.mit.emcc.webject.WebjectList" webjectclass="edu.mit.emcc.webject.Webject"> <lastid>1</lastid></iplist>
© MIT 2001
Webject Webject List With Files FileList With Files File<?xml version="1.0" encoding="UTF-8"?><iplist type="iprange"specfile="../conf/iplistspec.xml" docclass="edu.mit.emcc.webject.WebjectList" webjectclass="edu.mit.emcc.webject.Webject"filestoredir="directory" (relative to the webject
file itself)filedirmaxsize="bytecount"fileurlprefix="url/prefix" > <lastid>1</lastid></iplist>
© MIT 2001
HTMX TemplatesHTMX Templatesn Normal HTML plus(Displayer and Lister)n <WEBJECTDATA name> : the value of name n <WEBJECTDATACHECK name>: CHECKED if
non-blank value n <WEBJECTDATASELECT name=value> :
SELECTED if valuen <WEBJECTDATAHTML name>: value escaped for
use in html form (e.g. " becomes ")(Lister only)n <WEBJECTLIST count>: number of items in listn <FRAGREPEAT WEBJECT>...</fragrepeat>: repeat
for all elements in list
© MIT 2001
HTMX TemplatesHTMX Templates
n <WEBJECTFILETYPE name> content-type of file
n <WEBJECTFILEURL name> URL for the file
n <WEBJECTFILETIMESTAMP name> last update time
© MIT 2001
Key Parts of This PresentationKey Parts of This Presentation
n What's a Webject?n Graphic Views of the Servletsn Configuration Filesn Parameters
© MIT 2001
Capture ParametersCapture ParametersMinimum:n servlet.AddTicket.code=edu.mit.emcc.webject.Capture
(alias)n servlet.AddTicket.initArgs=root=/development (root
directory to prepend to all other file names)n servlet.AddTicket.initArgs=capturepage=ListTickets or
servlet.Register.initArgs=capturepage=../lobby/register.html (html form, allows gets to servlet to redirect to form)
n servlet.AddTicket.initArgs=webjectlist=data/ccoach/accessinfo/tickets.xml (the webject list)
© MIT 2001
Capture ParametersCapture ParametersAdditional:n servlet. SomeName.initArgs=templatedir=<filename>
Directory where HTML templates are storedn servlet. SomeName.initArgs=successtemplate=<filename>
for successful submissions (default: capturesuccess.htmx)n servlet. SomeName.initArgs=errortemplate=<filename>
for validation errors (captureerror.htmx)n servlet.SomeName.initArgs=duplicatetemplate=<filename
> for duplicate keys (captureduplicate.htmx)n There is also a set of parameters to generate email – read
the code for details (list follows)
© MIT 2001
Capture Parameters (email)Capture Parameters (email)n servlet.SomeName.initArgs=mailserver=(address)n servlet.SomeName.initArgs=partialemailtemplate=(filename) n servlet.SomeName.initArgs=partialto=(address)n servlet.SomeName.initArgs=partialsubject=(subject)n servlet.SomeName.initArgs=partialfrom=(address)n servlet.SomeName.initArgs=completeemailtemplate=(filename) n servlet.SomeName.initArgs=completeto=(address)n servlet.SomeName.initArgs=completesubject=(subject)n servlet.SomeName.initArgs=completefrom=(address)
© MIT 2001
Capture Parameters (file Capture Parameters (file upload)upload)
n servlet.SomeName.initArgs=filetempdir=(directory)n servlet.SomeName.initArgs=filemaxpostsize=(int)Note: must be coordinated with change in webject list
file (see Webject List with Files)
© MIT 2001
Lister ParametersLister ParametersMinimaln servlet.SomeName.code=edu.mit.emcc.webject.Lister
(alias)n servlet. SomeName.initArgs=projectroot=<directory>
(root of files)n servlet. SomeName.initArgs=webjectlist=<filename>
(data list)n servlet. SomeName.initArgs=templatedir=<filename>
(where are the templates)
© MIT 2001
Lister ParametersLister ParametersOptionaln servlet. SomeName.initArgs=listtemplate=<filename>Defaults to listtemplate.htmxn servlet. SomeName.initArgs=mimetype=<mime-type>Defaults to text/htmln servlet. SomeName.initArgs=sortby=<fieldname>n servlet. SomeName.initArgs=sortmethod=<text|date>Defaults to textn servlet. SomeName.initArgs=daysback=<number>How many days back to include (defaults to all) Often
entered in url (servlet name?daysback=5 for example)
© MIT 2001
Lister Request ParametersLister Request Parametersn daysback=nn sortby=fieldnamen sortmethod=text|daten selectby=fieldnamen selectvalue=value
© MIT 2001
Publisher ParametersPublisher Parametersn All the Lister parameters plus:n servlet.Publisher.initArgs=success=[filename]
(relative to templatedir)n servlet.Publisher.initArgs=failure=[filename]
(relative to templatedir)n servlet.Publisher.initArgs=outfile=[filename]
(relative to projectroot)
© MIT 2001
Displayer ParametersDisplayer Parameters
Minimaln servlet.SomeName.code=edu.mit.emcc.webject.Displayer
(alias)n servlet.SomeName.initArgs=projectroot=<directory> (root
for files)n servlet.SomeName.initArgs=webjectlist=<filename> (data
list)n servlet.SomeName.initArgs=templatedir=<filename>
© MIT 2001
Displayer ParametersDisplayer ParametersOptionaln servlet.SomeName.initArgs=webjecttemplate=<filename>Defaults to webjecttemplate.htmxn servlet.SomeName.initArgs=notfoundtemplate=<filename>Defaults to notfoundtemplate.htmxn servlet.SomeName.initArgs=idsource=<param|auth|username>How to get id of webject. Defaults to parameter (ID=xxx).Also accepts auth (look up user in webject list) andusername (a username parameter will be supplied)
© MIT 2001
Revise ParametersRevise Parameters
Minimaln servlet.SomeName.code=edu.mit.emcc.webject.Revise
(alias)n servlet.SomeName.initArgs=projectroot=<directory>n servlet.SomeName.initArgs=editpage=<URL>n servlet.SomeName.initArgs=webjectlist=<filename>n servlet.SomeName.initArgs=templatedir=<filename>
© MIT 2001
Revise ParametersRevise Parameters
Optionaln servlet.SomeName.initArgs=successtemplate=<filename>Defaults to revisesucess.htmxn servlet.SomeName.initArgs=errortemplate=<filename>Defaults to reviseerror.htmx
© MIT 2001
DeleterDeleter ParametersParameters
Minimaln servlet.SomeName.code=edu.mit.emcc.webject.Deleter (alias)n servlet.SomeName.initArgs=projectroot=<directory>n servlet.SomeName.initArgs=webjectlist=<filename>n servlet.SomeName.initArgs=templatedir=<filename>
Runtimen SomeName?ID=xxxxx
OrSomeName?id=xxxxxx
© MIT 2001
DeleterDeleter ParametersParameters
Optionaln servlet.SomeName.initArgs=deletedtemplate=<filename>Defaults to deletedtemplate.htmx
© MIT 2001
Likely Future Additions to the Likely Future Additions to the Webject Webject LibraryLibrary
n "archive" – put a class of webjects into another file and remove from the "active" file
n Conversion to use mySQL, Oracle, or other database
n Multi-valued field displayn Faster listern Basic webject build tool
© MIT 2001
For Additional InformationFor Additional Information
n <https://web.mit.edu/emcc/Private/library/webjects.html> Brian Bermack's original documentation
© MIT 2001
You Can Reach Us...You Can Reach Us...
n Michael Barker– [email protected]– 617/253-0119
nEMCC website: http://web.mit.edu/emcc/