C程序设计附光盘 宋文强 26962-00chapter12_第1页
C程序设计附光盘 宋文强 26962-00chapter12_第2页
C程序设计附光盘 宋文强 26962-00chapter12_第3页
C程序设计附光盘 宋文强 26962-00chapter12_第4页
C程序设计附光盘 宋文强 26962-00chapter12_第5页
已阅读5页,还剩96页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,了解Web应用程序的开发环境了解Web应用程序的基本结构掌握Web应用程序中的常用标准控件和HTML控件掌握Web应用程序中的常用数据控件掌握Web环境中的数据库访问技术,本章教学目标,什么是Web应用程序?,C/S(Client/Server)B/S(Browser/Server)网站、论坛、博客(Blog)数据库和主要业务逻辑放在服务器端的虚拟目录中,Web应用程序有什么优点?,用户端只需要安装浏览器,维护工作量小,Web应用程序有什么缺点?,所有程序都在服务器上运行,服务器负担沉重对服务器的可靠性要求极高客户端只能执行浏览、提交操作,功能受限,12.1Web应用程序设计概述,采用ASP.NET技术进行开发必须安装WindowsServer2003或WindowsXP操作系统必须安装IIS(InternetInformationService)组件,12.1.1创建Web应用程序的基本步骤,步骤1:“项目类型”为“Web”,“模板”为“ASP.NET应用程序”,并在磁盘上选择文件夹作为网站虚拟目录,然后设置项目名称,步骤2,在“新建项目”对话框中单击“确定”按钮,自动创建网页文件Default.aspx。所有网页文件都具有“设计”视图和“源”视图,默认为源视图。,步骤3,在底部单击“设计”按钮,切换到设计视图。,步骤4,在Default.aspx页面上添加Label1、Label2、Label3;添加TextBox1、TextBox2;Button1,设置Text属性,步骤5,打开Default.aspx.cs文件窗口,自动创建Button1_Click()的框架代码,输入代码,步骤6,在自动创建的Page_Load()中输入代码:if(this.IsPostBack=false)Label3.Text=请在上面的文本框中输入您的姓名和密码;,步骤7,按下Ctrl+F5,运行程序,在“姓名”、“密码”文本框中输入内容,单击“提交”按钮,(a)网页首次加载(b)网页提交之后,观察地址栏,创建Web应用程序时选择的路径成为网站的虚拟路径,以localhost:2380作为网址LocalhostIIS组件为在本机调试Web程序而指定的一个特殊主机名,代表分配给本机的地址,2380是系统自动随机选择的一个空闲端口,12.1.2Web应用程序的结构分析,实现页面布局功能的前台页面文件(Default.aspx)实现业务逻辑功能的后台代码文件(Default.aspx.cs)表现网页与程序代码分离开来,使得网页布局与业务逻辑的设计与修改可以分头进行,提高代码开发效率。,1前台页面文件,由内容和HTML标记组成的静态网页,可以用FrontPage、Dreamweaver编辑,Page指令,Page指令中包括的常用属性,CodeBehind:与前台文件关联的后台代码文件名Inherits:与前台文件关联的后台代码类的类名Language:后台代码使用的语言AutoEventWireup:页面的事件是否自动连接代理,2后台代码文件,引入了一系列命名空间,定义了一个继承自System.Web.UI.Page类的_Default类。在_Default类的代码中,总是自动生成一个Page_Load()事件过程。,IsPostBack属性,页面第一次加载时,Page类的IsPostBack属性为false页面重新加载时,IsPostBack属性为true,12.1.3Web页面的往返行程,在Web应用程序运行期间,Web页面在服务器与客户端之间经历着如下的往返行程,行程1,客户端在浏览器地址栏输入URL,向服务器发出获得页面的HTTP请求,服务器响应请求,通过浏览器向客户端发送一个页面;,行程2,客户端在页面上执行控件操作,触发事件,将页面回发到服务器,向服务器再一次发出HTTP请求;,行程3,服务器接受客户端提交的事件,调用后台代码文件中的事件处理程序,将处理结果发送到客户端(2)、(3)两个步骤可能会多次执行,每次将页面从客户端回发到服务器时,都会创建Page类的一个新实例,这就意味着每次往返行程中,与该页面及所属控件相关联的信息都会丢失。,通过浏览器查看到的源文件,信息提交后可能丢失,用户在文本框中输入信息,并将表单提交到服务器,服务器处理完,再次将网页发送到客户端时,原先文本框中的信息丢失,采用ASP.NET技术,前台页面文件中,表单定义语句中包含runat=server,使表单被附加一个隐藏字段_ViewState(type=”hidden”),用来存放表单中所有控件的状态值,恢复过程,客户端请求页面时,ASP.NET把页面上所有控件的状态值序列化成一个加密字符串,作为_ViewState的value值送到客户端通过浏览器“查看”“源文件”,就能以文本文件形式查看到网页的源文件,从中看到加密字符串在源文件中看不到任何Web应用程序代码,它们在发送到客户端的时候都解释成为HTML标记客户端回传页面时,ASP.NET分析回传窗体_ViewState的value值,并赋给对应的控件。这个过程对用户来说是透明的,12.1.4Web应用程序中的常用控件,标准控件、HTML控件、数据控件等为了实现控件在整个页面上的定位,通常需要使用表格,把控件放进选定的单元格内,1标准控件,又称为Web服务器控件必须添加到前台文件标记之间,表单HTML代码,Button1属性标记,asp:Button控件类型为控钮ID=Button1控件名必须唯一runat=server在服务器端运行onclick=Button1_Click单击事件后应调用的事件处理过程Text=提交按钮表面文字Width=95px按钮的宽度,2HTML控件,为了与老版本ASP应用程序兼容而提供用来作为对标准控件的补充,插入表格,HTML控件的HTML代码,3数据控件,SqlDataSourceAccessDataSourceXmlDataSource,虚拟路径与物理路径文件上传文件浏览文件下载,12.2Web应用程序的文件操作,虚拟路径,物理路径,假想的,Internet信息服务的网站设置,Internet信息服务的网站主目录设置,虚拟路径与物理路径的映射,D:sohu,路径层次描述符,物理路径,使用“”描述文件夹层次关系;D:sohu20090518n264026449.shtml虚拟路径,使用“/”,使用虚拟路径的好处,增强了安全性邮政信箱改善了可移植性,虚拟路径与物理路径的转换,Server.MapPath()方法stringpath=Server.MapPath(filename);思考:Server.MapPath()代表的是什么?,Server.MapPath()的几种用法,(1)Server.MapPath(/)应用程序根目录所在位置(2)Server.MapPath(./)所在页面的当前目录,等价于Server.MapPath()(3)Server.MapPath(./)上一级目录(4)Server.MapPath(/)当前应用级程序的目录,等价于Server.MapPath(),Server.MapPath(“/”)的映射,D:sohuexeFilemypathmypath,Server.MapPath(“./”)的映射,Label1.Text=Server.MapPath(./)+;,语句是myfile内网页文件new_page_1.aspx上的,D:sohuexeFilemypathmypathmyfile,Server.MapPath(“./”)的映射,Label1.Text=Server.MapPath(./)+;,D:sohuexeFilemypathmypath,怎样添加新的网页?,新网页或已有网页,右击项目名称,12.2.2FileUpload控件与文件上传,实例12.2,例12.2以交互方式选择本机存储的图片文件(仅限于JPG、GIF、RAR),上传到服务器端指定的文件夹内,需要解决的问题,文件从哪里来?文件到哪里去?文件的大小、多少、容量怎样限制?网络传输情况不好怎么办?上传的文件重名怎么办?,程序代码,protectedvoidPage_Load(objectsender,EventArgse)if(IsPostBack=false)/如果是网页首次加载Label1.Text=上传文件类型仅限于JPG、GIF、RAR;protectedvoidButton1_Click(objectsender,EventArgse)if(FileUpload1.HasFile)/如果已经选中上传文件stringmyfile=FileUpload1.FileName;/获得上传文件完整路径stringmyfileExt=Path.GetExtension(myfile).ToLower();stringsavefile=;stringtemp=;if(myfileExt=.jpg|myfileExt=.gif|myfileExt=.rar)Randomrnd=newRandom();temp=rnd.Next(100,1000).ToString();/生成一个文件名savefile=String.Format(0:yyyyMMhhmmss,DateTime.Now)+temp+myfileExt;FileUpload1.SaveAs(Server.MapPath(/images/+savefile);Label1.Text=文件+myfile+上传成功!;elseLabel1.Text=上传文件类型不符合要求,仅限于JPG、GIF、RAR;elseLabel1.Text=请选择要上传的文件;,网页加载,protectedvoidPage_Load(objectsender,EventArgse)if(IsPostBack=false)/如果是网页首次加载Label1.Text=上传文件类型仅限于JPG、GIF、RAR;,文件上传,if(FileUpload1.HasFile)/如果已经选中上传文件stringmyfile=FileUpload1.FileName;/获得文件完整路径stringmyfileExt=Path.GetExtension(myfile).ToLower();stringsavefile=;stringtemp=;if(myfileExt=.jpg|myfileExt=.gif|myfileExt=.rar)Randomrnd=newRandom();temp=rnd.Next(100,1000).ToString();/生成文件名savefile=String.Format(0:yyyyMMhhmmss,DateTime.Now)+temp+myfileExt;FileUpload1.SaveAs(Server.MapPath(/images/+savefile);Label1.Text=文件+myfile+上传成功!;,上传文件大小限制,Web.config配置文件maxRequestLength最大文件长度executionTime最大上传时间,Web.config,创建Web应用程序时自动创建的配置文件采用XML节点结构,提供文件上传路径、数据库连接字符串等配置信息网站IIS启动的时候会加载配置文件中的配置信息,并时刻监视配置文件的变化,12.2.3ListBox控件与图片文件浏览,ListBox控件,DataTextField显示的数据源字段DataValueField显示内容所代表的实际值字段Items列表框中选项集合,成员为ListItem类型,ListItem.Text为显示的选项内容,ListItem.Value为选项所代表的值SelectedValue被选择项目值AutoPostBack自动回传到Web服务器,实例12.3,例12.3网页打开时,ListBox中列出images文件夹之下所有图片文件,并在Image中显示第一张图片。在列表框中单击任意一个文件名,就能在Image中显示图片,实例12.3代码,protectedvoidPage_Load(objectsender,EventArgse)if(IsPostBack=false)/如果是网页首次加载stringmypath=Server.MapPath(/)+images;if(Directory.Exists(mypath)/如果被查看的目录存在/指定目录下的文件名和目录名保存到名为myfie的数组中stringmyfile=Directory.GetFiles(mypath);for(inti=0;imyfile.Length;i+)/获取文件名stringmyfilename=myfilei.Substring(myfilei.LastIndexOf()+1);stringmyExtension=Path.GetExtension(myfilei).ToLower();/获取扩展名if(myExtension=.jpg|myExtension=.gif)ListItemmyitem=newListItem();/ListItem对象myitem.Text=myfilename;myitem.Value=myfilei;ListBox1.Items.Add(myitem);/向列表框中添加选项Image1.ImageUrl=ListBox1.Items0.Value;,代码,protectedvoidListBox1_SelectedIndexChanged(objectsender,EventArgse)/单击列表框中的选项,触发SelectedIndexChanged事件Image1.ImageUrl=ListBox1.SelectedValue;,说明,在网页加载期间,利用IsPostBack=false判断网页是否为首次加载服务器端每一次响应客户端请求,都会发生一次网页的重新加载如果网页首次加载,则将images文件夹内的图片文件在列表框中依次显示利用Directory.GetFiles(mypath),可以一次性地获得所有包含完整路径的文件名,并保存到字符串数组中。从完整路径名中分离出文件名,赋予ListItem.Text,用来在列表框中显示;完整路径名则赋予ListItem.Value,思考:怎样一次上传多个文件?,在Web环境如何浏览数据库在Web环境如何提交表单内容并存入数据库,12.3Web应用程序的数据库操作,在Web环境访问数据库有什么特殊性?,数据库在哪里?访问者在哪里?访问者与数据库怎样联系?,12.3.1SqlDataSource控件与数据库内容浏览,例12.4分页显示student.mdb中“学生基本情况表”内容。单击表中任意“查看照片”按钮,显示当前行学生照片。,功能实现诀窍,数据控件,SqlDataSource,与数据库建立联系,网页上所有数据表现控件都可以把SqlDataSource作为数据源屏蔽了ADO.NET和SQL语句的操作细节,步骤(1),在网页文件Default.aspx设计视图中,先在表单内插入一个1行2列的表格(定位)在左边格内添加一个SqlDataSource执行“配置数据源”操作,步骤(2),在“配置数据源”对话框单击“新建连接”按钮,打开“添加连接”窗口选择数据源文件,并测试连接为了网站管理方便,数据库文件最好预先复制到网站虚拟目录下App_Data文件夹内,步骤(3),按照提示将自动生成的连接字符串名称StudentConnectionString保存到应用程序配置文件Web.config中用户也可以把连接字符串名称改写成更便于记忆的内容,步骤(4),选择数据源的表和字段通过“Where”和“OrderBy”设置筛选条件和排序方式自动生成Select语句切换到Default.aspx源视图,可以看到如下自动生成语句:SelectCommand=SELECT*FROM学生基本情况表,配置Select语句,步骤(5),当“测试查询”对话框出现时,单击“测试查询”按钮,可以预览数据源内容,同时查看Select语句完成数据源配置,SqlDataSource1就成为网页上任何数据表现控件的数据源本身不在网页上显示,步骤(6),在SqlDataSource1格中添加GridView1在“GridView任务”框中选择数据源为SqlDataSource1,步骤(7),在“GridView任务”框中选择“编辑列”,打开“字段”对话框“可用字段”中添加“ButtonField”“ButtonField属性”设置“ButtonType”、Text、“CommandName”GridView1中出现一列按钮。,步骤(8),在“GridView任务”中选择“启用分页”在属性窗口中设置PageSize属性(默认值为10),决定每页显示多少行,实现数据库内容的分页显示。,步骤(9),在网页右侧单元格中添加一个Image控件,准备用来显示照片(Web环境下没有PictureBox),网页加载之后,添加代码,protectedvoidPage_Load(objectsender,EventArgse)Image1.Visible=false;/网页加载时使图片框不可见protectedvoidGridView1_RowCommand(objectsender,GridViewCommandEventArgse)intselIndex=Convert.ToInt32(e.CommandArgument);if(e.CommandName=showPicture)Image1.Visible=true;/使图片框可见GridView1.SelectedIndex=selIndex;Image1.ImageUrl=/images/+GridView1.SelectedRow.Cells0.Text+.jpg;,说明,单击任何一个“查看照片”按钮,都会触发RowCommand事件通过GridViewCommandEventArgse获得按钮所在行号行号赋给GridView1.SelectedIndex,相当于人工选择了GridView1中相应的选项图片文件名与“学号”字段的值相同利用“学号”值生成照片文件路径并赋予Image1.ImageUrl,实现照片显示,12.2.2SqlDataSource控件与数据库更新,通过SqlDataSource与数据库建立联系与Web标准控件相配合把网页上表单的内容提交到服务器作为新的记录,添加到数据库可以对数据库进行删除、修改等操作,实例12.5,例12.5将表单内容提交到服务器,作为一条新记录添加到student.mdb的学生基本情况表中,同时将学生照片添加到网站images文件夹,步骤(1)网页界面设计,新建网页文件Default.aspx设计视图中,插入72表格(整体布局)在各单元格中添加控件文本框myNumbermyNamemyHomemyScoremySubjectmyBirthday下拉列表框mySex文件上传myPhoto按钮,步骤(2)为SqlDataSource控件配置数据源,在网页上添加SqlDataSource,为其配置数据源在数据源配置过程中,执行到“配置Select语句”时,单击“高级”按钮打开“高级SQL生成选项”对话框,勾选“生成INSERT、UPDATE和DELETE语句”。,(3)设置InsertCommand和InsertParameters,切换到Default.aspx源视图,观察SqlDataSource的相关代码,自动生成的InsertCommand,InsertCommand=INSERTINTO学生基本情况表(学号,姓名,性别,籍贯,出生年月,高考成绩,专业)VALUES(?,?,?,?,?,?,?)(VALUES全为未确定的?),修改InsertCommand,InsertCommand=INSERTINTO学生基本情况表(学号,姓名,性别,籍贯,出生年月,高考成绩,专业)VALUES(学号,姓名,性别,籍贯,出生年月,高考成绩,专业)(VALUES的每个项目前面都要加上),自动生成的InsertParameters,修改InsertParameters,(把所有的Parameter改为FormParameter,再为每个参数增加相应的FormField属性),(4)生成Click事件框架代码,双击Button1,自动生成Click事件的框架代码,并切换到Default.aspx.cs,写入代码,prote

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论