收藏 分销(赏)

C#Web应用开发PPT.ppt

上传人:精*** 文档编号:8882400 上传时间:2025-03-06 格式:PPT 页数:48 大小:2.22MB
下载 相关 举报
C#Web应用开发PPT.ppt_第1页
第1页 / 共48页
C#Web应用开发PPT.ppt_第2页
第2页 / 共48页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Windows,应用编程 主讲:陈克力,第,11,章,Web,应用开发,11.1,一个简单的,ASP.NET,应用程序,11.2,关于,ASP.NET,11.3 ASP.NET,控件和对象,11.4 ASP.NET,数据库应用程序,11.5 Web,服务的应用,本 章 内 容,11.1,一个简单的,ASP.NET,应用程序,11.1.1,创建,ASP.NET,应用程序,【,例,11.1】,基于,C#,的简单,ASP.NET,应用程序。,这是一个简单的,ASP.NET,应用程序,其作用是将文本框中输入的字符串显示在网页上。,创建步骤如下:,(,1,)启动,VS 2008,,选择“文件”,|“,新建”,|“,项目”,打开“新建项目”对话框。在此对话框的“项目类型”框中选择“,Visual C#”,项,在“模板”框中选择“,ASP.NET Web,应用程序,”,表示要创建基于,C#,的,ASP.NET,应用程序,将程序名设置为,MyFirstWebApp,:,(,2,)单击,【,确定,】,按钮,然后在生成界面的“解决方案资源管理器”中右击“,Default.aspx”,节点,在弹出的菜单中选择“视图设计器”,以可打开页面的视图设计器。,(,3,)将工具箱中的三个控件拖到设计界面中,这三个控件分别是,Label,、,TextBox,和,Button,控件,并适当设置它们的属性和位置:,11.1,一个简单的,ASP.NET,应用程序,11.1.1,创建,ASP.NET,应用程序,(,4,)在设计界面中,双击,【,访问控件,】,按钮,即可进入到该按钮的事件处理函数中,实际上是在,Default.aspx.cs,文件中生成了,Button1_Click,函数。在该函数中,添加下列代码:,Label1.Text=TextBox1.Text;,Label1.Font.Size=20;,(,5,)运行程序,MyFirstWebApp,。方法是:按,【Ctrl】+【F5】,按钮直接运行,也可以单击快捷菜单栏上的“启动调试”按钮(相当于按,【F5】,)。在打开的,IE,浏览器界面的文本框中输入一些字符串,然后单击,【,访问控件,】,按钮:,至此,一个简单的,ASP.NET,应用程序开发完毕。,11.1,一个简单的,ASP.NET,应用程序,11.1.1,创建,ASP.NET,应用程序,读者可能注意到,虽然做的是网页程序,但没有感觉到要编写任何的网页代码(编写,HTML,代码是一件烦杂的事情),而只是进行控件的拖放、控件属性的设置以及,C#,代码的编写,这与开发,C#,窗体应用程序几乎没有什么区别。这是,ASP.NET,对,Web,应用程序设计的极大改进。,造成这种改进主要是由于,.NET,平台采用了,界面和代码分开的策略,,即,网页文件放在,Default.aspx,文件,中,而,C#,代码则放在,Default.aspx.cs,文件,中。,11.1,一个简单的,ASP.NET,应用程序,11.1.1,创建,ASP.NET,应用程序,Default.aspx.cs,文件,是与页面元素相关联的,C#,文件,它就是,ASP.NET,代码隐藏的地方。对,ASP.NET,应用程序来说,这里就是程序员的“用武之地”。前面指出的“界面元素和代码分开”,指的就是将程序文件分为,ASP.NET,应用中的,.aspx,文件和,.aspx.cs,文件。,ASP,(,Active Server Pages,)是,Microsfot,公司于,1996,年,11,月推出的面向,WEB,应用程序开发的技术框架,但它不是程序设计语言,也不是开发工具。简单地,,ASP,主要是由“,”,挂起来的代码嵌入到,HTML,中的一种技术。这些代码是在服务器端执行,执行时无需编译,可以用任何的文本编辑器编写(如记事本等)。此外,,ASP,可以通过内置的组件实现更强大的功能,如使用,ADO,可以轻松地访问数据库。,ASP.NET,则是从,HTML,发展到,ASP,,然后伴随着微软的,.NET,技术的推出而出现的。,ASP.NET,不是,ASP,的简单升级,而是全新一代的动态网页开发系统,用于在一台,Web,服务器上建立强大的应用程序。它是,Microsoft.NET,技术的一个组成部分,是,ASP,和,.NET,技术结合的产物。在,Microsoft Visual Studio 2005/2008,中,利用,.NET,提供的控件,可快速开发,ASP.NET,应用程序,大大简化了编码的过程。,11.2,关于,ASP.NET,11.1.1,创建,ASP.NET,应用程序,相对,ASP,而言,,ASP.NET,具有的主要优势包括:,实现界面和代码的分开,编译执行,使用强类型(,strongly-type,)编程语言,11.2,关于,ASP.NET,11.1.1,创建,ASP.NET,应用程序,ASP.NET,主要包括两种编程模型:,WebForm,:提供了建立功能强大、外观丰富的基于表单,(Form),的可编程,Web,页面,这几乎与,VB.NET,、,C#.NET,的窗体开发界面是一样的,WebService,:通过对,HTTP,、,XML,、,SOAP,、,WSDL,等,Internet,标准的支持提供在异构网络环境下获取远程服务、连接远程设备、交互远程应用的编程界面,ASP.NET,提供了大量的控件,当用户将控件拖到,Web,窗体设计界面时,会自动生成相应的,HTML,代码和,C#,代码。这为,Web,应用程序的可视化界面设计提供极大的便利,避免了使用,HTML,标记语言编写大量代码的麻烦。,ASP.NET,控件主要分为两大类:,Web,窗体控件,和,HTML,控件:,11.3 ASP.NET,控件和对象,11.3.1 ASP.NET,控件,对于,Web,窗体控件和,HTML,控件,需要注意以下几点:,(,1,),Web,窗体控件是服务器端控件,即它们在服务器端运行,因此不要求客户端浏览器支持,Web,窗体控件(如不要求安装,.NET Framework,等),我们在浏览器看到的只是这些控件运行后输出的结果;,HTML,控件是客户端控件,只有浏览器支持这些控件,它们才能运行。,(,2,),Web,窗体控件是以,C#,为脚本语言,其功能十分强大。,HTML,控件则以,javascript,等为脚本语言,其功能较前者弱得多。,(,3,)在设计界面上,当双击,Web,窗体控件时,会自动在,.cs,文件中形成并打开控件的,Click,事件处理函数(,C#,语言),以供用户编写代码;当双击,HTML,控件时,则会自动在,.aspx,文件中形成并打开控件的,onclick,事件处理函数(,javascript,语言)。,11.3 ASP.NET,控件和对象,11.3.1 ASP.NET,控件,【,例,11.2】,使用,ASP.NET,控件实现页面之间传递数据的,ASP.NET,应用程序。,本例介绍如何使用,QueryString,来解决这个问题。,11.3 ASP.NET,控件和对象,11.3.1 ASP.NET,控件,(,1,)在,VS2008,中创建一个,ASP.NET,应用程序,testWebControlApp,。,(,2,)添加一个,Web,页,方法是:选择“项目”,|“,添加新项”,在打开的“添加新项”对话框中选择“,Web,窗体”。,(,3,)在视图设计器中打开文件,Default.aspx,的设计界面,然后在其设计界面中分别添加,2,个,Label,控件、,2,个,TextBox,控件和,1,个,Button,控件,并在属性编辑器中修改,Label,和,Button,控件的,Text,属性、将,TextBox,控件的,ID,分别改为,username,和,password,,还将后一个,TextBox,控件的,TextModel,属性值设置为,password,,以将框作为密码输入框。设计界面如下:,(,4,)在视图设计器中打开文件,WebForm1.aspx,的设计界面,在设计界面中直接添加,2,个,Label,控件即可,它们的,ID,自动被设置为,Label1,和,Label2,。,(,5,)在文件,Default.aspx,的设计界面中,双击,【,登录,】,按钮,在产生的,Click,事件处理函数中添加如下代码:,string dataStr;,dataStr=WebForm1.aspx?username=+username.Text,+,Response.Redirect(dataStr);,(,6,)在文件,WebForm1.aspx,的设计界面中,双击任意一个空白处,将自动产生,Page_Load,函数,在该函数中添加下列代码:,Label1.Text=Request.QueryStringusername;,Label2.Text=Request.QueryStringpassword;,11.3 ASP.NET,控件和对象,11.3.1 ASP.NET,控件,(,7,)运行文件,Default.aspx,,在文本框中输入用户名和密码。然后单击,【,登录,】,按钮,结果输入的用户名和密码被传送到文件,WebForm1.aspx,对应的页面中。,11.3 ASP.NET,控件和对象,11.3.1 ASP.NET,控件,从运行结果可以看到,,Default.aspx,页面中的数据已经成功传送到,WebForm1.aspx,页面中。,1.Response,对象,系统根据用户的请求(打开一个页面)自动创建一个,Response,对象。该对象用于向客户端传递或输出相关的信息,这些信息包括用户定义的内容、内容的报头、服务器的状态等。其常用的属性和方法包括:,Buffer,属性,该属性用于设置服务器端是否开启缓存功能。如果其值为,true,,表示开启,IIS,缓存功能,这时服务器会处理整个页面后再发给客户端,这样用户就可以看到连续的界面,当然这是以牺牲服务器的内存资源为代价;如果其值为,false,,表示不开启,IIS,缓存功能,这时服务器会一边处理一边发送,这时用户看到的界面可能是间断的。,Expires,属性,该属性的值表示页面的有效期,单位为分钟。如果用户请求其有效期满之前的相同页面,将直接读取显示缓冲区中的内容,这个有效期间过后,页面将不再保留缓冲区中的内容。,11.3 ASP.NET,控件和对象,11.3.2 ASP.NE,常用对象,Write(),方法,该方法用于向客户端输出指定的内容,由客户端解释执行。例如:,Response.Write(,今天的日期时间:,);,Response.Write(DateTime.Now.ToString();,Redirect(),方法,该方法用于重定向到指定的,URL,。例如:,Response.Redirect(/,重定向到“搜狐”主页,Response.Redirect(WebForm1.aspx);/,重定向到,WebForm1.aspx,页面,也可以在重定向的同时传递一些数据,例如,下列语句在重定向到,WebForm1.aspx,页面的同时传递字符串“,abc”,:,Response.Redirect(WebForm1.aspx?strname=+abc);,11.3 ASP.NET,控件和对象,11.3.2 ASP.NE,常用对象,AddHeade(),方法,增加,HTTP,头的集合中的元素。如:,Response.AddHeader(headname,headvalue);,Clear(),方法,该方法用于清空,IIS,缓冲区中的内容(,Response.Buffer,为,True,时)。,Flush(),方法,执行该方法时,将,IIS,缓冲区中的内容发给客户端(,Response.Buffer,为,True,时),对客户端来说,其作用就是刷新网页。,End(),方法,当程序执行到该方法时,将终止脚本的处理,起到终止程序继续运行的作用。,11.3 ASP.NET,控件和对象,11.3.2 ASP.NE,常用对象,2.Request,对象,当客户端浏览器向,ASP.NET,服务器端程序发出请求时,服务器端程序将针对请求的答应信息封装在,Request,对象中,客户端通过调用,Request,对象的属性和方法可以获取想要的信息。,Request,对象的常用属性和方法包括:,ApplicationPath,属性,返回服务器上,ASP.NET,应用程序的虚拟根路径(,string,类型)。,Path,属性,返回当前请求页的虚拟路径(包含请求页对应的,.aspx,文件名)。,PhysicalPath,属性,返回与请求的,URL,相对应的物理文件系统的绝对路径(包含请求页对应的,.aspx,文件名)。,11.3 ASP.NET,控件和对象,11.3.2 ASP.NE,常用对象,PhysicalApplicationPath,属性,返回当前正在执行的服务器应用程序的根目录在物理文件系统中的绝对路径。,ContentLength,属性,返回所获得内容的长度。,ContentEncoding,属性,返回所获得内容的编码方式。,ContentType,属性,返回所获得内容的类型。,Headers,属性,返回,HTTP,头的集合。,11.3 ASP.NET,控件和对象,11.3.2 ASP.NE,常用对象,HttpMethod,属性,返回客户端使用的,HTTP,数据传输的方法,如,GET,、,POST,或,HEAD,。,Url,属性,返回当前请求的,URL,。,Browser,属性,这个属性返回浏览器的有关信息,这些信息十分丰富,包括浏览器是否支持,ActiveX,控件、是否为测试版、浏览器的名称和版本号等信息。,UserHostAddress,属性,返回客户机的,IP,地址(,string,类型)。利用这个属性可以拒绝恶意用户的访问。,UserHostName,属性,返回客户机的,DNS,名称。,11.3 ASP.NET,控件和对象,11.3.2 ASP.NE,常用对象,QueryString,属性,该属性返回,URL,所带的附加信息项的集合,集合的类型为,System.Collections.Specialized.NameValueCollection,,通常用于实现页面之间的数据传递。,11.3 ASP.NET,控件和对象,11.3.2 ASP.NE,常用对象,例如,下面语句重定向到,WebForm1.aspx,页面,同时传递三个信息项:,Response.Redirect(WebForm1.aspx?s1=str1,在,WebForm1.aspx,页面中可以用下面三条语句分别获取这三项信息:,string s;,s=Request.QueryStrings1;,/,结果,s=str1,s=Request.QueryStrings2;,/,结果,s=str2,s=Request.QueryStrings3;,/,结果,s=str3,当然,也可以通过下标访问集合中的元素来获取信息项:,string s;,System.Collections.Specialized.NameValueCollection strs=Request.QueryString;,for(int i=0;i strs.Count;i+),s=strsi;,显然,,QueryString,属性通常与,Response,对象的,Redirect,属性搭配使用。实际上,例,11.2,中的程序,testWebControlApp,已经使用过这两个属性来实现页面之间的数据传递。,ServerVariables,属性,该属性是一个,string,类型对象的集合,它保存了服务器的有关信息。,11.3 ASP.NET,控件和对象,11.3.2 ASP.NE,常用对象,例如,我们可以用下列语句输出该属性包含的所有有关服务器的信息:,for(int i=0;i Request.ServerVariables.Count;i+),Response.Write(i+1).ToString()+,:,+Request.ServerVariablesi.ToString()+);,一般情况下是通过对象的名称来访问,ServerVariables,属性中有关服务器的信息。常用的包括:,Request.ServerVariablesLocal_Addr/,返回服务器的,IP,Request.ServerVariablesPath_Info /,返回被请求页的虚拟路径,Request.ServerVariablesPath_Translated/,返回被请求页的绝对路径,Request.ServerVariablesServer_Name/,返回服务器的名称,Request.ServerVariablesServer_Port/,返回服务器所使用的端口,Request.ServerVariablesUrl/,返回请求页的,URL,地址,3.Server,对象,Server,对象封装了服务器的相关信息,利用该对象提供的方法可以获取这些信息。,MapPath(),方法,返回与,Web,服务器上的指定虚拟路径相对应的物理文件路径,如,Server.MapPath(“WebForm1.aspx”),返回“,D:VS2008,第,11,章,test1test1WebForm1.aspx”,。,Redirect(),方法,该方法与,Response,对象的,Redirect(),方法具有相同调用方法。例如,下面两个语句的作用是一样的:,Response.Redirect(WebForm1.aspx?s1=str1,Server.Transfer(WebForm1.aspx?s1=str1,11.3 ASP.NET,控件和对象,11.3.2 ASP.NE,常用对象,HtmlEncode(),方法,对给定的字符串进行,HTML,编码,使得浏览器不再按照,HTML,语法对其进行解释,而是原样输出。例如,对于下面的两条语句:,Response.Write(,中国人,+);,Response.Write(Server.HtmlEncode(,中国人,)+);,11.3 ASP.NET,控件和对象,11.3.2 ASP.NE,常用对象,因此,如果想将,HTML,语法中的代码在浏览器输出,就需要使用,HtmlEncode(),方法。,4.Session,对象和,Application,对象,11.3 ASP.NET,控件和对象,11.3.2 ASP.NE,常用对象,共同点,:都是用于在服务器端保存数据和对象,它们都是,object,类型的数组,使用方法相同,可以通过对象名或下标引用其中的对象。通常用于保存用户信息、实现网站访问计数等功能。,不同点,:它们的作用范围不同,,Session,对象的作用范围是一次会话期内(简单来说,就是从打开网页到关闭网页这个时间段),只为一个用户所拥有;,Application,对象的作用范围则是,Web,服务器的一次生存期(从启动服务器到关闭服务器这个时间段),可为所有用户共享。,4.Session,对象和,Application,对象,11.3 ASP.NET,控件和对象,11.3.2 ASP.NE,常用对象,例如,下面两条语句的作用是将字符串“,Petter”,和“,C_sharp”,依次添加到,Session,对象中:,Sessionusername=Petter;,Sessionuserpass=C_sharp;,这两个字符串在,Session,中的“名称”分别为,username,和,userpass,,通过它们的名称即可访问相应的数据和对象。例如,对于下列语句:,Response.Write(Sessionusername+);,Response.Write(Sessionuserpass+);,执行后将输出:,Petter,C_sharp,当然,也可以通过下标来访问,Session,对象中的数据:,Response.Write(Session0+);,Response.Write(Session1+);,实际上,我们也可以用下列语句输出,Session,对象中的所有数据:,for(int i=0;i Session.Count;i+),Response.Write(Sessioni+);,4.Session,对象和,Application,对象,11.3 ASP.NET,控件和对象,11.3.2 ASP.NE,常用对象,【,例,11.3】,Session,对象和,Application,对象的区别。,创建,ASP.NET,应用程序,testSessionApplication,,然后在,Web,窗体的,Load,事件处理函数中添加有关实现计数功能的测试代码,结果如下:,protected void Page_Load(object sender,EventArgs e),if(SessionsCount=null),SessionsCount=1;,/,初始化,else,SessionsCount=(int)SessionsCount+1;,/,自加,1,Response.Write(Session,对象的计数结果:,+SessionsCount+);,if(ApplicationaCount=null),ApplicationaCount=1;,/,初始化,else,ApplicationaCount=(int)ApplicationaCount+1;,/,自加,1,Response.Write(Application,对象的计数结果:,+ApplicationaCount+);,4.Session,对象和,Application,对象,11.3 ASP.NET,控件和对象,11.3.2 ASP.NE,常用对象,执行该程序,然后对网页刷新若干次,如刷新两次:,然后关闭该网页,再重新执行该程序,显示的计数结果:,在关闭网页后,,Session,对象中的数据不复存在,每次打开网页时都要从头创建;而对,Application,对象来说,只要不关闭,Web,服务器,其中的数据一直被保存下来。,ASP.NET,数据库应用程序和,C#,窗体数据库应用程序的开发在原理上是一样的,不同的是,前者使用,Web,界面(网页),后者使用,C#,窗体界面。,因此,如果是开发基于,C#,语言的,ASP.NET,数据库应用程序,那么我们几乎可以直接利用第,10,章学过的内容来实现对数据库的操作。,11.4 ASP.NET,数据库应用程序,11.3.2 ASP.NE,常用对象,在,ASP.NET,数据库应用程序中,也可以使用,ADO.NET,中,Connection,对象来连接数据库。例如,下面语句将建立一个连接到数据库,MyDatabase,的,Connection,对象:,string ConnectionString=Data Source=mzq;Initial Catalog=MyDatabase;+,Persist Security Info=True;User ID=sa;Password=sql2008;,SqlConnection conn=new SqlConnection(ConnectionString);,11.4 ASP.NET,数据库应用程序,11.4.1,数据库的连接和数据浏览,【,例,11.3】,浏览指定数据表中的数据。,创建,ASP.NET,应用程序,ConnectionDB,,在,Web,窗体上添加一个,GridView,控件,并适当调整它的位置和大小;然后双击,Web,窗体,进入窗体的,Load,事件处理函数,在此函数中编写实现数据库连接和数据浏览功能的代码,结果如下:,11.4 ASP.NET,数据库应用程序,11.4.1,数据库的连接和数据浏览,protected void Page_Load(object sender,EventArgs e),string ConnectionString=Data Source=mzq;Initial Catalog=MyDatabase;+,Persist Security Info=True;User ID=sa;Password=sql2008;,SqlConnection conn=new SqlConnection(ConnectionString);,DataSet dataset=new DataSet();,/,创建数据集,/,创建数据提供者,SqlDataAdapter DataAdapter=,new SqlDataAdapter(SELECT*FROM student,conn);,/,填充数据集,dataset,,并为本次填充的数据起名“,student_table”,DataAdapter.Fill(dataset,student_table);,GridView1.DataSource=dataset;,GridView1.DataMember=student_table;,GridView1.DataBind();/,必须绑定数据,执行该程序:,11.4 ASP.NET,数据库应用程序,11.4.1,数据库的连接和数据浏览,上述代码已经正确连接了数据库,MyDatabase,,并获取和显示表,student,中的数据。,Insert,、,Delete,和,Update,语句属于数据操纵语句,在,ASP.NET,程序中可利用,ADO.NET,中的,Command,对象来执行它们。,【,例,11.4】,SQL,代码执行器。,在本例中,创建一个,ASP.NET,应用程序,它提供一个用于输入,SQL,代码的文本框,在该文本框中可以输入,Insert,、,Delete,或,Update,语句文本(一次只能执行一条语句),执行后将实时显示对应表中的当前数据。,该程序的开发步骤如下:,(,1,)创建,ASP.NET,应用程序,SQLSIDU,,在,Web,窗体上分别添加,GridView,、,Label,、,TextBox,和,Button,控件,并适当设置它们的属性、大小和位置,11.4 ASP.NET,数据库应用程序,11.4.2,对数据库的增、删、改操作,(,2,)在,Default.aspx.cs,文件中编写,【,执行,SQL,语句,】,按钮的事件处理代码及其他相关代码。核心代码如下:,11.4 ASP.NET,数据库应用程序,11.4.2,对数据库的增、删、改操作,public partial class _Default:System.Web.UI.Page,private string ConnectionString=Data Source=mzq;Initial Catalog=+MyDatabase;Persist Security Info=True;User ID=sa;Password=sql2008;,private SqlConnection conn=null;,private SqlDataAdapter DataAdapter=null;,private DataSet dataset=null;,private SqlCommand Command=null;,protected void Page_Load(object sender,EventArgs e),try,conn=new SqlConnection(ConnectionString);,dataset=new DataSet();,11.4 ASP.NET,数据库应用程序,11.4.2,对数据库的增、删、改操作,DataAdapter=new SqlDataAdapter(SELECT*FROM student,conn);,DataAdapter.Fill(dataset,student_table);,GridView1.DataSource=dataset;,GridView1.DataMember=student_table;,GridView1.DataBind();/,必须绑定数据,catch(Exception ex),Response.Write(,语法错误:,+ex.Message);,Response.End();,finally,if(conn!=null)conn.Dispose();,if(dataset!=null)dataset.Dispose();,11.4 ASP.NET,数据库应用程序,11.4.2,对数据库的增、删、改操作,protected void Button1_Click(object sender,EventArgs e),/【,执行,SQL,语句,】,string strSQL=TextBox1.Text;,try,conn=new SqlConnection(ConnectionString);,Command=new SqlCommand(strSQL,conn);,conn.Open();,int n=Command.ExecuteNonQuery();/,执行,SQL,语句,Response.Write(alert(,有,+n.ToString()+,记录受到影响!,););,catch(Exception ex),Response.Write(,语法错误:,+ex.Message);,finally,if(conn!=null)conn.Close();,if(Command!=null)Command.Dispose();,Page_Load(null,null);/,显示表中的数据,11.4 ASP.NET,数据库应用程序,11.4.2,对数据库的增、删、改操作,执行该程序:,11.5 Web,服务的应用,11.5.1,什么是,Web,服务,Web,服务是,ASP.NET,应用程序的另一种编程模型,它是基于,HTTP,、,SOAP,、,WSDL,等协议、提供在异构网络环境下提供远程服务的一种应用程序。,Web,服务(,Web Service,)与前面介绍的组件相似,它也是向外部应用程序提供对其进行调用的,API,。与组件不同的是,组件必须与调用它的应用程序安装在同一台机器上,而,Web,服务可以安装在任何一台服务器上,只要应用程序能够通过网络访问到这台服务器即可。,Web,服务的主要作用是提供安全的信息共享服务。我们要通过网络向客户端用户提供一些共享数据,但出于安全或其他原因我们一般不会公开数据库的密码。这样,用户就无法真正共享这些数据,而利用,Web,服务则可以在不需要提供密码并且在确保安全的前提下提供一个数据共享的访问接口。从这个意义看,,Web,服务是各种,Web,应用程序实现信息共享的安全访问接口。,11.5 Web,服务的应用,11.5.2 Web,服务的创建,Web,服务的创建是通过创建,ASP.NET Web,服务应用程序来实现的。作为例子,下面介绍一个,Web,服务的创建方法。,(,1,),VS 2008,中选择菜单“文件”,|“,新建”,|“,项目”命令,在打开的“新建项目”对话框中,选择“,Visual C#”,项目类型、选择“,ASP.NET Web,服务应用程序”模板来创建,ASP.NET Web,服务应用程序,程序名设置为,MyFirstWebService,:,11.5 Web,服务的应用,11.5.2 Web,服务的创建,(,2,)单击,【,确定,】,按钮后创建,ASP.NET Web,服务应用程序,MyFirstWebService,,这时会出现如下图所示的界面。,11.5 Web,服务的应用,11.5.2 Web,服务的创建,(,3,)在代码编辑窗口中再增加两个,Web,服务方法:,add(),和,sub(),,结果类,Service1,的代码如下:,public class Service1:System.Web.Services.WebService,WebMethod,public string HelloWorld(),return Hello World;,WebMethod,public int add(int x,int y),return x+y;,WebMethod,public int sub(int x,int y),return x-y;,11.5 Web,服务的应用,11.5.2 Web,服务的创建,(,4,)执行该程序,结果如图,11.19,所示。其中,“,localhost:2043/Service1.asmx,”,表示,Web,服务,Service1,所在的,URL,地址。,11.5 Web,服务的应用,11.5.2 Web,服务的调用,1.,在窗体应用程序中调用,Web,服务,(,1,)创建窗体应用程序,WinAppService1,,在窗体上添加三个,TextBox,控件、两个,Button,控件和两个,Label,控件,并适当设置它们的属性、大小和位置:,11.5 Web,服务的应用,11.5.2 Web,服务的调用,(,2,)然后添加准备要调用的,Web,服务。方法是:选择菜单命令,“项目”,|“,添加服务引用”,,然后在打开的“添加服务引用”对话框的地址框中设置,Web,服务所在,URL,地址,localhost:2043/Service1.asmx,,接着点击,【,前往,】,按钮,并在对话框底部的“命名空间”框中设置命名空间的名称(该名称将以后的代码中引用):,11.5 Web,服务的应用,11.5.2 Web,服务的调用,(,3,)在单击,【,确定,】,按钮后,为,【,执行加法,】,和,【,执行减法,】,按钮编写事件处理代码:,private void button1_Click(object sender,EventArgs e),/,加法,int x,y,z;,x=Convert.ToInt16(textBox1.Text);,y=Convert.ToInt16(textBox2.Text);,ServiceReference1.Service1SoapClient addobj;,addobj=new ServiceReference1.Service1SoapClient();,/Web,服务对象,z=addobj.add(x,y);,/,调用,Web,服务对象的方法,textBox3.Text=z.ToString();,private void button2_Click(object sender,EventArgs e),/,减法,int x,y,z;,x=Convert.ToInt16(textBox1.Text);,y=Convert.ToInt16(textBox2.Text);,ServiceReference1.Service1SoapClient addobj;,addobj=new ServiceReference1.Service1SoapClient();,/Web,服务对象,z=addobj.sub(x,y);,/,调用,Web,服务对象的方法,textBox3.Text=z.ToString();,11.5 Web,服务的应用,11.5.2 Web,服务的调用,执行该程序:,结果表示,程序,WinAppService1,已经成功调用了,Web,服务,Service1,。,11.5 Web,服务的应用,11.5.2 Web,服务的调用,2.,在,ASP.NET,程序中调用,Web,服务,在调用,Web,服务问题上,,ASP.NET,应用程序和窗体应用程序所使用的方法是一样的,开发过程也十分相似,包括使用同样的方法添加服务引用。,这里,我们开发
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服