web数据库开发基础.ppt
WEB编程基础编程基础ASP与与JSPACCESS与与SQL SERVER目目 录录n nWEB编程技术概述编程技术概述n nASP与与JSPn nACCESS与与SQL SERVERn n动态网站编程示例动态网站编程示例一、一、WEB编程技术概述编程技术概述静态与动态静态与动态静态网页静态网页n n网页内容和形式固定网页内容和形式固定n n部分效果呈现动态(部分效果呈现动态(JavaScript)n n可直接在可直接在IE中打开,不需要其它程序支持中打开,不需要其它程序支持静态网页的设计静态网页的设计n nHTMLn nCSS(层叠样式表(层叠样式表,Cascading Style Sheets)n nDHTML(层层 CSSVBScript/JavaScript)n nFLASHn nXML动态网页动态网页n n动态网页以静态网页的框架为基础,运动态网页以静态网页的框架为基础,运行结果仍是静态网页的形式,动态体现行结果仍是静态网页的形式,动态体现在内容和形式上。在内容和形式上。n n在在HTML网页中,加入标记于网页中,加入标记于之之中的服务器端脚本程序,中的服务器端脚本程序,由服由服务器执行,其结果只跟服务器有关,不务器执行,其结果只跟服务器有关,不受浏览器影响。受浏览器影响。动态网页动态网页n n动态网站都需要在动态网站都需要在应用服务器应用服务器中发布。中发布。n n服务器端执行程序(一般是服务器端执行程序(一般是访问数据库访问数据库、接收表单内容接收表单内容、反馈信息反馈信息等操作),将等操作),将结果与静态网页的内容一起发至客户端,结果与静态网页的内容一起发至客户端,再由再由IE显示内容。显示内容。n n通常动态比静态运行慢通常动态比静态运行慢应用服务器应用服务器n n作用:发布站点,提供大量基于作用:发布站点,提供大量基于Web的的企业应用功能,支持高性能的事务处理,企业应用功能,支持高性能的事务处理,允许管理员远程管理和监视服务器,提允许管理员远程管理和监视服务器,提供安全的通信功能。供安全的通信功能。n n常用小型应用服务器常用小型应用服务器IISIIS(ASPASP)TomcatTomcat(JSPJSP)ApacheApache(PHPPHP)动态网页的设计动态网页的设计n nASP(ActiveX Server Page)n nPHP(Personal Home Page)n nJSP(Java Server Page)返回返回返回返回ASP简介简介n nASPASP采用脚本语言采用脚本语言采用脚本语言采用脚本语言VBScriptVBScript作为自己的开发作为自己的开发作为自己的开发作为自己的开发语言。语言。语言。语言。n nASPASPIIS/PWS IIS/PWS SQL Server/AccessSQL Server/Accessn n开发工具:开发工具:开发工具:开发工具:MS Visual MS Visual InterDev InterDev/DreamweaverDreamweaver/Home Site/Front Page Home Site/Front Page/TXTTXT等等等等n n应用:应用:应用:应用:企企企企业业内部管理信息系内部管理信息系内部管理信息系内部管理信息系统统、中小、中小、中小、中小InternetInternet应应用、快速数据用、快速数据用、快速数据用、快速数据库库开开开开发发的的的的应应用用用用ASP优点优点n nVB的语法,简单易学的语法,简单易学n n适用于适用于WIN2000IIS系统,配置方便系统,配置方便n n有有ActiveX控件和控件和COM/COM+组件的支组件的支持,功能强大,持,功能强大,几乎可以几乎可以实现在在C/S 能能够实现的所有功能的所有功能。n n对硬件要求不高,适合访问量不大的情况。对硬件要求不高,适合访问量不大的情况。ASP缺点缺点n n和和WINDOWS一样,安全性、稳定性、一样,安全性、稳定性、跨平台性差。跨平台性差。n n必须与必须与COM组合才能功能强大,而组合才能功能强大,而COM比较复杂且不易掌握比较复杂且不易掌握n n脚本级执行,速度慢脚本级执行,速度慢n n无法实现企业级的功能:负载均衡无法实现企业级的功能:负载均衡ASP发布发布n n安装安装 IISn n配置默认配置默认 web 站点站点n n测试默认首页测试默认首页返回返回返回返回PHP简介简介n n嵌入式脚本语言嵌入式脚本语言嵌入式脚本语言嵌入式脚本语言n n大量地借用大量地借用大量地借用大量地借用C C,JavaJava和和和和PerlPerl语言的语法语言的语法语言的语法语言的语法n n支持目前绝大多数数据库支持目前绝大多数数据库支持目前绝大多数数据库支持目前绝大多数数据库n n完全免费完全免费完全免费完全免费n nPHPPHPApacheApacheMySQLMySQL/Sybase/Sybasen n开开开开发发工具:工具:工具:工具:Home Site/Home Site/PHPEdPHPEd /DreamweaverDreamweavern nInternetInternet高高高高访问访问量、快速数据量、快速数据量、快速数据量、快速数据库库开开开开发发的的的的应应用用用用 PHP优点优点n n能快速学能快速学习、跨平台、有良好数据、跨平台、有良好数据库交交互能力互能力n n与与Apache及其它及其它扩展展库结合合,使用,使用静静态编译最大化的利用最大化的利用CUP和内存和内存n n良好的安全性良好的安全性,与,与Apache编译在一起在一起的方式也可以的方式也可以让它具有灵活的安全它具有灵活的安全设定定。PHP缺点缺点n n使用函数连接数据库,对不同数据库的使用函数连接数据库,对不同数据库的支持相差极大。支持相差极大。n n安装复安装复杂,需要需要许多外部的多外部的应用用库 n n缺少企缺少企业级的支持的支持,难以以实现实现集群、集群、应用服用服务器器等。等。n n缺少正缺少正规的商的商业支持支持 返回返回返回返回JSP简介简介n nJSPJSP是是是是J2EEJ2EE框架框架框架框架的一部分的一部分的一部分的一部分n nJSPJSP在第一次被执行时,编译成在第一次被执行时,编译成在第一次被执行时,编译成在第一次被执行时,编译成ServletServletn n可以在可以在可以在可以在 ServletServlet 和和和和 JavaBeanJavaBean 的支持下,完成功的支持下,完成功的支持下,完成功的支持下,完成功能强大的站点程序能强大的站点程序能强大的站点程序能强大的站点程序n nJSPJSPTomcat/Tomcat/JRunJRunORACLE/ORACLE/Sybase Sybase n n开发工具:开发工具:开发工具:开发工具:JBuilderJBuilder/EClipseEClipse/NetBeanNetBean /DreamweaverDreamweavern n应用:应用:应用:应用:Internet/IntranetInternet/Intranet高可靠性高可靠性高可靠性高可靠性应应用、用、用、用、Internet Internet/Intranet/Intranet与与与与Client/ServerClient/Server结结合的合的合的合的应应用系用系用系用系统统JSP优点优点n n一次编写,随处运行一次编写,随处运行n n与平台无关性,几乎兼容于任何操作系统与平台无关性,几乎兼容于任何操作系统n n功能强大,一个小的功能强大,一个小的jar文件就可以运行文件就可以运行servlet/jsp到由多台服务器进行集群和到由多台服务器进行集群和负载均衡,到多台负载均衡,到多台Application进行事务进行事务处理、消息处理处理、消息处理.n n开发工具多,而且全部免费开发工具多,而且全部免费JSP缺点缺点n n功能强大,但系统方案复杂功能强大,但系统方案复杂n n第一次运行速度很慢第一次运行速度很慢n n运行时占用大量内存运行时占用大量内存n n相关资料少,更新慢相关资料少,更新慢JSP发布发布n n下载并安装下载并安装 j2sdkn n下载并安装下载并安装 Tomcatn n设置环境变量设置环境变量 path、classpath、JAVA_HOME、Tomcat_HOMEn n在命令提示符下启动在命令提示符下启动 Tomcatn n测试默认首页测试默认首页ASP/JSP/PHP比较比较n n循环性能测试:循环性能测试:循环性能测试:循环性能测试:JSPJSP(20000200002000020000的循环)的循环)的循环)的循环)4 4秒;秒;秒;秒;ASP/PHPASP/PHP(2000200020002000的循环的循环的循环的循环)6363秒秒秒秒 /8484秒秒秒秒n n数据库测试:对数据库测试:对数据库测试:对数据库测试:对Oracle 8Oracle 8进行进行进行进行10001000次次次次 InsertInsert,UpdateUpdate,SelectSelect和和和和DeleteDelete,JSPJSP1313秒,秒,秒,秒,PHPPHP6969秒,秒,秒,秒,ASPASP7373秒秒秒秒n n前景分析:国内前景分析:国内前景分析:国内前景分析:国内PHPPHP与与与与ASPASP应用最为广泛,应用最为广泛,应用最为广泛,应用最为广泛,国外电子商务类的网站,多采用国外电子商务类的网站,多采用国外电子商务类的网站,多采用国外电子商务类的网站,多采用JSPJSP二、二、Web编程编程ASP与与JSP语法语法n nASPVBScript或或JavaScriptn nJSPJava语法示例语法示例ASPASPdim idim iI=1I=1JSPJSPintint i=0;i=0;if i=1 thenif i=1 then x=x+1 x=x+1end ifend ifif(iif(i=1)=1)x=x+1;x=x+1;for i=1 to 10for i=1 to 10 x=x+1 x=x+1nextnextfor(ifor(i=0;i10;i+)=0;i10;i+)x=x+1;x=x+1;do while i=10do while i=10 i=i+1 i=i+1looploopwhile(iwhile(i=10)=10)i=i+1i=i+1 常用内置对象常用内置对象n nrequestn nresponsen n(out)n nsessionn napplicationrequest对象对象n n接收客户端提交的信息接收客户端提交的信息n n接收表单:接收表单:name=name=requestrequest.form.form(name(name)name=name=request.request.getParametergetParameter(name(name););n n接收变量:接收变量:name=name=requestrequest.QueryString.QueryString(name(name)name=name=request.request.getParametergetParameter(name(name););response对象对象n n向客户端发送信息向客户端发送信息n n发送字符:发送字符:response.writeresponse.write(欢迎访问欢迎访问欢迎访问欢迎访问)n n网页重定向网页重定向response.response.redirectredirect(index.asp(index.asp)resposne.resposne.sendRedirectsendRedirect(index.aspindex.asp););n n停止发送信息停止发送信息response.endresponse.end()()out对象对象n n向客户端发送信息向客户端发送信息n n发送字符:发送字符:out.printout.printlnln(欢迎访问欢迎访问欢迎访问欢迎访问)n n停止发送信息停止发送信息out.closeout.close();();session对象对象n n保存用户状态(用户名、权限、身份)保存用户状态(用户名、权限、身份)n n设置设置SESSIONsession(usernamesession(username)=name)=namesession.session.setAttributesetAttribute(username,name(username,name););n n读取读取SESSIONname=name=session(usernamesession(username)String name=String name=(String)session.String)session.getAttributegetAttribute(username(username);session对象对象n nSESSION编号编号session.sessionidsession.sessionidsession.getIdsession.getId;applicationn n保存系统状态保存系统状态n n用法同用法同SESSION三、数据库三、数据库ACCESS与与SQL SERVER关系模型关系模型n n关系模型:以二维表格的形式组织数据关系模型:以二维表格的形式组织数据库中的数据。库中的数据。记录记录记录记录字段字段字段字段主键主键主键主键学生(学生(students)idid snumbersnumber snamesnamemajormajorsexsexbirthdaybirthdayinfoinfo1 1051101051101王林王林王林王林计算机计算机计算机计算机男男男男1985-02-011985-02-012 2051102051102程明程明程明程明计算机计算机计算机计算机男男男男1984-12-031984-12-03有一门课不有一门课不有一门课不有一门课不及格及格及格及格3 3051103051103王燕王燕王燕王燕计算机计算机计算机计算机女女女女1985-08-111985-08-11三好生三好生三好生三好生4 4051201051201李方方李方方李方方李方方通信工程通信工程通信工程通信工程 女女女女1986-03-261986-03-265 5051202051202严红严红严红严红通信工程通信工程通信工程通信工程 女女女女1985-07-221985-07-22课程(课程(courses)ididccodeccodecnamecnamectypectype ctimectimectimectimescore1score11 101010101计算机导论计算机导论计算机导论计算机导论1 11 172724 42 201020102数据结构数据结构数据结构数据结构1 12 254543 33 301030103操作系统操作系统操作系统操作系统1 13 354543 34 402010201国际贸易理论国际贸易理论国际贸易理论国际贸易理论2 22 236362 25 503010301经济学经济学经济学经济学1 12 254543 3成绩(成绩(scores)ididsnumbersnumbersclasssclassscorescore1 11 11 180802 22 21 178783 34 41 170704 41 12 290905 52 22 265656 65 52 289897 71 14 469698 84 45 57171SQLn nSQL(结构化查询语言,(结构化查询语言,Structured Query Language)数据定义语言:建立、修改、删除数据数据定义语言:建立、修改、删除数据数据定义语言:建立、修改、删除数据数据定义语言:建立、修改、删除数据数据操纵语言:检索、查询数据操纵语言:检索、查询数据操纵语言:检索、查询数据操纵语言:检索、查询数据控制语言:安全管理数据控制语言:安全管理数据控制语言:安全管理数据控制语言:安全管理常用常用SQL命令命令n nSelect 字段字段1,字段字段2,字段字段n from 表表名名 where 条件条件Select Select snumber,snamesnumber,sname from students from students where id=1where id=1常用常用SQL命令命令n nInsert into 表名表名(字段字段1,字段字段2,字段字段n)values(值值1,值值2,值值n)Insert into Insert into scores(snumberscores(snumber,sclasssclass,score)valus(2,3,86)score)valus(2,3,86)常用常用SQL命令命令n nUpdate 表名表名 set 字段字段1=值值1,字段字段2=值值2,字段字段n=值值n where 条件条件Update Update courescoures set set ctimectime=4 where id=4=4 where id=4常用常用SQL命令命令n nDelete from 表名表名 where 条件条件Delete from classed where id=2Delete from classed where id=2数据库操作数据库操作n n实例实例ASP访问数据库方案访问数据库方案应用应用程序程序ADOOLEDB providerfor DBOLEDBproviderFor ODBCODBCDriver forDB数据库数据库JSP访问数据库方案访问数据库方案应用应用程序程序JDBCJDBC driverfor DBJDBC-ODBCDriverODBCDriver forDB数据库数据库数据库连接一般步骤数据库连接一般步骤sqlconnectionrecordset结果结果数据库连接数据库连接n nASP使用使用ADO组件(对象)组件(对象)n nJSP使用使用JDBC驱动驱动数据库连接数据库连接n nASPASPACCESSACCESSset set connconn=server.CreateObject(server.CreateObject(ADODB.ConnectionADODB.Connection)DbPathDbPath=server.MapPath(=server.MapPath(hedadb2006.mdbhedadb2006.mdb)conn.openconn.open Provider=Microsoft.Jet.OLEDB.4.0;Data Provider=Microsoft.Jet.OLEDB.4.0;Data Source=&Source=&DbPathDbPath&Jet&Jet OLEDB:DatabaseOLEDB:Database Password=Password=123456123456;“;“set set rsrs=server.CreateObject(server.CreateObject(ADODB.RecordsetADODB.Recordset)rs.openrs.open select*from students,select*from students,connconn,3,1,3,1rs.closers.closeconn.closeconn.close数据库连接数据库连接n nJSPJSPACCESSACCESSString String spathspath=“=“testjspstudents.mdbtestjspstudents.mdb”;/”;/注意路径注意路径注意路径注意路径String String dbpathdbpath=application.getRealPath(spathapplication.getRealPath(spath););String String urlurl=jdbc:odbc:Driverjdbc:odbc:Driver=Microsoft Access=Microsoft Access Driver(*.Driver(*.mdb);DBQmdb);DBQ=+=+dbpathdbpath;Class.forName(sun.jdbc.odbc.JdbcOdbcDriverClass.forName(sun.jdbc.odbc.JdbcOdbcDriver););Connection Connection connconn=DriverManager.getConnection(urlDriverManager.getConnection(url););/创建语句对象创建语句对象创建语句对象创建语句对象Statement Statement stmt=stmt=conn.createStatement(ResultSet.TYPE_SCROLconn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLEL_SENSITIVE,ResultSet.CONCUR_UPDATABLE););数据库连接数据库连接String String sqlsql=select*from students;=select*from students;ResultSetResultSet rsrs=stmt.executeQuery(sqlstmt.executeQuery(sql););rs.closers.close();/();/关闭记录集对象关闭记录集对象关闭记录集对象关闭记录集对象 stmt.closestmt.close();/();/关闭语句对象关闭语句对象关闭语句对象关闭语句对象 conn.closeconn.close();/();/关闭连接对象关闭连接对象关闭连接对象关闭连接对象 数据库连接数据库连接n nASPSQL SERVER 2000set set connconn=Server.CreateObject(Server.CreateObject(ADODB.ConnectionADODB.Connection)conn.openconn.open Provider=Provider=sqloledbsqloledb;Data Source=(local);Data Source=(local);Initial Catalog=Initial Catalog=hzztbhzztb;User Id=;User Id=sasa;Password=;Password=;数据库连接数据库连接n nJSPSQL SERVER 2000(安装(安装JDBC包)包)Class.forName(com.microsoft.jdbc.sqlserver.SQLSClass.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver).newInstanceerverDriver).newInstance();();/数据库连接字符串数据库连接字符串数据库连接字符串数据库连接字符串 String String urlurl=jdbc:microsoft:sqlserver:/localhost:1433;=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseNameDatabaseName=green;=green;String user=String user=sasa;String password=;String password=;数据库连接数据库连接/建立连接建立连接建立连接建立连接 Connection Connection connconn=DriverManager.getConnection(urlDriverManager.getConnection(url,user,password);user,password);/创建语句对象创建语句对象创建语句对象创建语句对象 Statement Statement stmt=stmt=conn.createStatement(ResultSet.TYPE_SCROLconn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLEL_SENSITIVE,ResultSet.CONCUR_UPDATABLE););四、系统开发实例四、系统开发实例4.1 ASP+ACCESS设计一个设计一个BBS系统系统数据库设计数据库设计n n根据需要设计相应表和字段根据需要设计相应表和字段n n注意设置主键注意设置主键用户表用户表字段名称字段名称数据数据类类型型说说明明UserName文本用户姓名UserPassword文本用户密码UserEmail文本用户电子邮件地址UserHomepage文本用户个人主页地址UserNote备注用户备注信息文章表文章表字段名称字段名称数据数据类类型型说说明明ArticleID自动编号 BBS中的文章编号(主键)ArticleDate日期/时间 发表文章的日期ArticleTime日期/时间 发表文章的时间ArticleAuthor文本发表文章的用户帐号ArticleAccessNumber数字文章被阅读的次数ArticleFellowNumber数字文章被回复的次数ArticleParent数字该文章是一篇回复文章,它所回复的文章编号ArticleContent备注文章的内容ArticleTitle文本文章的标题消息表消息表字段名称字段名称数据数据类类型型说说明明MessageID文本消息的编号(主键)MessageDate文本发送消息的日期MessageTime文本发送消息的时间MessageName文本发送人的用户帐号MessageEmail备注发送人的电子邮件地址MessageHomepage文本发送人的个人主页地址MessageContent文本消息的内容MessageToName备注接收人的用户帐号数据库连接数据库连接 主界面主界面用户注册用户注册用户登录用户登录修改用户密码修改用户密码浏览文章浏览文章阅读文章阅读文章发表文章发表文章用户主界面用户主界面游客主界面游客主界面4.2 JSP+ACCESS企业网站企业网站数据库设计数据库设计n n(略)(略)数据库连接数据库连接n n定义数据连接类定义数据连接类