People Import Package Use methods Create Instance"> People Import Package Use methods Create Instance">

Presentation is loading. Please wait.

Presentation is loading. Please wait.

Mark Dixon 1 12 – Java Beans. Mark Dixon 2 Session Aims & Objectives Aims –To cover the use of Java Beans Objectives, by end of this week’s sessions,

Similar presentations


Presentation on theme: "Mark Dixon 1 12 – Java Beans. Mark Dixon 2 Session Aims & Objectives Aims –To cover the use of Java Beans Objectives, by end of this week’s sessions,"— Presentation transcript:

1 Mark Dixon 1 12 – Java Beans

2 Mark Dixon 2 Session Aims & Objectives Aims –To cover the use of Java Beans Objectives, by end of this week’s sessions, you should be able to: –Create and use a Java Bean

3 Mark Dixon 3 PersonList.jsp Class complex Pages simpler <%! People p = new People(); %> <% String html = ""; p.Open (); p.Select ("SELECT * FROM Person;"); while( p.Next ()){ html += p.get ("Surname") + " "; } p.Close (); %> People Import Package Use methods Create Instance

4 Mark Dixon 4 PersonList.jsp (using Bean) Class complex Pages simpler <% String html = ""; p.Open (); p.Select ("SELECT * FROM Person;"); while( p.Next ()){ html += p.get ("Surname") + " "; } p.Close (); %> People Create Bean Use methods

5 Mark Dixon 5 JavaBean (Bean) = Java class instance JSP programming style strongly encourages JavaBeans use special tags built-in for JavaBean properties JSP + Bean combination –separates page html look from ‘logic’ –i.e. the presentation from the code JSP and JavaBeans

6 Mark Dixon 6 Java class meeting specific requirements: –Must have a zero-argument constructor: public MyBean() { … } –All properties private ( no public properties) –data accessed via access methods What is a JavaBean

7 Mark Dixon 7 BANK ACCOUNT BEAN 0 Parameter constructor Important Exception is for boolean attributes isXxxx() Beans MUST be in packages Get and set methods MUST conform to getXxxx() and setXxxx() Can have other methods but method names cannot look like property get / set

8 Mark Dixon 8 An attribute is a variable which belongs to an class/object –For objects also known as instance variables –For classes also known as class variables Remember final static int COLOUR_ONE Math.PI is a class variable A property is an attribute which has getter and setter methods –And that’s it ! REFINING THE TERMINOLOGY

9 Mark Dixon 9 Read-only properties: String getAccountID() returns the accountID property Read/write properties: void setBalance(double bal) double getBalance() Boolean properties: boolean isActive() void setActive(boolean act) JAVABEAN PROPERTIES

10 Mark Dixon 10 It is important to distinguish between a JavaBean as used in a: –GUI development tool This is a visual component –i.e. will subclass Panel, Button etc. Note there is a visual Bean design tool at: http://java.sun.com/products/javabeans/beanbuilder/index.js p –Server-Side application We are only dealing with the latter MORE THAN ONE BEAN

11 Mark Dixon 11 BEAN RELATED TAGS

12 Mark Dixon 12 BEANS WITH JSP A JSP file which makes use of the Class Bank –Note: file called Bank.jsp

13 Mark Dixon 13 CREATING AN OBJECT Creates a bean instance called ‘myAccount’ of type ‘BankAccount’ The id attribute is the name of the variable Similar to the following JSP code: Or Java: BankAccount myAccount = new BankAccount(); Note: use of package name Important This / is important

14 Mark Dixon 14 SETTING BEAN PROPERTIES 1 Sets the value of the myAccount property balance to 500 Basically the same operation as: Or in Java as: BankAccount myAccount = new BankAccount(); mybalance = myAccount.setBalance(500);

15 Mark Dixon 15 SETTING BEAN PROPERTIES 2 Also can have a dynamic property which uses an expression tag This example is just setting the balance to some random value between 0 and 100

16 Mark Dixon 16 SETTING BEAN PROPERTIES 3 Although this value is text converted automatically to correct type –In this case a double

17 Mark Dixon 17 READING BEAN PROPERTIES Inserts the value of myAccount property balance into the web page Basically the same as: Or in Java as: BankAccount myAccount = new BankAccount(); double mybalance; mybalance = myAccount.getBalance();

18 Mark Dixon 18 JSP BEANS - REVIEW This line creates an object called myAccount of class BankAccount This line sets the balance property to 500 This line gets the balance Note how the value is displayed on the html page

19 Mark Dixon 19 SETTING BEAN PROPERTIES FROM TEXT BOXES This the same as: String bal = request.getParamter(“openingbalance”); double tempBal = Double.parseDouble(bal); myaccount.setBalance(tempBal); Sets the property ‘balance’ to what ever was typed in the textbox..jsp Page.htmlPage

20 Mark Dixon 20 USING TEXTBOXES If the textbox name is the same name as the property Then we do not need a ‘param’

21 Mark Dixon 21 SETTING BEAN PROPERTIES … ‘WILDCARDS’ Using wildcards to set properties: Sets the value of all ‘somebean’ properties to JSP parameters with the same name  If the parameters do not exist, the value of the bean properties do not change

22 Mark Dixon 22 OpenAccount.html ‘WILDCARDS ’ EXAMPLE NewAccount.jsp

23 Mark Dixon 23 ‘WILDCARDS’ EXAMPLE

24 Mark Dixon 24 scope = “page” scope = “request” These beans will not last after the request is completed –The difference between these 2 scopes is very small –Beans such as this do not allow you to share data between servlets and JSPs scope = “application” scope = “session” These beans will last between requests, thus allowing sharing of data between requests –Again, the differences between these two requests are mostly cosmetic JAVABEAN SCOPE 1 The default scope

25 Mark Dixon 25 SESSION BEANS As Bank.jsp and Rent.jsp are scoped at session level, the object myAccount is not created in Rent.jsp File: Rent.jsp

26 Mark Dixon 26 SESSION BEANS File: Rent.jsp File: Bank.jsp The file Bank.jsp Creates the object myAccount, which is then used by Rent.jsp Essentially passing information between JSP pages

27 Mark Dixon 27 CONDITIONAL BEANS So far we have used the tag –jsp:useBean results in new bean being created only if no bean with same id and scope can be found –If a bean with same id and scope is found, then that bean is used. This means that any property we initially set will be again be set each time we visit the page This is ok when we visit the a page for the 1 st time as we want to set the properties of the bean which will be used across several pages. But what if we wanted to set initial bean properties for a bean which is shared by multiple pages. Since we don’t know which page will be accessed first, we don’t know which page should contain the initialization code.

28 Mark Dixon 28 EXAMPLE: Lets assume we have a ‘back’ link on the PayRent.jsp ??? Balance should be 350.00 

29 Mark Dixon 29 Problem is that when we return to the Bank.jsp page the setProperty sets the balance to 500 again

30 Mark Dixon 30 SOLUTION: CONDITIONAL BEAN The replaced by statements The statements (i.e. jsp:setProperty elements) are executed only if a new bean is created, not if an existing bean is found. This is subtle but the effects are profound Modified file: Bank.jsp

31 Mark Dixon 31 EXAMPLE: Now we have Balance is correct at 350.00

32 Mark Dixon 32 Apache – http server (html pages) Tomcat – runs JSP + Servlets –servlet container (interpreter/compiler) –Can run: Standalone –Handles simple page requests –Handles servlet requests Apache plugin –Apache handles HTML pages, CGI, PHP etc –Tomcat handles servlets Apache Tomcat

33 Mark Dixon 33 Tomcat: LocalHost

34 Mark Dixon 34 Tomcat Directory Structure

35 Mark Dixon 35 Tomcat Folder Structure Context root Starting html page Web application deployment descriptor (web.xml) Package name of the HelloServlet class The HelloServlet class Netbeans Will create this Structure …

36 Mark Dixon 36 fgfg Default location is in webapps Can have any number of webapplications in webapps But each need WEB-INF and web.xml Tomcat Folder Structure

37 Mark Dixon 37 Tomcat - NetBeans JRE_HOME = C:\Program Files\Java\jre6 –Control Panel –System –Advanced –Environment Variables C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.14\bin –startup.bat (run from command line) http://localhost:8080/

38 Mark Dixon 38 Hall, M. Servlets and Java Server Pages 2 nd Edition –Chapter 14: Using Beans with JSP Best coverage Armstrong, E. (2003) The J2EE 1.4 Tutorial –chapter 12: Pages 515 - 525 http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html 38 REFERENCES - READ AT LEAST ONE OF …


Download ppt "Mark Dixon 1 12 – Java Beans. Mark Dixon 2 Session Aims & Objectives Aims –To cover the use of Java Beans Objectives, by end of this week’s sessions,"

Similar presentations


Ads by Google