你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 跟高手学编程
1.4 Delphi+IntraWeb开发平台(下)
 

 


 

定一些附加参数,如是否自动创建包括数据模块的User Session单元,如果是ISAPI类型的应用,是否使用ISAPI线程池,以及窗口类型等。IntraWeb会根据你的选择自动创建相应的程序单元和引用代码单元。这时一个IntraWeb应用框架已经搭建好,剩下的就是设计Web应用了。下面先向大家介绍以下不同应用程序类型及其选项参数。

1)应用程序开发类型

应用程序类型:在IntraWeb New Item上,Application Type 选项有5个可选项。

  StandAlone Application——独立程序模式:含义是采用此类型开发的Web应用程序最终是一个独立的EXE程序,如果服务端打开这个程序,客户端就能访问这个程序。

  Service  Apllication——服务器程序模式:含义是采用此类型开发的Web应用程序要生成一个系统服务,这样每次开机时服务器会自动启动,而不需要每次手动运行这个程序。

  ISAPI Extension——ISAPI 扩展模式:含义是要生成一个ISAPI 类型的DLL应用程序,需要将它发布到服务器端的IIS管理界面里,客户端才能正常地访问它。目前比较成熟的Web开发技术是CGI,编写这类程序可以用C语言,或者VB以及其他语言。标准的CGI是基于UNIX操作系统,也可以用在WindowsWindows NTWindows 2000系统以上。CGI虽然是一种比较成熟的Web服务器应用程序,但它有严重的缺点限制了它的应用,因为它是EXE文件,这就意味着每当前台浏览器发送请求执行CGI程序时,它将在服务器占用一个进程,当请求比较多时,将会严重影响服务器的运行效率。为了解决上述问题可以采用Web服务器提供给开发人员的程序接口,比较多的是微软提出的ISAPI,或者NetScape公司提出的NSAPI,对于微软的操作系统来说使用ISAPI是一个合理的选择。ISAPICGI最大的区别在于ISAPI使用动态链接库代替了CGIEXE文件,而DLLWeb服务器共享单一内存空间,比可执行文件消耗较少的内存资源,相对减少了Web服务器的负担,当多个用户请求时服务器将自动产生多个线程,这些线程共享一个进程,与CGI为每个用户产生一个进程相比执行效率将提高许多,生成ISAPIDLL文件发布时需要借助于IIS管理器。关于如何发布DLL文件将在后一步Web程序发布中作相关介绍。

  Apache1.x Share Module——表示要使生成的文件支持Apache1.0环境的共享模式。

  Apache2.x Share Module——表示要使生成的文件支持Apache2.0环境的共享模式。

程序选项:

  Pool Data Connections——表示创建的程序是否与随之的数据模块DataModule1相连接。用户管理动态数据接口

  Create User Session——该选项是默认选项,表示在创建程序的同时可以创建一个用户Session,实际上创建了一个数据模块,并且不要时可以编辑这个模块,所以一般在创建程序中去掉这个选项。

  Main Form——下列按钮中有Standard4.0PDA3.2WAP三个选项,其中Standard4.0表示程序支持HTML4.0标准,一般用于PC机用户。PDA32表示程序支持HTML3.2标准,可以支持PDA的设备。无线应用协议WAP是一个开放的全球标准,可以是移动电话或其他无线终端的用户,可以快速安全获得服务信息。

2)页面生成向导

IntraWeb在创建Web应用程序框架的同时,自动创建了一个主页面IWForm1,如果还需要添加更多的页面窗口,可以使用New Form Wizard对话框来创建相应的页面,对话框如图8所示。


 

 

8 页面类型选择对话框

 

对话框中的五个选项都是为Web应用创建页面的。

Page模式的开发需要IntraWebWebSnap或者WebBroker协作,IntraWeb仅仅提供输出页面,而框架、管理模式等均由WebSnapWebBroker承担,开发出的程序类型有WebSnapWebBroker决定。所以,Page模式的开发仅需要利用IntraWeb创建页面。

值得注意的是,在窗口中上述所有IW组件和Delphi中的非可视组件,但Delphi中的可视组件是不能在IntraWeb中使用的。

3)框架生成向导

最后有必要提及以下IntraWeb 页面选项中New Frame Wizard,双击页面中的New Frame图标,即出现如图9所示的对话框。


 

9 IntraWeb Frame 设计向导

 

在选择Frame类型的对话框中,HTML4.0选项表示该框架须在HTML4.0以上版本中运行该应用程序,就像上述环境设置中所提到的浏览器必须支持HTML4.0是一个道理,IntraWebFrame类型窗体,在功能上与DelphiFrame是一样的,可以在其上放置IntraWeb的菜单、标签、按钮等控件,以提高代码页面的重用性,减少冗余度。

2.页面模式

页面开发模式是传统的利用Delphi开发InternetWebSnap程序的方法,由Web Broker或者WebSnap提供应用对象,而IntraWeb用来开发页面。显然,应用可以在商用服务器上发布。页面模式要比应用模式灵活得多。如果用户使用过诸如 Web BrokerWebSnap技术,页面模式实质上与习惯的Web开发模式相同。

通过使用Web BrokerWebSnap页面生成器组件,就可以得到页面模式。作为一种底层接口,IntraWeb的页面模式用于创建独立的交互页面是非常理想的。因此,用于创建高度交互式和复杂的报表、表单、图像等等,页面模式是更为理想的选择。

使用页面模式,IntraWeb不再是框架。相反,IntraWeb组件成为一种在DelphiIDE模式中可以使用的附加组件。页面模式可以与Web BrokerWenSnap和其他技术完全集成。如果用户已经使用Web BrokerWebSnap开发过Web应用,那么,当使用IntraWeb页面模式时,就会感到得心应手。

总之,两种模式各有优缺点,Application模式快速简便,而页面模式应用方法,灵活性更强一点,Application模式开放方向就是Web应用,Application模式内建Internet服务器,服务端不需要其他Web应用服务器就能很好地工作,所开发的程序作为NT的一个服务在Server上启动,客户端在浏览器中像使用一个普通应用程序一样来完成数据库的操作、表单提交、查询等工作,应当说IntraWeb这种开发模式在Web应用程序方面完成了独创性工作。

 

六、网站登录页面

 

为了让读者对IntraWeb设计的应用程序有一个初步印象,先创建第一个Web应用,就是整个网站在线教育的网站入口,在页面上有常规登录页面的基本元素,如标签、输入框、按钮。登录时分学生登录和教师登录两种方式。用户在选择不同的登录类型后,接着输入用户名和密码,应用程序会依据这个请求与后台数据进行验证,通过验证后进入下一个页面,反之发出出错信息,提醒用户输入有误。为了美化登录界面,还可以放置一个TIWIamge控件。

1.工程文件创建

选择FileNewOther菜单命令,然后打开IntraWeb选项卡,创建一个StandAlone Application类型的应用。此时IntraWebWeb应用程序创建一个普通类型Delphi程序框架,添加一些将使用的文件单元,打开了一个空的IWForm窗口。有了这个窗口,就可以在上面放置所需的组件,并将工程文件以Anyweb.dpr存盘。

2.页面布局

从设计目的出发,在所形成的IWForm窗体上,从IWStandard组件板上加入1IWTIamge控件、1IWRadioGroup控件、3IWLabel控件、2IWEdit控件和IWButton控件。并调整至合适的位置和大小,设置好相应的属性,如图10所示。主要控件及属性设置见表5所列。

 


10 登录界面及控件布置

 

表5 登录窗口控件及属性设置

编号

控件类型

控件名称

属性项

属性设置(值)

1

TIWForm

F_IWLogin

Title

在线教育登录窗口…

2

TIWIamge

IWIamge1

Picture

Title.bmp

TIWIamge

IWIamge1

Picture

Key.bmp

3

TIWRadioGroup

IWRadioGroup1

Items

教师登录|学生登录

4

 

TIWLabel

IWLabel1

Caption

用户名

IWLabel2

Caption

密码

IWLabel3

Caption

欢迎您登录本网站...

5

 

TIWEdit

iweName

Text

空白

iwePassword

Text

空白

PasswordPrompt

True

6

TIWButton

IWButton1

Capion

登录

IWButton1

Capion

用户注册

7

TAdoConnection

 

ADOConLogin

LoginPrompt

False

ADOConLogin

ConnectionString

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Hmydatabase.mdb;Persist Security Info=False

8

TAdotable

AdotblLogin

Connection

ADOConLogin

AdotblLogin

Tablename

Users

 

3.代码编写

在这个登录界面中因为数据库和其他任务还没有完成,真正需要编写代码和事件不多,主要是两个按钮的功能,一个是“登录”按钮,事件的功能主要有两方面,一方面从数据库中读取用户名和用户密码信息,与用户在页面输入的信息进行比对,验证通过后进入网站主页;另一方面可以依据登录用户类型(学生或教师)身份的不同打开主页的不同使用权限;再一个是“用户注册”按钮,其事件的功能通过实现与今后设计的用户注册模块相联系,实现网站新用户动态注册。这里仅列出登录按钮编写的按钮事件处理程序:

procedure TF_IWLogin.IWButton1Click(Sender: TObject);

begin

if length(iweName.Text)<=0 then

      WebApplication.ShowMessage('用户名不能为空!', smAlert);  //弹出提醒窗口

  case IWRadioGroup1.ItemIndex of

    0: //教师登录

    begin

    AdotblLogin.filter:='登录身份='''+'教师'+'''';  //按教师身份筛选

    AdotblLogin.open;

    AdotblLogin.Locate('用户名',iweName.Text,[loPartialKey]);

    if iwePassword.Text = AdotblLogin['登录密码'] then

    begin

     //TF_IWMain.Create(WebApplication).Show;//登录主页面

end 

else WebApplication.ShowMessage('不能登录...', smAlert);

    AdotblLogin.Close;

    end;

    1: //学生登录

    begin

AdotblLogin.filter:='登录身份='''+'学生'+'''';   //按学生身份筛选

AdotblLogin.Filtered :=true;

    AdotblLogin.open;

    AdotblLogin.Locate('用户名',iweName.Text,[loPartialKey]);

    if iwePassword.Text = AdotblLogin['登录密码'] then

    begin

     //TF_IWMain.Create(WebApplication).Show;//登录主页面

end 

else WebApplication.ShowMessage('不能登录...', smAlert); //弹出警示窗口

    AdotblLogin.Close;

    end;

  end;

end;

至于登录按钮和注册按钮等代码的编写和运行效果的实现,将在随后的讲座中逐一涉及。

4.程序运行与效果测试

上述工作完成了,保存工程文件,接下来就可以编译和运行该网站程序了。按F9,出现IntraWeb默认的Web服务器调试窗口,如图11所示。

 

 


 

11  IntraWeb默认的服务器调试窗口

 

单击工具栏上的第一按钮,启动浏览器,这时在IE窗口中就会将我们的所设计的Web页面的设计效果显示出来。 在文本框中输入用户或登录密码,单击登录按钮,执行的效果如图12所示。 


 

12 运行期间在浏览器中的结果

 

显然,运行结果正是我们想要的效果,达到了设计目的。操作到这里,我们只是使用了一些标准的Delphi语言的代码而没有写任何的HTML代码。创建的第一页面过程和效果就是要告诉您,使用IntraWeb创建Web应用,完成动态网站任务就是那么简单和快捷,而且仍可以沿用开发普通Delphi习惯,使用上述的方法去处理IntraWeb的事件、方法和属性,利用IntraWeb进一步开发出功能更强大和复杂的Web应用。

 

 

 

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089