Creating JavaServer Pages with FileMaker Pro 5 Unlimited and

24 downloads 757 Views 2MB Size Report
UltraDev supports the visual creation of JSP pages, it is now possible to harness the ... explain how to create JSP with UltraDev and FileMaker Pro 5 Unlimited.
Creating JavaServer Pages with FileMaker Pro 5 Unlimited and Macromedia Dreamweaver UltraDev 4

-August 2001-

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

Introduction A brief introduction to creating JavaServer Pages that access FileMaker® Pro 5 Unlimited databases with Macromedia Dreamweaver UltraDev, running under Macromedia JRun Server on Microsoft Windows NT and Windows 2000 Servers. JavaServer Pages™ (JSP™) is an ever increasingly popular technology for creating and deploying web based applications. FileMaker Pro users have long sought to broaden their reach when it comes to creating compelling web solutions.Two events have combined to make this goal a reality. Macromedia UltraDev 4 is easier to use than ever, and several of its new features and enhancements now allow it to interface smoothly with FileMaker Pro 5 Unlimited. Making this great combination possible in the first place is the new improved Java Database Connectivity driver (JDBC) from FileMaker, Inc.This new improved driver allows FileMaker Pro databases to be accessed from JavaServer Pages. JSP is a standard technology developed by Sun Microsystems, Inc. for creating dynamic web applications that access databases like FileMaker Pro. Because UltraDev supports the visual creation of JSP pages, it is now possible to harness the visual authoring power of UltraDev to create compelling web based interfaces for your FileMaker databases.

The first thing you must know is how all these pieces come together to create a working web application. The main components are a database (FileMaker Pro 5 Unlimited), a database driver (FileMaker JDBC driver), an application server (Macromedia JRun Server), a web server (Microsoft IIS), and a tool for creating JSP files (Macromedia Dreamweaver UltraDev). If you have used Macromedia Dreamweaver UltraDev this document may seem very familiar to you. The fine folks at Macromedia have given FileMaker, Inc. permission to use their tutorial and demonstration files in order to quickly and easily explain how to create JSP with UltraDev and FileMaker Pro 5 Unlimited. EXPECTATIONS A friend of mine in the consulting business is fond of saying that "Satisfaction equals Perception minus Expectation." In order for this tutorial to be successful, let's set some expectations from the start. This guide is: • A brief overview of how to create JavaServer Pages with UltraDev that contain dynamic data from FileMaker Pro 5 Unlimited.These JavaServer Pages will be executed by Macromedia JRun, running on Microsoft Windows NT or 2000 Server. • An explanation of some of the special considerations necessary when using JDBC and UltraDev with FileMaker Pro 5 Unlimited. It is NOT a: • Guide to writing JavaServer Pages. • Guide to troubleshooting Microsoft Window NT/2000 Server, JDBC connection parameters, or debugging JavaServer Pages. • Database design guide. • Collection of benchmarks on FileMaker Pro 5 Unlimited performance.

2

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

Overview This tutorial shows you how to build a simple Web application using Dreamweaver UltraDev. You'll create a Web-based employee directory that accesses a FileMaker Pro database served up by FileMaker Pro 5 Unlimited for a fictitious adventure travel company called Compass. The directory will give Compass employees the ability to search and get more information about their coworkers. Along the way, you will learn how to build the following pages: • Two sets of search/results pages-a simple one requiring no knowledge of SQL (Structured Query Language, a common database language), and a more advanced set requiring very little knowledge of SQL • A detail page to display the information about particular employees, including their photographs • An insert page allowing the site administrator to insert new employee records in the database with a Web browser. This tutorial also covers the following one-time-only tasks: • Defining a local site so you can develop the Web application on your local system • Defining a remote site so you can deploy the application on a Web server • Configuring UltraDev to work with your JRun server • Creating a database connection so you can interact with the tutorial database To complete this tutorial, you will need the following: Software • FileMaker Pro 5 Unlimited and FileMaker Pro Compass database tutorial file.The Compass tutorial database file (named "employees") is available at: http://www.filemaker.com/downloads/index.html • Macromedia Dreamweaver UltraDev 4 and the installed JSP Tutorial files • Macromedia JRun 3.1 or higher • Microsoft Windows NT or 2000 Server with Microsoft Internet Information Services • Sun Java 2 SDK, Standard Edition, for Windows, version 1.18 or above • FileMaker Pro JDBC driver version 1.2 driver.The FileMaker Pro JDBC driver is available at: http://www.filemaker.com/support/updaters.html#fmpdjdbc See Appendix H for locations of trial software downloads of each product. Hardware • Appropriate hardware for Windows NT or 2000 Server as Web and JRun server • Appropriate hardware for running FileMaker Pro 5 Unlimited • Development machine for running Macromedia UltraDev See the associated Appendices for hardware requirements. For the purposes of this tutorial, the Web Server / JRun Server machine must be a Windows NT or Windows 2000 machine. As additional testing is completed FileMaker, Inc. may publish information detailing a similar Mac OS server configuration. (JRun Server is compatible with many different web servers. For a complete list of supported servers, see Appendix G.)

3

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

Configuring your computers This diagram provides a simplified overview of the development and deployment system you will be using in this tutorial:

To configure your Web Server / Java Application Server machine: 1. Make sure Internet Information Services (IIS) is installed and running on your system. IIS is the full-featured version of PWS. It should already be installed on your system. If not, install it or ask your system administrator for help. Appendix C contains pointers to Microsoft documentation and support for IIS. 2. Make sure FTP services are installed along with the standard IIS HTTP services.The FTP root folder should be the same as your HTTP root folder (by default it is c:\Inetpub/wwwroot)

4

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

3. Install the following components on your the system: • Java 2 SDK, Standard Edition, for Windows • Macromedia JRun. See Appendix G for JRun configuration information 4. Create a subfolder in the c:\Inetpub\wwwroot folder and call it: MyTutorialSite 5. Here's the correct folder structure: c:\Inetpub\wwwroot\MyTutorialSite

Configuring FileMaker Pro 5 Unlimited 1. For best performance, FileMaker Pro 5 Unlimited should run on a separate machine than Microsoft Internet Information Services and Macromedia JRun. 2. Launch FileMaker Pro 5 Unlimited and choose Edit » Preferences » Application The Preferences dialog appears 3. Select the Plug-Ins tab 4. If it is not already checked, enable the Web Companion plug-in 5. Choose Configure The Web Companion Configuration dialog appears 6. Note the TCP/IP Port number.The tutorial will use a port number of 591. 7. Choose File » Open and open the "employees" database. If FileMaker Pro 5 Unlimited is running on a Microsoft Windows NT or 2000 machine, you will need to select "All Files (*.*)" from the Files of Type pop-up menu. When using the FileMaker JDBC driver with UltraDev, FileMaker database files may not have extensions.

Configuring UltraDev Define a local site A local site tells UltraDev where all the documents and files of a particular Web site are stored on your local disk.You must define a local site to develop a Web application using UltraDev. When you installed UltraDev, it automatically created a local site for you. To choose a local site, launch UltraDev, open the Site window Site» Site Files, and select the site from the pop-up menu on the toolbar: JSP tutorial site. If you need to restart the tutorial from scratch, clean copies of the tutorial files are available in the Tutorial folder in the Dreamweaver UltraDev application folder.The complete path to the Tutorial folder varies, depending on where you installed Dreamweaver UltraDev

5

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

Define the remote site folder in UltraDev In UltraDev, you define the tutorial's remote site folder by specifying the published folder you set up on the Web server, then uploading all the tutorial files to it. 1. Choose Site » Define Sites. A dialog box appears listing currently defined sites. 2. Select your tutorial site from the list and click Edit. 3. In the Category list on the left, click Remote Info. 4. Choose the following Access options: FTP. 5. Enter the host name of the FTP host (the server JRun is installed on), and enter the name of the host directory on the remote site (c:\inetpub\wwwroot\MyTutorialSite).The host directory is where documents visible to the public are stored. Next, enter the login name and password used to connect to the FTP server, and then select the appropriate firewall options. 6. Click OK and click Done. 7. In the Site window (Site » Site Files), verify that you've specified the correct folder on the remote site. If you're using FTP, click the Connect button to view the remote site. 8. Select all the files under Local Folder, including the Images folder, and click the blue up-arrow on the toolbar to upload them to the remote site.

Configure UltraDev to work with JRun Application Server You must specify the kind of application server you are using so UltraDev knows what server-side scripts to insert in your dynamic pages. You must also specify a URL prefix so UltraDev can borrow the services of the application server at design time. Among other things, UltraDev uses the application server at design time to power the Live Data window and to establish connections to databases.The Live Data window is a fully functional, visual design and editing environment that displays your page's dynamic content at design time.

6

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

Specify a URL prefix You must specify a URL prefix so UltraDev can borrow the services of your application server at design time. 1. Choose Site » Define Sites. A dialog box appears listing currently defined sites. 2. Select your tutorial site and click Edit.

3. In the Category list on the left, click Application Server. 4. Verify the URL prefix in the URL Prefix box. 5. UltraDev tries to determine your URL prefix based on the settings for your remote site. If the UltraDev guess is wrong, correct the URL prefix.The URL prefix is the URL users type into their browsers to open your Web application, minus the file name at the end. For example, if your tutorial's URL is: http://www.macromedia.com /MyTutorialSite/Search.htm Enter the following URL prefix: http://www.macromedia.com/MyTutorialSite/ 6. If UltraDev runs on the same system as your Web server, you can use the term "localhost" as a stand-in for your domain name. For example, if your application's local URL is http://buttercup_pc/MyTutorial/Search.htm, you can enter the following URL prefix: http://localhost/MyTutorial/ 7. Click OK, then click Done. Create a database connection A database connection is a set of parameters you define to establish a link to a database. Without it, your application won't know where to find the database or how to talk to it. In this part of the tutorial, you'll create a connection to the tutorial's FileMaker Pro database file, employees.

7

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

1. In the UltraDev Document window, choose Modify » Connections.

The Connections dialog box appears. 2. Click New and choose your driver from the pop-up menu. If your driver does not appear, choose Custom JDBC Connection. A connection dialog box appears. 3. In the Connection Name box, enter connCompass. A common practice is to add the prefix conn to connection names to distinguish them from other object names in your code. 4. Enter the JDBC driver's connection parameters. For the parameters specific to the FileMaker JDBC driver, see Appendix D. 5. URL: jdbc:fmpro:http://IP address of the JRun machine:Port number of JRun default server/ For example: jdbc:fmpro:http://17.184.22.6:591/properties?fetchsize=10 Here we are making use of the FileMaker JDBC driver property fetchsize. Since the results will be returned in small groups of records, specifying a smaller fetchsize will improve performance. 6. User Name: Enter appropriate user name according to your configuration. 7. Password: Enter appropriate password according to your configuration. 8. Specify how UltraDev should connect to the database at design time: select the Using Driver on Application Server option. 9. Click the Test button to verify that the connection can be created successfully. If not, retrace your steps above to ensure that the FileMaker JDBC driver is installed at the location listed above. 10. Click OK to close the connection dialog box. Your new connection, connCompass, appears in the Connections dialog box. 11. Click Done to close the Connections dialog box.

8

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

Create a simple search/results page set You're now ready to build the employee directory for the Compass intranet site. In this part of the tutorial, you'll create a simple search/results page set that lets Compass employees look up their coworkers online using a single search parameter. Building this simple page set requires almost no knowledge of SQL (Structured Query Language). The search and results pages have been laid out for you. Your job is to make them work together. Later, you'll extend the application with a detail page to display more information about each employee (including the employee's photo) and a page to insert new employee records in the database. Prepare the search page You need a search page to obtain search parameters from the user. A simple search page uses an HTML form to get a single search parameter and submit it to the results page on the server.This results page, not the search page, conducts the actual search and displays the results. In the HTML form, specify the results page that will use the search parameter collected in the form. 1. Make sure the Site window is open. Choose Window » Site Files to display the Site window. 2. Make sure your tutorial site is selected, and then double-click the Search.htm file under Local Folder. The simple search page for the Compass employee directory opens.This search page lets users conduct a search by department. 3. In the Document window, select the form by clicking the Department list/menu form object, then clicking the rightmost tag on the tag selector.

The form is selected. 4. Make sure the Property inspector is open. Choose Window » Properties to open the Property inspector. 5. In the Action box, click the folder icon and choose the file called Results. 6. In the Method pop-up menu on the Property inspector, choose GET. Choosing GET ensures that the search parameters are passed to the server in the URL string used to open the results page.You will learn more about using the URL to pass parameters later in this tutorial.

9

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

7. Rename the list/menu form object by clicking it then entering mnuDept in the List/Menu box on the Property inspector (Window » Properties). 8. Save your work (File » Save). That is all for the search page.You are ready to build the results page, which involves defining a recordset to hold the search results and displaying the search results on the page. Define a filtered recordset for the results page A recordset is a subset of data extracted from one or more tables in a database. It acts as a source of data for your dynamic pages.You will define a recordset that contains only the records returned by the search. For a simple search/results page set, you can create this kind of recordset by defining a filter. You will begin by defining the general outlines of the recordset. 1. In the Site window, (Window » Site Files) double-click the Results file under Local Folder. The simple results page for the Compass employee directory opens in UltraDev. 2. In the Data Bindings panel (Window » Data Bindings), click the Plus (+) button and select Recordset (Query) from the pop-up menu. The simple Recordset dialog box appears.

3. If the advanced Recordset dialog box appears instead, click Simple. 4. In the Name box, enter Results. 5. This is the name of your recordset. Do not confuse it with the file name of your page. In this case, they happen to be the same. 6. Select the connCompass connection from the Connection pop-up menu. 7. If it doesn't appear in the menu, click the Define button to create it. For instructions, see "Create a database connection" on page 50 of the Macromedia Dreamweaver UltraDev manual. 8. In the Table pop-up menu, select EMPLOYEES. 9. In the Columns area, click the Selected option to choose selected columns in the EMPLOYEES table. 10. Control-click (Windows) or Command-click (Mac OS) the following columns in the list to include them in the recordset: EMPLOYEEID, FIRSTNAME, LASTNAME, DEPARTMENT, and EXTENSION.

10

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

11. The results page displays information from four of these columns.You include the EMPLOYEEID column because it contains information identifying individual records-information that will become useful later when you build a detail page.You could also use the special FileMaker Pro pseudo column RecordID , see Appendix E for more details. 12. Click Test to test the recordset. A recordset appears containing data extracted from the database table. Click OK to close it.

By default, the recordset contains all the records in the database table. Leave the Recordset dialog box open for now.You'll use it next to create a filter to remove all the records that don't meet the search criteria. To create the recordset filter: 1. From the first pop-up menu in the Filter area, choose DEPARTMENT. You know the search parameter submitted by the search page is a department name.Therefore, you set up the filter so that it compares this name against each name in the DEPARTMENT column in the database table. If the filter finds a match, the record is included in the search results. 2. From the pop-up menu beside the first menu, select the equal sign (it should be the default). This choice states that you want only those records with DEPARTMENT column values that match exactly the department name submitted by the search page. 3. From the third pop-up menu, select URL Parameter (it should be the default). Earlier on your search page, you specified the GET method for the HTML form, ensuring that the search parameter is passed to the server in the URL string. he server reads the string and stores the search parameter in memory as a URL parameter. 4. In the fourth box, enter mnuDept, the name of the form object used to collect the search parameter on the search page. Here's how your Filter section should look:

5. Click OK. UltraDev adds the recordset to your list of available data sources in the Data Bindings panel.To view the fields you defined for the recordset, expand the recordset branch.

11

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

6. Save your work (File » Save). The next step is to display the results on the page. Add dynamic content to the results page After defining a filtered recordset, you can use its columns as sources of dynamic content for your page. For the results page, you'll use the following fields as data sources: FIRSTNAME, LASTNAME, DEPARTMENT, and EXTENSION. 1. Make sure the Data Bindings panel is open (Window » Data Bindings) and lists the Results recordset you just defined. Expand the recordset's branch to see the data sources you need-namely, FIRSTNAME,LASTNAME, DEPARTMENT, and EXTENSION. 2. If these columns don't appear in the list, click the Plus (+) button to define a new recordset 3. You will begin by adding the LASTNAME data source to the page. 4. On the page, double-click the word "LAST" to select it. 5. In the Data Bindings panel, select LASTNAME and click Insert, or drag LASTNAME onto the text you selected on the page. 6. A data placeholder replaces the text selection on the page and the necessary server-side scripts are added to the page's HTML source code. When the server runs the page, the placeholder will be replaced with live data from the recordset. 7. Repeat steps 2 and 3 to replace the word "First" with the FIRSTNAME data source, the word "dept" with the DEPARTMENT data source, and the word "Ext" with the EXTENSION data source. 8. Save your work (File » Save). 9. If you make a mistake, open the Server Behaviors panel (Window » Server Behaviors), select the dynamic content (one of the Dynamic Text items), and click the Minus (-) button to delete it. View your work in the Live Data window To display the page in the Live Data window, you must provide it with a URL parameter because the page is expecting one from a search page. For testing purposes, you can simulate a search query by choosing Live Data Settings from the View menu, clicking the URL Request Plus (+) button, and entering the following values: • Name: mnuDept • Value: Trip Staff

Click OK to close the Live Data Settings dialog box, then choose View » Live Data. The Live Data window shows the first record in the recordset. By default, a dynamic page displays only a single record. Naturally, you would like to show all the records found, not just one.

Add a repeated region to the results page A search often returns more than one record. In this part of the tutorial, you will give your page the ability to display more than one record by adding a repeated region to the page.You create a repeated region by applying the Repeat Region server behavior to a page element-in this case, a table row. When the results page runs on your server, the Repeat Region server behavior will repeat the table row to accommodate all the records in the Results recordset. Each row will display the content of one employee record.

12

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

1. Select the table row with the dynamic content by clicking anywhere in the row and clicking the rightmost tag in the tag selector. The table row is outlined. 2. In the Server Behaviors panel (Window » Server Behaviors), click the Plus (+) button and select Repeat Region. 3. In the Repeat Region dialog box, make sure the Results recordset is selected. 4. In the Show area, enter 5. 5. The page will only display five records at a time even if more than five records are found.The user will need to click the Next icon to see the other records. (You'll activate the Next icon later in the tutorial.) 6. Click OK. 7. View the page in the Live Data window. 8. If you're already working in the Live Data window, click the Refresh button (the circular arrow) on the toolbar. If you're working in the Document window, choose View » Live Data. 9. Where only one of the search results was displayed, now five records are displayed. 10. Save your work (File » Save). 11. If you make a mistake, open the Server Behaviors panel (Window » Server Behaviors) and double-click the repeat region in the list to edit it.

Activate the recordset navigation links The results page should allow users to move forward and backward through the results if the search returns more than five results. The tutorial page includes "Previous" and "Next" images for this purpose.Your job is to activate these images so that when a user clicks one, the page displays more results (if any more exist). 1. Select the "Previous" image on the page. 2. In the Server Behaviors panel, click the Plus (+) button and select Move to Record » Move to Previous Record. The Move to Previous Record dialog box appears. 3. In the Recordset pop-up menu, make sure the Results recordset is selected, and then click OK. 4. Repeat the procedure for the "Next" image, only this time select Move to Record » Move to Next Record from the pop-up menu. 5. Save your work (File » Save). If you make a mistake, select the server behavior in the Server Behaviors panel and click the Minus (-) button to delete it.

Add a record counter to the results page If your searches are likely to produce many results, you can add a record counter to your page to help users keep track of where they are in the recordset.You can create a record counter in a single operation using an UltraDev live object. 1. Place the insertion point in the row above the "Previous" and "Next" images. 2. Choose Insert » Live Objects » Recordset Navigation Status. 3. Make sure your Results recordset is selected.

13

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

4. Click OK. 5. Save your work (File » Save). UltraDev builds and adds the record counter to your page. Except for the dynamic content, the record counter is fully customizable.To view the completed results page in the Live Data window, click the Refresh button on the Live Data window's toolbar. If you're working in the Document window, choose View » Live Data. Note:The "Previous" and "Next" links do not work in the Live Data window.To test them, you must upload the page to your published directory on the server and open the page in a browser.

Create an advanced search/results page set In this part of the tutorial, you will create an advanced search/results page set that lets Compass employees look up their coworkers by using more than one search parameter. Building an advanced search/results page set in UltraDev requires some knowledge of SQL (Structured Query Language). The tutorial provides the SQL statement required to make the pages work. Prepare the advanced search page The advanced search page uses an HTML form to get multiple search parameters and submit them to the results page on the server.This results page, not the search page, conducts the actual search and displays the results. In the HTML form, specify the results page that will use the search parameters collected in the form. 1. Make sure the Site window is open. 2. Choose Window » Site Files to display the Site window. 3. Double-click the SearchAdv.htm file under Local Folder. The advanced search page for the Compass employee directory opens in UltraDev.This search page lets users conduct a search using the employee's last name, department, or both. 4. In the Document window, select the form by clicking the Department list / menu form object, then clicking the rightmost tag in the tag selector. 5. Make sure the Property inspector is open. 6. Choose Window » Properties to open the Property inspector.

14

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

7. In the Action box, click the folder icon and choose the ResultsAdv file. 8. In the Method pop-up menu, choose GET. Choosing GET ensures that the search parameters are sent to the server in the URL string used to open the results page. 9. Rename the form objects as follows: 10. Click the text field and enter txtLastName in the Text Field box on the Property inspector. 11. Click the list/menu object and enter mnuDept in the List/Menu box on the Property inspector. 12. Save your work (File » Save). That is all for the search page. Next you'll build a results page that can handle multiple search parameters.

Define a recordset for the advanced results page You will add a recordset to the results page that contains only the records returned by the search. For an advanced search/results page set, you create this kind of recordset by writing a SQL statement that uses the search parameters passed by the search page.The search parameters are stuffed in variables in the SQL statement, which is then used to generate the recordset. 1. In the Site window, double-click the ResultsAdv file under Local Folder. The advanced results page for the Compass employee directory opens in UltraDev. 2. In the Data Bindings panel (Window » Data Bindings), click the Plus (+) button and select Recordset (Query) from the pop-up menu. 3. The simple Recordset dialog box appears. Click the Advanced button to switch to the advanced Recordset dialog box. 4. In the Name box, enter Results. 5. In the Connection pop-up menu, select connCompass. 6. If it does not appear in the list, click the Define button to create it. For instructions, see "Create a database connection" on page 50. 7. In the Database Items area at the bottom of the dialog box, expand the Table branch, and then expand the EMPLOYEES branch. 8. Next, you will build the Select clause. 9. Select EMPLOYEEID in the Database Items area and click the Select button. 10. Select FIRSTNAME and click the Select button. 11. Select LASTNAME and click the Select button. 12. Select DEPARTMENT and click the Select button. 13. Select EXTENSION and click the Select button. 14. In the SQL text area, enter the following line below FROM EMPLOYEES WHERE LASTNAME LIKE 'varLastName' AND DEPARTMENT LIKE 'varDept' The full statement in the SQL text area should look as follows: SELECT EMPLOYEEID, LASTNAME, FIRSTNAME,DEPARTMENT, EXTENSION FROM EMPLOYEES WHERE LASTNAME LIKE 'varLastName' AND DEPARTMENT LIKE 'varDept' 15

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

15. "Stuff " the two SQL variables, varLastName and varDept, with the values of the search parameters passed by the search page by clicking the Plus (+) button in the Variables area and entering the following information. Name

Default

Run-time Value

varLastName

%

request.getParameter("txtLastName")

varDept

%

request.getParameter("mnuDept")

The default value is the value the variable should take if no run-time value is returned.The run-time value is usually a server object holding a value sent by the search page. 16. If you are satisfied with the recordset, click OK. UltraDev adds the recordset to your list of available data sources in the Data Bindings panel. When the SQL query runs on the server, each record in the database table is checked. If the specified field in a record meets the Where condition, the record is included in the recordset.The query in effect builds a recordset containing only the search results.

Display the results on the page After defining the recordset, you can use its columns as sources of dynamic content for your page.The procedure for adding the data to the page is identical to the procedure for the simple result page. To view your work in the Live Data window, you must provide the page with some test parameters to simulate the URL parameters submitted by your search page. Provide those test parameters by choosing View » Live Data Settings and entering the following values: Click OK to close the dialog box, and then choose View » Live Data. Give your page the ability to display more than one record by creating a repeated region on the page and activating the "Next" and "Previous" recordset navigation images.The steps are the same as for the simple results page. Finally, add a record counter to help users keep track of where they are in the recordset.

Create a detail page By now, you should have created at least one results page that can list employees. In this part of the tutorial, you will create a detail page that displays more information about each employee listed on the results page.The detail page will even display a photograph of the employee. Here is how this "master/detail" set of pages should work: A user viewing the list of employees on the results (master) page should be able to see more details about any listed employee by clicking a link specific to that employee. The link opens a detail page showing more details about the selected employee. By making the detail page dynamic, you do not have to create a separate detail page for each employee.You create one detail page with content that changes at run time depending on the link the user clicks on the results page. The first step in setting up this master/detail page set is to add a link on the results page to open the detail page.

16

Name

Value

txtLastName

Nicholas

mnuDept

Trip Staff

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

Add a link on the results page Clicking an employee link on your results page should open a detail page displaying more information about the employee. However, using a standard link to open the detail page won't work: to retrieve the correct record, the detail page needs to know what employee the user selected on the results page. In other words, the results page must pass information to the detail page. Use the following steps to add a link that passes information from the results page to the detail page. Perform this procedure for both versions of your results pages (the files called Results and ResultsAdv). 1. Make sure your results page is open in UltraDev. 2. On the results page, click the "View" image to select it. 3. If you are working in the Live Data window and it displays multiple records, select the first "View" image in the column. 4. In the Server Behaviors panel (Window » Server Behaviors), click the Plus (+) button and select Go to Detail Page from the pop-up menu. The Go to Detail Page dialog box appears. 5. In the Detail Page box, click Browse and select the file called Detail (the pre-designed detail page), then click OK. 6. In the Pass URL Parameter box, enter a parameter called id and make sure the parameter is set to the value of the EMPLOYEEID column in the Results recordset. 7. You're telling the page to pass a parameter called id to the detail page. 8. The parameter identifies the employee selected by the user.The server will set the parameter's value to the value specified in the Recordset and Column pop-up menus. 9. Click OK and save your work (File » Save). When the user clicks the linked "View" image on the results page, not only will the detail page open, but information identifying the record the user chose will be passed to the detail page so it can display the correct employee details. You are finished with the results page. Now you need a detail page that can display detailed information about employees selected on the results page.

Define a recordset for the detail page You will define a recordset for the detail page to hold the detailed employee information. Begin by opening the pre-designed detail page. 1. In the Site window, double-click the Detail file under Local Folder. The Compass detail page opens in UltraDev. 2. In the Data Bindings panel (Window » Data Bindings), click the Plus (+) button and select Recordset (Query) from the pop-up menu. 3. The simple Recordset dialog box appears. If the advanced Recordset dialog box appears instead, click Simple. 4. In the Name box, enter Details. 5. In the Connection pop-up menu, choose connCompass. 6. In the Table pop-up menu, select EMPLOYEES. 7. In the Columns area, make sure the All option is selected.

17

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

8. For this page, you want to retrieve data in all the columns in the table. 9. Click Test to test the recordset. 10. A recordset appears containing data extracted from the database table. Click OK to close it. 11. Click OK and save your work (File » Save). Add dynamic content to the detail page After defining the recordset, you can use its columns as sources of dynamic content for the detail page. 1. Make sure the Data Bindings panel is open (Window » Data Bindings) and lists the Details recordset you just defined. Expand the recordset's branch to see the data sources you need. 2. On the detail page, double-click the text string LastName (in the blue table row) to select it. 3. In the Data Bindings panel, select the LASTNAME field and drag it onto the selected string on the page. 4. Repeat steps 2 and 3 (select text on page, then drag the corresponding data source to it) for the other text strings on the page, as follows: • Drag FIRSTNAME to FirstName • Drag PHONE to number • Drag STARTDATE to date • Drag DEPARTMENT to dept • Drag EXTENSION to ext • Drag EMAIL to email • Drag NOTES to notes Next, you will bind the source attribute of the image on the page to display employees' photographs. The source attribute consists of a text string such as jones_lyn.jpg stored in the database. 1. Open the Property inspector (Window » Properties). 2. Click the image on the page, and then click the small folder icon beside the Src box on the Property inspector. 3. The Select Image Source dialog box appears. 4. Select the Data Sources option. 5. A list of data sources appears. 6. Select PHOTO from the list. 7. In the URL box, type images/ at the start of the line of code. 8. The employees database contains the file names of the images, not the folder where they are stored on your site. The code in the URL box will retrieve the correct file name from the database and insert it in the image's source attribute. 9. Typing images/ in the URL box adds the correct path to the attribute. 10. Click OK to close the dialog box. 11. Save your work (File » Save). Choose View » Live Data to display the dynamic content.The Live Data window displays the details of the first employee in the recordset. If you make a mistake, open the Server Behaviors panel (Window » Server Behaviors), select the dynamic content, and click the Minus (-) button.

18

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

Enable the page to find and display an employee When the detail page opens in a browser, it should display detail information about an employee selected by the user on the results page. (You worked on the results pages earlier in this tutorial). To make the page work this way, you use the Move to Specific Record server behavior, which finds and displays the employee the user selected on the results page. 1. In the Server Behaviors panel (Window » Server Behaviors), click the Plus (+) button and select Move to Record » Move to Specific Record. The Move to Specific Record dialog box appears. 2. In the Move to Record In pop-up menu, make sure the Details recordset is selected. 3. In the Where Column pop-up menu, make sure the EMPLOYEEID column is selected. 4. The previous page you worked on passed the ID number (id=EMPLOYEEID) of an employee record to the detail page. By specifying the EMPLOYEEID column, you tell the detail page to look in the EMPLOYEEID column of the current recordset to find an ID number matching the one sent by the results page. When the behavior's server-side script finds a match, it displays the corresponding employee record. 5. Click OK. If you make a mistake, open the Server Behaviors panel (Window » ServerBehaviors), and double-click the server behavior to edit it.

Create an insert page The final page you will create for the Compass employee directory is a page that lets the site administrator insert new employee records in the database with a Web browser. An insert page consists of two building blocks: • An HTML form that lets users enter data • An Insert Record server behavior that takes the data entered in the form and updates the database The HTML form has already been created for you.You will add the server behavior to update the database table. The EMPLOYEEID field (column) in the compass FileMaker Pro database has been set as an auto-increment field so that each successive employee will receive a new unique ID. 1. In the Site window, double-click the file called Insert under Local Folder. The insert page for the Compass employee directory opens in UltraDev. 2. In the Server Behaviors panel (Window » Server Behaviors), click the Plus (+) button and choose Insert Record from the pop-up menu. The Insert Record dialog box appears.

19

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

3. In the Connection pop-up menu, choose connCompass. 4. In the Insert Into Table pop-up menu, choose EMPLOYEES. 5. In the "After Inserting, Go To" box, click Browse and select the InsertOK file. 6. This page will open after the record is successfully inserted into the table. 7. In the Get Values From pop-up menu, make sure fmAdd is selected. fmAdd is the name of HTML form on the page. 8. Specify what each object on your form will update in the database table by selecting the first form element in the Form Elements list (txtImageURL) and selecting the corresponding item in the Column pop-up menu (PHOTO). Repeat this step for the other form elements, as follows: • txtLastName updates the LASTNAME column • txtFirstName updates the FIRSTNAME column • txtPhone updates the PHONE column • txtDate updates the STARTDATE column • txtDept updates the DEPARTMENT column • txtExt updates the EXTENSION column • txtEmail updates the EMAIL column • txtNotes updates the NOTES column 9. Click OK. With the insert page completed, the employee directory for the Compass intranet site is done. In the Site window, select all the pages, and then click the blue up-arrow on the toolbar to upload them to your published directory on the server. Launch your browser and open the Search.htm page.

APPENDIX A Installing FileMaker Pro 5 Unlimited Before you begin the installation process, exit other open programs and save your work, and turn off virus protection utilities. To install FileMaker Pro 5 Unlimited in Windows NT, you must log on with Administrator privileges. Windows 2000 Professional users must log on with Administrator or Power User privileges. If FileMaker Pro 5 Unlimited is already installed, you can install FileMaker Pro 5 Unlimited without uninstalling FileMaker Pro 5 Unlimited. You can use either version of FileMaker Pro 5 Unlimited on the same computer. However, if you later choose to uninstall FileMaker Pro 5 Unlimited, your FileMaker Pro 5 Unlimited preferences will be reset to the default values.You will need to restore your preference settings in FileMaker Pro 5. For instructions on installing FileMaker Unlimited using the DOS command line, see the Windows help or visit the Microsoft web site at www.microsoft.com. You must use the installation program to install FileMaker Pro 5 Unlimited -you cannot install FileMaker Pro 5 Unlimited by dragging files to your hard disk. For late-breaking information about FileMaker Pro 5 Unlimited, browse the contents of the CD and view the Readme file or visit www.filemaker.com. To install FileMaker Pro 5 Unlimited on your hard disk: 1. Insert the CD into your CD or DVD drive.

20

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

2. Click Install FileMaker Pro 5 Unlimited. 3. When you see the FileMaker Pro 5 Unlimited Welcome panel, click Next. 4. In the License Agreement panel, read the Software License Agreement. If you accept the terms of the license agreement, click I accept..., then click Next. 5. In the Customer Information panel, type your name and your organization's name. If you don't have an organization name, you can put other information (like your address) in the box or leave it blank. Choose whether to allow all users to access this application or only the named user. 6. Click Next. 7. In the Destination Folder panel, choose the folder where you want to install FileMaker Pro 5 Unlimited. By default, FileMaker Pro 5 Unlimited will be installed in the C:\Program Files\FileMaker\FileMaker Pro 5 Unlimited folder. If you want to install FileMaker Unlimited in another folder or on another drive, click the Change button and navigate to the folder where you want to install FileMaker Pro Unlimited. If the selected disk doesn't have enough space for the files you select, or is write-protected, you can leave the installer and delete existing files to make more room on the disk. If the disk is locked, or isn't a hard disk, you can choose another drive. 8. Click Next. 9. In the Setup Type panel, choose whether to install all program features (Complete), or to install only selected portions of the program (Custom). For example, you may choose not to install the tutorial, in order to save disk space. Click the Space button to see how much disk space you have available and how much disk space is required to install FileMaker Pro 5 Unlimited. 10. Click Next. 11. If you chose a Complete installation, go to Step 14. 12. If you chose a Custom installation, you see the Custom Setup panel. By default, all of the FileMaker Pro 5 Unlimited features are selected to be installed.To change the installation of any feature, click on its icon and choose an installation option. 13. Note:The option "This feature will be installed when required" means that the necessary files are copied to your hard drive, but are not installed until needed. 14. When you have selected the custom installation options for all the features you want to install, click Next. 15. In the Network Protocol panel, choose the network protocol you want to use for sharing databases.The default protocol is TCP/IP.You can change the network protocol later without reinstalling the program. If you are not certain which protocol to use, see your network administrator. 16. Click Next. 17. In the Application Shortcuts panel, choose whether to place shortcuts on the Desktop and in the Quick Launch toolbar and/or Start Menu. Shortcuts provide a quick and convenient way to launch the application. Shortcuts can be added or removed after program installation. 18. Click Next. 19. In the Installation Code panel, type the 17-digit installation code that came with the product. 20. Click Next to go to the Installation panel, or click Back to review or change any of your installation settings, such as the destination folder, user name, or setup type. 21. Click Install to begin the installation. 22. During the installation process, you will see a progress panel. 23. When the installation is complete, click Finish.

21

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

24. If you chose to add shortcuts, a shortcut icon is placed on your desktop, in the Start menu, and in the Quick Launch toolbar.

APPENDIX B Installing Macromedia Dreamweaver UltraDev 4 The following hardware and software is required to run Dreamweaver UltraDev. For Microsoft Windows: • An Intel Pentium processor or equivalent, 166 MHz or faster, running Windows 95, Windows 98, Windows Me, Windows NT 4.0 with Service Pack 5, or Windows 2000. • 64 MB of random-access memory (RAM) plus 170 MB of available disk space. • Macromedia Flash Player to view the Guided Tours and Lessons. A Flash Player installer file is located on the CD, or you can download it from the Macromedia Web site at: http://www.macromedia.com/software/flashplayer/downloads/ For the Mac OS: • A Power Macintosh running Mac OS 8.6 or 9.x. • 64 MB of random-access memory (RAM) plus 130 MB of available disk space. • Macromedia Flash Player to view the Guided Tours and Lessons. A Flash Player installer file is located on the CD, or you can download it from the Macromedia Web site at: http://www.macromedia.com/software/flashplayer/downloads/ Follow these steps to install Dreamweaver UltraDev on your computer. To install Dreamweaver UltraDev: 1. Insert the Dreamweaver UltraDev CD into the computer's CD-ROM drive. 2. Choose from the following options: 3. In Windows, choose Start > Run. Click Browse and locate the UltraDev installer file on the CD. Click OK in the Run dialog box to begin the installation. 4. In Mac OS, double-click the Dreamweaver UltraDev Installer icon. 5. Follow the onscreen instructions. 6. If prompted, restart your computer.

APPENDIX C Installing Microsoft Internet Information Services Internet Information Services 5.0 is installed on Windows 2000 Server by default. You can remove IIS or select additional components by using the Add/Remove Programs application in Control Panel. Click Start, point to Settings, click Control Panel and start the Add/Remove Programs application. Select Configure Windows, click the Components button, and then follow the on-screen instructions to install, remove, or add components to IIS.

22

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

You can start Windows Internet Information Services by clicking Start, pointing to Settings, and clicking Control Panel. Doubleclick Administrative Tools and then double-click Computer Management. Expand the Server Applications and Services node in the console tree of the Microsoft Management Console (MMC) and select Internet Information Services. For more information on installing and administering Microsoft Internet Information Services, refer to your system documentation, your local administrator, or the following URLs: http://localhost/iisHelp/iis/misc/default.asp http://www.microsoft.com/windows2000/technologies/web/default.asp http://www.microsoft.com/windows2000/en/server/help/iint1.htm

APPENDIX D

Using the FileMaker JDBC Driver The information in Appendices D & E is drawn from the FileMaker Developer 5 documentation and is presented here to aid in your JSP development efforts.You can use the FileMaker JDBC Driver with any Java compiler or RAD tool to connect with your database while you build the code for your Java application or applet. After the Java application or applet has been created, the FileMaker JDBC Driver must be present with the files or included within the code in order for the application or applet to communicate with the database. To use the FileMaker JDBC Driver, your Java application or applet must register the driver with the JDBC driver manager and

23

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

you must specify the correct JDBC URL from within the application or applet. You need the JDBC URL to make the connection to the database.

About the FileMaker JDBC Drivers The FileMaker JDBC Driver is a JDBC 1.2 API compatible driver designed to work with the Java Development Kit (JDK) 1.1.8. It is a Type 4 driver - a native protocol, pure Java driver that converts JDBC calls directly into the network protocol used by the database management system. This type of driver offers all the advantages of Java including automatic installation (for example, downloading the JDBC driver with an applet that uses it). The driver will work with JDK 1.1.8 and Java 2 (e.g. JDK 1.2, 1.3, etc.) as long as you only use JDBC 1.2 calls in a Java 2 environment. Note: Although the driver implements the entire JDBC 1.2 API, it cannot be classified as a true JDBC-compliant driver because it supports only a subset of SQL that matches the capabilities of FileMaker Pro 5 Unlimited, and is therefore not fully SQL92 Entry Level compliant. The FileMaker JDBC Driver is packaged as a Java archive file (with the .jar filename extension) containing a collection of class files.The archive file is named Fmpjdbc12.jar. The driver class and main entry point for the driver is named: com.fmi.jdbc.JdbcDriver

Using a JDBC URL to connect to your database

In Java, most resources are accessed through URLs (Uniform Resource Locators). A JDBC URL is used to identify the database so the FileMaker JDBC Driver can recognize and establish a connection with the database. The JDBC URL consists of three main parts separated by colons: jdbc::

The first part in the JDBC URL is always the JDBC protocol ("jdbc"). The subprotocol is the driver name or the name of the mechanism that supports multiple drivers. In this case, the subprotocol is fmpro, which is registered with Sun Microsystems, Inc.The subname is the IP address of the machine that is hosting FileMaker Pro. The FileMaker JDBC Driver connects to FileMaker Pro through an HTTP connection.The subname in the JDBC URL includes an HTTP protocol (such as HTTP or HTTPS), an IP address or domain name, and an optional port number preceded by a colon. jdbc:fmpro:http://1.184.21.234:80/

Specifying driver properties in the URL subname

You can specify the escape, fetchsize, user, and password driver properties in the subname of the JDBC URL. This is useful when you're using a RAD tool that doesn't support spaces, periods, or other non-letter characters. jdbc:fmpro:http://17.184.21.234/properties?escape=%20.&fetchsize=100&user=fred&pa ssword=test

24

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

Property Description

escape A string containing the characters to be escaped in table name, field name, and layout name SQL identifiers. The driver will escape all identifiers returned via any method in the DatabaseMetaData class. This will allow RAD tools that don't support spaces and periods in SQL identifiers to work with any FileMaker Pro databases. The driver will automatically escape all identifiers for you. See "Using a character escape" on page 8-7 for more information. fetchsize This property allows you to set the number of records that are retrieved by the driver at any one given time.This is important for result sets (such as a result set of 20000 records) that are too large to retrieve all at once without causing memory constraints and performance problems. user The user name for the connection password The password for the connection

APPENDIX E SQL supported by the FileMaker JDBC Driver The FileMaker JDBC Driver provides support for certain SQL statements, a RecordID pseudo column, a ModID pseudo column, DbOpen and DbClose pseudo procedures, character escaping, and FileMaker data type mapping to JDBC SQL and Java data types.The following is a list of the SQL statements and definitions that are supported by the FileMaker JDBC Driver.

SQL statement Definitions SELECT statement SELECT { { * | field_name .,.. } [ , RECORDID [ , MODID ] ] } FROM database_name [ LAYOUT layout_name ] [ WHERE { predicate [ { { AND | OR } predicate } ... ] } ] [ ORDER BY { field_name [ASC | DESC] } .,.. ] Where predicate equals { field_name { = | | > | >= | < | | >= | < | | >= | < | employees$2Efp5 last name => last$20name SELECT last$20name FROM employees$2Efp5 FileMaker data type mapping to JDBC SQL and Java data types The FileMaker JDBC Driver uses the following mappings when converting FileMaker Pro data types to JDBC SQL types or to Java data types. (For information about these types, see the JDK 1.3.x documentation web pages at www.javasoft.com.)

28

This FileMaker Pro data type

Converts to this JDBC SQL type

TEXT

java.sql.Types.LONGVARCHAR

NUMBER

java.sql.Types.DOUBLE

DATE

java.sql.Types.DATE

TIME

java.sql.Types.TIME

CONTAINER

java.sql.Types.LONGVARBINARY

Repeating and related fields

com.fmi.jdbc.Array

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

FileMaker Pro support for Unicode characters FileMaker Pro only supports the Windows Latin 1 and Macintosh character sets, which are a subset of Unicode. Therefore, any character data submitted to FileMaker Pro that contains characters not present in these character sets (such as certain math symbols) will not be stored properly in your database. FileMaker Pro inserts a question mark (?) for any character that it does not recognize.

APPENDIX F Special Considerations As you prepare a FileMaker database solution for deployment as a web application with Macromedia UltraDev and JRun, you should keep in mind a few "best practices". Following this list of guidelines will ease your development and implementation efforts dramatically: • Build your databases without the ".FP5" extension. If you do not remove the extension, UltraDev and FileMaker Pro 5 Unlimited will not properly communicate. An easy way to accommodate this under Microsoft Windows based FileMaker Unlimited installations is with a "launcher" FileMaker database that has the extension, which loads the actual database files upon opening.The FileMaker tutorial files include such a database, cleverly named "launcher.fp5". • Do not use spaces or special characters in field (column) names. Although the FileMaker JDBC driver supports such naming techniques, your SQL statements will be cleaner and integrating your solution with other data sources will be much easier.

APPENDIX G Configuring Macromedia JRun JRun Server System Requirements • 32 MB RAM (128 recommended) • 20 MB hard disk space (50 recommended) • Java Runtime Environment (JRE) 1.1 (version 1.2.2 or later required for EJB, JTA, and JMS) • Netscape Communicator 4.0 or Microsoft Internet Explorer 4.0 (or higher) for administration

Supported Operating Systems • Windows 95/98/NT/2000 • Solaris 2.6, 7, 8 • Red Hat Linux 6.0, 6.1

29

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

• HP-UX 11.0 • IBM AIX 4.2, 4.3 • SGI IRIX 6.5 • Compaq Tru64 UNIX 4.0

Supported Web Servers • Apache • Microsoft IIS • Microsoft Personal Web Server • Netscape Enterprise Server • Netscape FastTrack Server • Netscape iPlanet • O'Reilly WebSite Pro • Zeus Web Server 1. Install JRun according to the documentation. 2. Copy the FileMaker JDBC driver to the lib directory of the JRun installation. The default location is: C:\Program Files\Allaire\JRun\servers\lib\ 3. Log into the JRun server and configure it for FileMaker Pro Unlmited JDBC access 4. The default administration login for JRun is available at this URL:

30

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

http://server IP address:8000/ The image below show the administration login screen. 5. After successfully logging in the main administration screen for JRun appears.

6. Configure the FileMaker JDBC driver 7. Click the [+] symbol next to the JRun Default Server to expose its administration options. 8. Click on JDBC Data Sources to display the configured JDBC drivers. 9. Click Add to configure the FileMaker JDBC driver.

31

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

10. Enter a name for the data source (fmitest in this image). 11. Enter com.fmi.jdbc.JdbcDriver in the Driver text box. 12. Enter the URL to the FileMaker Pro 5 Unlimited machine In this example: jdbc:fmpro:http://17.184.22.6:591/properties?fetchsize=10 Where 17.184.22.6 represents the IP address of your FileMaker Pro 5 Unlimited machine. Note that these entries are case sensitive.

13. Click update to save your new data source. The JDBC data sources screen will appear again, containing the new data source. 14. Click test.

32

FILEMAKER PRO 5 UNLIMITED AND MACROMEDIA ULTRADEV

Appendix H Resources

Site

URL

FileMaker, Inc.

http://www.filemaker.com

FileMaker, Inc. FileMaker Pro Unlimited

http://www.filemaker.com/products/fmu_home.html

FileMaker, Inc. Solution Alliance

http://www.filemaker.com/developers/index.html

Macromedia

http://www.macromedia.com

Macromedia Dreamweaver UltraDev

http://www.macromedia.com/software/ultradev/

Macromedia Dreamweaver UltraDev Exchange

http://www.macromedia.com/exchange/ultradev/

Macromedia JRun

http://www.allaire.com/products/JRun/

Microsoft Corporation

http://www.microsoft.com

Microsoft Internet Information Services

http://www.microsoft.com/windows2000/en/server/help/iint1.htm

Microsoft Windows 2000

http://www.microsoft.com/windows2000/technologies/web/

Sun Microsystems, Inc. JavaServer Pages

http://java.sun.com/products/jsp/

Sun Microsystems, Inc.

http://www.sun.com

Sun Microsystems, Inc. Java JDK

http://java.sun.com/j2se/

Sun Microsystems, Inc., Java

http://java.sun.com/

© 2000-2001 Macromedia, Inc. All rights reserved. Dreamweaver, Macromedia, Macromedia Dreamweaver UltraDev, and Macromedia JRun are registered trademarks or trademarks of Macromedia, Inc., and may be registered in the U.S. and other countries. Some portions of the text are reprinted by permission from FileMaker, Inc. FileMaker is a trademark of Apple Computer, Inc., registered in the U.S. and other countries FileMaker is a trademark of FileMaker, Inc., registered in the U.S. and other countries and the file folder logo is a trademark of FileMaker, Inc. All other trademarks are the property of their respective owners.

33