Java Beans and JSP CS422 Java Beans The
Java. Beans and JSP CS-422
Java. Beans • The Java component technology – originally intended for the creation and management of “pluggable” GUI components; Java’s answer to Visual Basic’s VBX/OCXs – becoming more popular for encapsulating business logic for server-side applications (especially Java Server Pages – many Java GUI Development tools have been modified to allow application development of server-side applications (Visual Café, Jbuilder, Visual. Age for Java) along with the development tools being delivered with application servers (Silver. Stream, BEA Weblogic) • A Java. Bean is nothing more than a class that maintains some state data (called properties) and follows a certain set of coding conventions. Along with certain Java runtime support (reflection and introspection) can Java. Beans can be easily added to and maintained by most of the Java GUI Development Tools.
API requires that: • Must implement java. io. Serializable or java. io. Externalizable – Beans must be able to support their own persistence • this allows the bean to be saved and restored consistently • provide a no-arguments constructor – provides a single way for the Bean to be instantiated – insures consistent bean creation and initialization • private properties must have corresponding get/set methods that follow the appropriate naming patterns – each piece of state data to be exposed is called a property – made public via accessor and mutators (setters and getters) • accessor methos names must start with “get” – for property int color the accessor would be getcolor() • mutator methods names must start with “set” – for property fuel. Capacity the mutator would be setfuel. Capacity()
Environmental Support • To use Java. Beans with JSP no environmental support is needed, but for a better understanding of Java. Beans in the whole we’ll take a look… – Introspection ( java. beans. Introspector) defines the resources that allow the programatic construction of information on the Bean • facilitates the discovery of properties and methods by inspecting the. class file • can be done two ways : the reflection APIs or by providing a java. beans. Bean. Info class with the bean to describe the public methods and properties, – Reflection (java. lang. reflect) a set of resources that allows a program to discover the public properties and methods of classes that have been loaded by the class loader • this is facilitated by the naming convention for accessors and mutators (i. e. the names must start with “get” or “set”) • don’t need to knownames of properties as long as we know the names of the accessor and mutators • These environmental support mechanisma allow the Java. Beans to be cleanly integrated into GUI based, Java Development tools like Visual. Cafe, Visual. Age and Jbuilder.
Example: a Stock bean import java. io. Serializable; public class Stock implements Serializable { Stock( ) { } // no argument constructor (just creates the object) private String name = null; private String ticker. Symbol = null; private double trading. Price = 0. 0; private double shares. Owned = 0. 0; public void set. Name(String n) { name = n; } public String get. Name( ) { return name; } public void set. Ticker. Symbol( String s ) { ticker. Symbol = s; } public String getticker. Symbol( ) { return ticker. Symbol; } public void settrading. Price( double d ) { trading. Price = d; } public double gettrading. Price( ) { return trading. Price; } public void setshares. Owned( double v ) { shares. Owned = v; } public double getshares. Owned( ) { return shares. Owned; } }
jsp: use. Bean Tag • jsp: use. Bean does the following: – If the object is found within the specified scope it is retrieved and assigned to the object – if not found it is instantiated – if newly instantiated it executes the code specified in the body ( one or more jsp: set. Property tags or a scriptlet) – if newly instantiated it is saved into the scope via set. Attribute( ) method • jsp: use. Bean also makes the bean visible to the JSP; there may be other objects in the context that were put there by other JSPs or servlets; jsp: use. Bean can make them visible to the current JSP
jsp: use. Bean Tag (more) • Attributes : • • • id scope class bean. Name type – <jsp: use. Bean id = today class = “java. util. Date”> • instantiates a bean called today of class java. util. Date( ) – <jsp: use. Bean id = “count” class = “java. lang. Integer” type = “java. lang. Number”> • essentially does : Number = count ; count = new Integer( ) – <jsp: use. Bean id = “count” class = “<%= request. get. Parameter(“bean. Name”)%> type = “Number” /> • essentiallt does: Number count; count = java. beans. Beans. instantiate(request. get. Parameter(“bean. Name”));
jsp: use. Bean Tag (more) • In general the syntax is: <jsp: use. Bean id = “name” {scope = “page | request | session | application”} { class = “class name” | class = “class name” type = “type name” | bean. Name = “bean name” type = “type name” | type = “type name” } />
- Slides: 8