<%@ page contentType="text/html; charset=gb2312"%> oracleweb应用开发之apache架设与pl/sql页面设计(3)
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
oracleweb应用开发之apache架设与pl/sql页面设计(3)
     发布者: 发布时间:2006-05-07

3.编写psp网页,文件名为show.psp。

程序说明:第1行标识出该页为pl/sql语言文件。第2行指出即将为该页面生成的pl/sql过程名,最后pl/sql页面将要调用数据库中的该过程来显示数据,如果省略该行则以文件名作为缺省的过程名。第3行为即将生成的过程的输入或输出参数,以<%@ %>标记说明,default="1001"说明该参数为可选参数,注意,即使是数值数据类型,也要用双引号括起。第4至11行为该psp网页的全局参数,同时也是过程show的局部参数,以<%! %>标记表示。接下来以全局参数调用已经存储在数据库中的过程show_student,程序代码前后分别被置以<%和%>标记。当然也可将第二步中的过程show_student的编码直接写入以<%和%>标记括起的程序中,但是为了实现代码与内容的分离,尽量不要把它们混在一起。这样做的好处是分离业务逻辑与表示层,使得程序结构清晰,因为可能还有其它psp页面调用该存储过程。在页面显示部分对全局参数的调用格式为标记<%= %>,这也是输出标记,该标记可以实现字符串的连接和变量的计算,如通过psp_id的加减1达到翻页目的。在链接标记<a href="show?id=<%=psp_id-1%>">中,注意show为已经存储的过程,用"show?id="的格式调用过程并输入参数。

<%@ show language="pl/sql"%><%@ plsql procedure="show" %><%@ plsql parameter="id" type="number" default="1001"%><%! psp_id        student.id%type:=id;%><%! psp_name      student.name%type;%><%! psp_dob       student.dob%type;%><%! psp_gender    student.gender%type;%><%! psp_classyr   student.classyr%type;%><%! psp_major     student.major%type;%><%! psp_email     student.email%type;%><%! psp_photo     student.photo%type;%><%show_student(   p_id         => psp_id,   p_name       => psp_name,   p_dob        => psp_dob,   p_gender     => psp_gender,   p_classyr    => psp_classyr,   p_major      => psp_major,   p_email      => psp_email,   p_photo      => psp_photo);%><html><head><title>学生信息</title><meta http-equiv="content-type" content="text/html; charset=gb2312"></head><body bgcolor="#999900" text="#ffffff" link="#3366ff"><table width="80%" border="0" cellspacing="2" cellpadding="2" align="center" height="400">  <tr>     <td colspan="3" height="72">       <div align="center"><font size="+3"><b>学生信息</b></font></div>    </td>  </tr>  <tr>     <td width="40%" height="195" rowspan="8"><img src="admin_/images/<%=psp_photo%>" width="172" height="191" align="middle"></td>    <td colspan="2" height="30">编号为<%=psp_id%>的学生的资料如下:</td>  </tr>  <tr>    <td colspan="2" height="30">编号:<%=psp_id%></td>  </tr>  <tr>    <td colspan="2" height="30">姓名:<%=psp_name%></td>  </tr>  <tr>    <td colspan="2" height="30">出生日期:<%=psp_dob%></td>  </tr>  <tr>    <td colspan="2" height="30">性别:<%=psp_gender%></td>  </tr>  <tr>    <td colspan="2" height="30">年级:<%=psp_classyr%></td>  </tr>  <tr>    <td colspan="2" height="30">主修课程:<%=psp_major%></td>  </tr>  <tr>    <td colspan="2" height="30">电子邮件:<%=psp_email%></td>  </tr>  <tr>     <td width="40%" height="74">       <div align="center"></div>    </td>    <td width="46%" height="74">       <div align="center"><a href="show?id=<%=psp_id-1%>">上一页</a>   <a href="show?id=<%=psp_id+1%>">下一页</a></div>    </td>    <td height="74" width="14%">       <div align="center"></div>    </td>  </tr></table></body></html>


4.使用oracle命令行程序

使用oracle命令程序$oracle_home\bin\loadpsp.exe将第3步编写的psp页面(show.psp)载入数据库的cf/cf模式下。loadpsp.exe程序的所有选项格式如下:

l:\oracle\ora90\bin\loadpsp.exeusage: loadpsp [-replace] -user <logon> [<page1><page2> ...]       where <logon> ::= <username>/<password>[@<connect_string>]


本例中使用如下命令:

l:\oracle\ora90\bin\loadpsp -replace -user cf/cf show.psp"show.psp":procedure "show" created.


5.载入show.psp页面后,在数据库的cf/cf模式下生成存储过程show(该过程名由网页show.psp中的<%@ plsql procedure="show" %>程序决定),过程中已经加入htp进程包来调用参数。

procedure show (id in number default 1001) as  psp_id        student.id%type:=id; psp_name      student.name%type; psp_dob       student.dob%type; psp_gender    student.gender%type; psp_classyr   student.classyr%type; psp_major     student.major%type; psp_email     student.email%type; psp_photo     student.photo%type; begin null;htp.prn('''');htp.prn('''');htp.prn('''');htp.prn('''');htp.prn('''');htp.prn('''');htp.prn('''');htp.prn('''');htp.prn('''');htp.prn('''');htp.prn('''');show_student(   p_id         => psp_id,   p_name       => psp_name,   p_dob        => psp_dob,   p_gender     => psp_gender,   p_classyr    => psp_classyr,   p_major      => psp_major,   p_email      => psp_email,   p_photo      => psp_photo);htp.prn(''<html><head><title>学生信息</title><meta http-equiv="content-type" content="text/html; charset=gb2312"></head><body bgcolor="#999900" text="#ffffff" link="#3366ff"><table width="80%" border="0" cellspacing="2" cellpadding="2" align="center" height="400">  <tr>     <td colspan="3" height="72">       <div align="center"><font size="+3"><b>学生信息</b></font></div>    </td>  </tr>  <tr>     <td width="40%" height="195" rowspan="8"><img src="admin_/images/'');htp.prn(psp_photo);htp.prn(''" width="172" height="191" align="middle"></td>    <td colspan="2" height="30">编号为'');htp.prn(psp_id);htp.prn(''的学生的资料如下:</td>  </tr>  <tr>    <td colspan="2" height="30">编号:'');htp.prn(psp_id);htp.prn(''</td>  </tr>  <tr>    <td colspan="2" height="30">姓名:'');htp.prn(psp_name);htp.prn(''</td>  </tr>  <tr>    <td colspan="2" height="30">出生日期:'');htp.prn(psp_dob);htp.prn(''</td>  </tr>  <tr>    <td colspan="2" height="30">性别:'');htp.prn(psp_gender);htp.prn(''</td>  </tr>  <tr>    <td colspan="2" height="30">年级:'');htp.prn(psp_classyr);htp.prn(''</td>  </tr>  <tr>    <td colspan="2" height="30">主修课程:'');htp.prn(psp_major);htp.prn(''</td>  </tr>  <tr>    <td colspan="2" height="30">电子邮件:'');htp.prn(psp_email);htp.prn(''</td>  </tr>  <tr>     <td width="40%" height="74">       <div align="center"></div>    </td>    <td width="46%" height="74">       <div align="center"><a href="show?id='');htp.prn(psp_id-1);htp.prn(''">上一页</a>   <a href="show?id='');htp.prn(psp_id+1);htp.prn(''">下一页</a></div>    </td>    <td height="74" width="14%">       <div align="center"></div>    </td>  </tr></table></body></html>''); end;


6.浏览网址:http://localhost/pls/simpledad/show,即可看到如图1所示的页面,可点击"上一页"或"下一页"浏览相临记录。

(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
oraclee-business套件rra/fndfs泄露任意文件漏洞的修补
如何学习oracle?
oraclenetserviceslink查询请求缓冲区溢出漏洞的修补
oraclerman/tivoli-tdp/下数据恢复到节点
tsmserver,client,tdpo安装配置手记(1)
tsmserver,client,tdpo安装配置手记(2)
 
最近评论:
        
冰封的往事!
wow power leveling,wow gold,wow power leveling,wow gold max(261)
        
冰封的往事!
wow power leveling,wow gold,WoW Gold,wow gold max(6807)
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号