Presentation is loading. Please wait.

Presentation is loading. Please wait.

Web Programming with PL/SQL Erdogan Dogdu Georgia State University Computer Science Department

Similar presentations


Presentation on theme: "Web Programming with PL/SQL Erdogan Dogdu Georgia State University Computer Science Department"— Presentation transcript:

1 Web Programming with PL/SQL Erdogan Dogdu Georgia State University Computer Science Department edogdu@cs.gsu.edu http://db.gsu.edu/~edogdu

2 CSC8711 Content Oracle Architecture for Web Apps Oracle mod_plsql Apache module HTTP A Simple PL/SQL Web Toolkit Example PL/SQL Web Toolkit Parameter Passing HTML Forms PL/SQL Server Pages

3 CSC8711 Oracle Web Extensions 3-tier: client, application server (OAS 9i), database (Oracle 9i) mod_plsql in OAS PL/SQL Web Toolkit

4 CSC8711 Web Request Processing 1. The Oracle HTTP Server receives a PL/SQL Server Page request from a client browser. 2. The Oracle HTTP Server routes the request to mod_plsql. 3. The request is forwarded by mod_plsql to the Oracle Database. By using the configuration information stored in your DAD, mod_plsql connects to the database.

5 CSC8711 Web Request Processing (cont.) 4. Mod_plsql prepares the call parameters, and invokes the PL/SQL procedure in the application. 5. The PL/SQL procedure generates an HTML page using data and the PL/SQL Web Toolkit accessed from the database. 6. The response is returned to mod_plsql. 7. The Oracle HTTP Server sends the response to the client browser.

6 CSC8711 Invoking mod_plsql protocol://hostname[:port]/DAD location/[[!][schema.][package.]proc_ name[?query_string]] Example: –http://db.gsu.edu:7777/pls/csc8711/simple

7 CSC8711 HTTP GET, POST, HEAD methods GET. Parameters in query string. http://host:port/pls/DAD/foo?a=v&b=1 POST. For large parameter data. –http://host:port/pls/DAD/foo, POST data="a=v&b=1“ HEAD. No content data is streamed back. Only a confirmation.

8 CSC8711 A Simple Example Write a PL/SQL procedure (simple.sql) using PL/SQL Web Toolkit: CREATE OR REPLACE PROCEDURE simple AS l_user varchar2(30); BEGIN select USER into l_user from dual; htp.htmlOpen; htp.headOpen; htp.title('A Very Very Simple Example'); htp.headClose; htp.bodyOpen; htp.line; htp.header(1,'Simple Example'); htp.line; htp.paragraph; …

9 CSC8711 A Simple Example (cont.) … htp.print('Today''s date is: ' || to_char(sysdate, 'DD/MM/YYYY')); htp.br; htp.print('Today''s day is: ' || to_char(sysdate, 'DAY')); htp.paragraph; htp.print('Ordinary tags can be used in the strings that we send.'); htp.print('Your Oracle USERID is ' || l_user); htp.line; htp.address('Raj Sunderraman'); -- owa_util.signature('orarbkx.simple'); htp.bodyClose; htp.htmlClose; EXCEPTION When others Then htp.print(SQLERRM); htp.bodyClose; htp.htmlClose; END; / show errors

10 CSC8711 A Simple Example (cont.) Upload the procedure ‘simple’ to the database: > sqlplus SQL> @simple.sql Procedure created. No errors. Run procedure: http://db.gsu.edu:7777/pls/csc8711/simple

11 CSC8711 Web Toolkit Oracle Web Toolkit includes a number of packages: htp and htf package: hypertext procedures and functions, owa_cookie: to handle HTTP cookies, owa_util: utility subprograms, etc.

12 CSC8711 htp package Example: create or replace procedure hello AS BEGIN htp.htmlopen; -- generates htp.headopen; -- generates htp.title('Hello'); -- generates Hello htp.headclose; -- generates htp.bodyopen; -- generates htp.header(1, 'Hello'); -- generates Hello htp.bodyclose; -- generates htp.htmlclose; -- generates END;

13 CSC8711 htp and htf package More htp functions: –Comment: htp.comment –Applet: htp.appletopen, … –List: htp.olistOpen, htp.ulinstOpen, … –Form: htp.formOpen, … –Table: htp.tableOpen, htp.tableData, … –Image: htp.img, etc. –Formatting: htp.print, htp.bold, htp.underline, … –Frame: htp.frame, …

14 CSC8711 owa_util owa_util.tablePrint create or replace procedure showemps is ignore_more boolean; begin ignore_more := owa_util.tablePrint('emp', 'BORDER', OWA_UTIL.PRE_ TABLE); end; This procedure gives the output (next slide)

15 CSC8711 owa_util ----------------------------------------------------------------- | EMPNO |ENAME |JOB |MGR |HIREDATE | SAL | COMM | DEPTNO | ----------------------------------------------------------------- | 7369| SMITH | CLERK | 7902 | 17-DEC-80 | 800 | | 20 | | 7499| ALLEN | SALESMAN| 7698 | 20-FEB-81 | 1600 | 300 | 30 | | 7521| WARD | SALESMAN| 7698 | 22-FEB-81 | 1250 | 500 | 30 | | 7566| JONES | MANAGER | 7839 | 02-APR-81 | 2975 | | 20 | | 7654| MARTIN | SALESMAN| 7698 | 28-SEP-81 | 1250 | 1400| 30 | | 7698| BLAKE | MANAGER | 7839 | 01-MAY-81 | 2850 | | 30 | | 7900| JAMES | CLERK | 7698 | 03-DEC-81 | 950 | | 30 | | 7902| FORD | ANALYST | 7566 | 03-DEC-81 | 3000 | | 20 | | 7934| MILLER | CLERK | 7782 | 23-JAN-82 | 1300 | | 10 | -----------------------------------------------------------------

16 CSC8711 Passing Parameters GET method http://db:7777/pls/csc8711/pl1?str=Hello&num=4 create or replace procedure pl1(str in varchar2, num in number) as begin for i in 1..num loop htp.print(i || '. ' || str); htp.br; end loop; end; 1. Hello 2. Hello 3. Hello 4. Hello

17 CSC8711 HTML Forms htp.formOpen(curl in varchar2, cmethod in varchar2 default ‘POST’, ctarget in varchar2, cenctype in varchar2 default null, cattributes in varchar2 default null);

18 CSC8711 HTML Forms htp.formSubmit(cname in varchar2 default null, cvalue in varchar2 default ‘Submit’, cattributes in varchar2 default null)

19 CSC8711 HTML Forms HTML forms can have the following elements: –Single line input text (htp.formText) –Single line input password (htp.formPassword) –Checkboxes (htp.formCheckbox) –Radio buttons (htp.formRadio) –Submit buttons (htp.formSubmit) –Text areas (htp.formTextarea) –Selects (htp.formSelectOpen, htp.formSelectOption, htp.formSelectClose)

20 CSC8711 HTML Forms Useful functions: owa_util.get_owa_service_path: Returns the prefix of the URL pointing to PL/SQL procedure Example: http://db.gsu.edu:7777/pls/survey/login Use in PL/SQL web program as: htp.formOpen(owa_util.get_owa_service_ path || ‘start_session’);

21 CSC8711 Disadvantages of Web Toolkit PL/SQL Web Toolkit (htp, htf) generates HTML code form PL/SQL programs. Generating nice web pages is difficult, you cannot author PL/SQL programs in Frontpage. Solution is PSP (next)

22 CSC8711 PL/SQL Server Pages (PSP) Author web pages using script-friendly HTML authoring tools. Drop in PL/SQL code in web pages. In short: –Web Toolkit: generate HTML from PL/SQL –PSP: embedded PL/SQL within HTML

23 CSC8711 PL/SQL Server Pages (PSP) Same script tag syntax as JSP, also similar to ASP PSP files should have.psp extension Can be as simple as an HTML page (no PL/SQL script) Specifying the scripting language

24 CSC8711 PL/SQL Server Pages (PSP) Parameter passing Returned document type Such as text/xml, text/plain, image/jpeg Stored procedure name

25 CSC8711 PL/SQL Server Pages (PSP) Loading psp document to Oracle loadpsp [ -replace ] -user username/password[@connect_string] [ include_file_name... ] [ error_file_name ] psp_file_name...


Download ppt "Web Programming with PL/SQL Erdogan Dogdu Georgia State University Computer Science Department"

Similar presentations


Ads by Google