ImageVerifierCode 换一换
格式:PPT , 页数:60 ,大小:1.37MB ,
资源ID:6249590      下载积分:14 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/6249590.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(ASPNET快速入门PPT.ppt)为本站上传会员【w****g】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

ASPNET快速入门PPT.ppt

1、,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,北京传智播客教育,*,内容:,掌握基于,ASP.Net,的,Web,开发,,,B/S,结构原理、,ASP.Net,内部原理,、,状态管理(,Cookie,、,Session,、,ViewState,等),、,数据验证,、普通,ASP.Net,控件、,母版,、,ListView/Repeater,等数据绑定控件、,AJAX,、缓存,、,Membership,、导航、自定义控件等。,目标:,以应用为目标,能够使用,ASP.Net,开发常见的动态网站功能

2、,并且和,Dom,、,JQuery,等客户端技术结合进行网站的开发。,参考书:,ASP.NET 3.5 揭秘,注意:,原理先行,对于,ASP.Net,来说弄明白了原理才能学得更快。会讲一些原理性的非常规用法代码,,用,标识,不要学这种写法。,Java,班先讲,Servlet,再讲,JSP,,,.Net,也是先讲,HttpHandler,再讲,WebForm,。,1,北京传智播客教育,课程安排,第一阶段:原生控件和,.NET,内部对象,1,、目标:从网络的角度介绍,ASP.NET,的工作原理,并对,ASP.NET,中的几个核心对象与,HTTP,之间的关系进行分析。掌握,WEB,运行请求响应原理,

3、核心对象及服务器页面生命周期。,2,、项目:,GSSMS【,绿色简单学生管理,-,原生版,】,第二阶段:服务器控件提高开发效率,1,、目标:掌握服务器端控件的使用及控件生命周期。,2,、项目:,GSSMS【,绿色简单学生管理,-,服务器控件版,】,第三阶段:,ASP.NET,高级进阶,1,、目标:掌握缓存,/Ajax/Json/,母板页,/,错误页,/,网站部署,/CKFinder,2,北京传智播客教育,我们怎么看到网站的?,1,、在地址栏输入地址敲回车后浏览器到底做了什么事情?,3,北京传智播客教育,服务器与浏览器语言,1.,浏览器与服务器语言,浏览器,只负责解释执行,html+css+ja

4、vascript,代码,服务器,可执行服务器端语言:,.NET,JAVA,.,分别由不同的,运行,环境,执行代码,(Framework,JVM),2.,静态页面,(html),和动态页面,(aspx),的区别,?,比如说新闻列表页面,(,邮箱列表,),。,浏览器,:htmljavascriptcss,服务器,:,?HTML(.html),.Net(.aspx.ashx)JAVA(.jsp)PHP(.php),编写代码演示静态页面和动态页面,4,北京传智播客教育,文件扩展名,说明,.ashx,一般处理程序,,,ASP.NET,核心程序,但一般使用,.aspx,.aspx,常用程序,用于创建网页和

5、对网页进行编程的核心文件类型,(,前台文件,),,和,.aspx.cs,文件配套使用,.aspx.cs,常用程序,用于编写大量的,c#,业务代码,和,.aspx,配套使用。,.ascx,指明一个,ASP.NET,用户定义控件,.asax,包含,ASP.NET,应用程序级事件的事件语法,.config,配置文件,用于设置应用程序的各种属性,.asmx,供宿主,Web,服务在本地或远程使用,ASP.NET,里的常用文件,(,重点,),下面来编写一个登录的动态页面让各位加深体会,5,北京传智播客教育,登录流程,用户打开登录页面,填入用户名密码,点击,【,登录,】,按钮,,浏览器,将用户输入的,用户名

6、,、,密码,发送,给网站服务器,网站服务器让负责处理登录,请求,的,ASP.Net,程序来处理这个登录请求,处理程序判断用户名、密码是否正确,然后将判断结果,返回,给浏览器。,开发一个登录页面需要做两个工作:,1.,显示在浏览器中的页面、,Dom,特效,和,C#,代码没关系,也就是,前端,(,前台,),页面,相当于这个页面要生成的,HTML,代码模板,;,2.,处理浏览器请求的服务器端代码,,C#,代码,也就是,后台代码,。,画图区分第一次请求和之后的提交,6,北京传智播客教育,什么是,ASP.Net,ASP.Net,是一种动态网页技术,,在服务器端运行,.Net,代码,动态生成,HTML,。

7、,可以使用,JavaScript,、,Dom,在浏览器端完成很多工作,但是有很多工作无法在浏览器端完成,比如存储数据、访问数据库、复杂的业务逻辑运算、安全性要求高的逻辑运算等。,服务端控件和,HTML,控件的生成关系:在,aspx,页面中可以使用服务端控件,简化开发。但,浏览器只认,html,,因此在包含,服务端控件的页面被请求时,页面中的服务器端控件会组装成对应的,HTML,控件代码字符串,,如:,TextBox,。,ASP.Net,:,WebForm,、,MVC,。,服务器控件不是新的控件,在浏览器端仍然是生成,html,标签。服务端控件虽然好用,但是也有缺点,并不是什么地方用服务器端控件

8、都好,具体后面讲。,7,北京传智播客教育,Web,应用程序和网站,WebApplication,(,Web,应用程序)和,WebSite,(网站)的区别,,WebSite,是为了兼容从,ASP,转过来的开发人员的习惯而存在的,用起来简单,比如不需要创建命名空间、,CS,代码修改以后不需要重启就能看到变化(无论是,WebSite,还是,WebApplication,,修改,aspx,都不需要重启。,WebApplication,每次修改以后点击,【,生成解决方案,】,也能立即看到修改效果,),但是不利于工程化开发,比如代码出错不容易发现,代码不分命名空间。开发技术上没有任何区别,只是开发、调试习

9、惯不同而已。,方便开发不用每次调试都设定起始页,在项目的选项中设定,【Web】,启动操作当前页面,这样当前激活的页就是起始页。,此次课程知识使用,WebSite,;,8,北京传智播客教育,ASP.Net,工作概要流程图,9,北京传智播客教育,练习,练习:做一个加法计算器,步骤:,1.,新建网站,2.,添加新建项,-Web,窗体,(Cul.aspx)3.,打开,Cul.aspx,,进入设计视图,从工具栏选择控件拖入到页面适当的位置,(,可以使用适当的,HTML,代码布局,-Table)4.,双击按钮,生成点击事件,(,和,WinForm,程序生成点击事件一样,)5.,在按钮点击事件中编写代码,接

10、下来进入核心程序:一般处理程序,10,北京传智播客教育,第一个网站,-,新建网站,11,北京传智播客教育,第一个网站,注意:,1.,选择,C#,2.,空网站,3.,文件夹,12,北京传智播客教育,第一个网站,-,添加新项,在网站上点击右键,选择,【,添加新项,】,:,13,北京传智播客教育,第一个网站,-,选择一般处理程序,14,北京传智播客教育,第一个网站,-,编写代码,FirstShow.ashx(,一般处理程序,),15,北京传智播客教育,第一个网站,-,在浏览器查看,1.,在要查看的文件上单击右键,选择 在浏览器中查看。,2.,注意到屏幕右下角状态栏中出现了一个小图标:,Cassini

11、,服务器是,vs,内置的开发用的小型服务器程序,我们待会在浏览器看到的页面就是由它处理并返回的。,16,北京传智播客教育,第一个网站,-,访问结果,显示:,终于降临到这个神奇的国度了!,17,北京传智播客教育,刚才俩家伙做了什么?,(,请求响应的过程,),1.,用户在浏览器地址栏输入:,localhost:80777/FirstShower.ashx,2.,服务器接收到用户的请求,发现是请求,.ashx,文件,便将请求交给,framework,执行,,fw,找到对应的文件,login.ashx,,执行后将生成的字符串,(,通常是,html+css+javascript,格式,),返回给浏览器。

12、,3.,浏览器接收到服务器返回的数据,并按照语法解释执行,以界面的方式展示给用户看到。,(3.1,此时如果,html,等代码中包含外部文件,则再次发送单独请求服务器相应文件数据,),First.ashx,那如何理解,B/S,结构的原理呢?最好的办法就是我们自己做一个服务器程序,18,北京传智播客教育,浏览器和服务器到底是什么东东?,如果我们自己来编写一个浏览器和服务器程序,该怎么做?,就好像打电话一般,咱们用中文还是用英文?,(,约定通信的语法,),准备好要说的话,(,按照语法准备要传输给对方的数据,),拨通电话,(,建立连接,),通过电话机,/,电话线说话,(,通过互联网传输数据,),注意:

13、两个人都得拿对话筒,(,通信双方关注接收对方的数据,),总结:,浏览器:一个可以通过,HTTP,协议向服务器发送各种请求,并对从服务器发来的超文本信息和各种多媒体数据格式进行解释、显示和播放。,服务器:一个管理资源并为用户提供服务的计算机软件。,交互时使用,HTTP,协议。,只能被浏览器请求吗?,19,北京传智播客教育,HTTP,请求详解图,先来结合刚才的网页程序了解一下,HTTP,请求过程,20,北京传智播客教育,OurHttpServer-,咱自己的服务器程序,浏览器和服务器,本质上,就是两个使用,Socket,进行基于,HTTP,协议,的通,信的两个,应用程序,(,我们使用,WinFor

14、m),。,咱自己做个服务器程序要解决的问题,:,-1.,怎么接收浏览器的请求?接收以后怎么理解?,0.,怎么向浏览器发送响应?发送后浏览器怎么理解?,1.,如何对静态页面,(html/css/javascript),的请求做出响应?,2.,如何对动态页面,(ashx/aspx),的请求作出响应?动态文件可是有很多的,使用什么方式来调用呢?,3.,如何对图片文件,(jpg/gif),的请求作出响应?,4.,如何保存状态?,21,北京传智播客教育,OurHttpServer-,咱自己的服务器程序,解决思路:,1.,使用套接字进行数据交换。,2.,使用,HTTP,协议,(,到底什么是,HTTP,协议

15、?,),的数据,双方按照此协议解释理解接收到的数据。,3.,直接读取静态文件的数据并通过套接字发送。,4.,对于动态文件的请求,可以通过分析请求页面,并反射所对应的类,并通过接口调用类的方法。,那么,在,ASP.NET,中,是怎么解决这些问题的?,咱来依次举个例子。,大家自己看,10,分钟。,22,北京传智播客教育,HTTP,协议消息结构图,浏览器,服务器,请求报文,响应报文,23,北京传智播客教育,FirstShow.ashx,ashx,?,HttpHandler(,一般处理程序,),请求上下文对象,(,此次请求处理要使用到的信息和对象都在里面,),被访问时被调用的处理方法。,是不是想起,:

16、,窗体加载事件了,:,void,Form1_Load,(object sender,EventArgs e),服务器响应属性,(,调用,HttpResponse,对象,),是否重用,(,暂时用不着,不用理,),重要接口,24,北京传智播客教育,HttpHandlers,在,A,处理的位置,(,终点,),请求管道,(,由,N,个过滤器组成,),把处理过程看成一个黑盒子,25,北京传智播客教育,我就知道你们想听,.,26,北京传智播客教育,一般处理程序,(HttpHandler),一般处理程序,(HttpHandler),:是一个实现类,System.Web.IHttpHandler,接口的类。任

17、何一个实现了,IHttpHandler,接口的类都能作为一个外部请求的目标程序。,先演示一下,ASPX,页面。我们可以把一个,HttpHandler,看作是一个请求的终点。最常见的是,ASP.NET,页面。当用户请求一个,.aspx,页面时,请求将被页面交给页面,Handler,处理。,咱可以通过创建一个我们自己的,HttpHandler,程序来生成浏览器代码发送回客户端浏览器。,如何接收和向发送客户端数据?,27,北京传智播客教育,服务器怎么接收和发送数据?,服务器怎么接收?,服务器怎么发送?,28,北京传智播客教育,ASP.NET,系统对象,系统对象,ASP.NET,Page,指向页面自身

18、的方式。作用域为页面执行期。,Request,读取客户端在,Web,请求期间发送的值,Response,封装了页面执行期返回到,HTTP,客户端的输出,Applicatio,n,作用于整个程序运行期的状态对象,Session,会话期状态保持对象,用于跟踪单一用户的会话。,Cookie,客户端保持会话信息的一种方式,Server,提供对服务器上的方法和属性的访问,在一般处理程序里,通过,ProcessRequest,方法的参数,HttpContext,context,调用,29,北京传智播客教育,一、浏览器提交数据方式?,(,例,),1.,表单:,(,数据藏在请求报文体中,格式,:txtname

19、=james&txtpwd=123),2.,地址栏的,URL,参数,:,键,值,对,127.0.0.1/,login.ashx?,txtname1,=,jordan,&,txtpwd1,=,123,二、服务器如何获取浏览器提交的数据?,1.,获取表单数据:,context.Request.,Form,“,txtname,”,2.,获取,URL,参数:,context.Request.,QueryString,“,txtname1,”,三、服务器如何向浏览器输出数据?,context.,Response.Write(“,我是从服务器输出到浏览器的数据!:)”,);,Request,(HttpRe

20、quest)&,Response,(HttpResponse),注意:,使用表单提交时必须为控件设置,name,画图,浏览器请求属性,30,北京传智播客教育,增删查,1.,列表,2.,删除,3.,新增,31,北京传智播客教育,32,北京传智播客教育,Request(HttpRequest),常用成员,页面间传递数据的几种方式?,如何获取传递过来的数据呢?,Request,Form,属性,Params,属性,QueryString,属性,获取通过,URL,路径传来的数据,获取通过表单提交传输的数据,客户端提交的数据集合,代码演示各种传值方式,33,北京传智播客教育,Response(HttpRe

21、sponse),常用成员,Response,允许开发人员对当前页面的输出流进行操作,Response,Redirect,方法,Write,方法,直接在页面上输出内容,重定向到另外一个页面,Response.Redirect(www.,itcast,.c,n,);,Response.,Write,(,Hello,China!,);,End,方法,结束输出,34,北京传智播客教育,自己动手写动态网站,入门,1.html,新建一个,【,一般处理程序,】,入门,1.ashx,,,ProcessRequest,中写,context.Response.ContentType=text/html;,stri

22、ng username=context.Requestusername;,context.Response.Write(username+,你好,+Guid.NewGuid();,每当用户请求访问,ashx,页面的时候,,ProcessRequest,方法就会被调用,在这里通过访问,context.Request,获得访问者的请求参数等。然后在,ProcessRequest,中通过,context.Response,向浏览器发回数据给浏览器。,ProcessRequest,结束之时就是服务器为这个浏览者本次访问服务完成之时,浏览器向服务器端提交数据,被提交数据的表单(,input,、,sele

23、ct,、,textarea,等)放到,form,中,,form,中通过,action,属性设定表单被提交给哪个页面,为了在服务端取出表单项的值,需要在,HTML,中为表单元素设定,name,属性,注意,id,是给,JS,操作,Dom,用的,,name,才是提交给服务器用的。在服务器端用,context.Requestusername,来根据表单项的,name,来获得提交的属性值。通过,context.Response.Write,向浏览器输出处理后的显示,HTML,内容。,35,北京传智播客教育,注意,当我们点击,【,提交,】,按钮以后是浏览器将用户填写的文本框等控件中的值“提取”出来发送给服

24、务器,而不是服务器来读取用户填写的这个页面。哪些标签的哪些值会被提交给服务器呢?将用户填写的内容提交到服务器有如下几个条件:,只能为,input,、,textarea,、,select,三种类型的标签,。只有,input(,文本框、,CheckBox,等,),用户才可能填写值,,、,、,等标签仅供显示用,没有提交到服务器的必要。,只有,value,属性的值才会提交给服务器,。以,input,标签为例,,input,标签有,title,、,type,、,disabled,等属性,但是这些属性都是供显示用的,用户并不能修改,只有,value,属性才是用户输入的属性,因此只有,value,属性的值才

25、会被提交到服务器。,标签必须设定,name,属性,。学习,Dom,的时候我们知道如果要通过,JavaScript,操作标签,必须为标签设定,Id,。如果要将标签的,value,属性值提交到服务器,则必须为标签设定,name,属性,提交到服务器的时候将会以,“,name=value”,的键值对的方式提交给服务器,多个键值对之间用,&,分割,。除了单选按钮等少数标签之外,大部分标签的,name,的值不能重复。,name,是给服务器用的,,id,是给,Dom,用的。对于,RadioButton,,同,name,的为一组,选中的,RadioButton,的,value,被提交到服务器。,放到,form

26、,标签内。只有放到,form,标签内的标签才可能会被提交到服务器,,form,之外的,input,等标签被忽略。,36,北京传智播客教育,“返回”提交页面,如果还想返回提交页面,那么需要自己绘制。,context.Response.Write(,);,并没有真的返回提交页面,只是看起来像罢了。,37,北京传智播客教育,“返回”提交页面改进版,为了请求、返回的内容一样,将页面源码放到字符串常量中,模板中有一些待填值的占位符,第一次进入页面的时候就直接访问,ashx,,读取,htm,模板,将待填值占位符设置为空,然后输出到浏览器。,为了区分是第一次直接进入页面还是点击提交以后重新进入,ashx,,

27、在,form,中增加一个隐藏字段:,,如果能够从,Request,中读取到,ispostback=true,就说明是点击提交以后重新进入,ashx,,否则就是第一次进入,ashx,。,ispostback,就是一个标志位。,实现思路:在,ProcessRequest,中首先从,Request,中读取,ispostback,,如果读取到,true,,说明是提交进入的,就加载模板,并且进行占位符用计算后的值替换,否则就将模板中的占位符清空直接输出给浏览者。,占位符找一个特殊的不会和其他字符串冲突的就行。,代码见备注,刚进入,hello2.ashx,的时候是直接向浏览器输出内容,用户在输出的内容中填

28、入数值,再点击提交,服务器就知道,“提交回来了”(,PostBack,),Http,是请求、响应的模型,服务器不会来读取浏览器的网页,能够得到的就是客户端网页提交过来的数据。,如果访问,Hello2.ashx,,多次点击刷新,都是“直接进入”,如果提交表单,再多次点击刷新,都是“提交进入”,疑?讨论:文本框上次输入的值在提交表单后又显示出来并不是理所当然的,是开发人员帮着读取提交上来的值然后渲染上去的。这就是,ASP.Net,中,ASPX,和,CS,的关系。,IsPostBack,是依赖于,ViewState,的,所以禁用了页面的,ViewState,,,IsPostBack,永远为,Fals

29、e,。演示,aspx,中的,IsPostBack,在刷新、重新输入地址等情况下的值。,不是服务器去读取模板,htm,中的内容,而是读取用户的提交,比如可以直接敲入网址。可能的错误:先,convert,成,int,,再判断,tostring,是否为空。,IHttpHandler,就是一个很单一的“读取请求参数、发回响应给浏览器”的处理程序,没有其他“超能力”,38,北京传智播客教育,表单提交方式:,Get,与,Post,还可以设定,的,method,属性指定表单提交方式,,get,(默认值)是通过,URL,传递表单值,,post,传递的表单值是隐藏到,http,报文中,,url,中看到不。,ge

30、t,和,post,的区别,(,常考,),:,get,是通过,url,传递表单值,,post,通过,url,看不到表单域的值;,get,传递的数据量是有限的,如果要传递大数据量不能用,get,,比如,type=“file”,上传文章、,type=“password”,传递密码或者,发表大段文章,,post,则没有这个限制;,post,会有浏览器提示重新提交表单的问题,,get,则没有,(,加分的回答,),。对于,Post,的表单重新敲地址栏再刷新就不会提示重新提交了,因为重新敲地址就没有偷偷提交的数据了。,Post,方式的正确的地址很难直接发给别人。,Get,方式,URL,数据格式。服务端文件名

31、后跟着“,?”,,由于客户端可能向服务器端提交多个键值对,键值对之间用“,&”,进行分割,如果,URL,中有汉字、特殊符号等,则需要对,URL,进行编码。,表单域只有设定了,name,的才会被提交给服务器(用,get,方式看的清楚)。如果给,submit,按钮设定,name,,那么按钮的,value,也会被提交给服务器,【,刷新,】,。,对比查看,post/get,报文数据,39,北京传智播客教育,数值自增,实现,input,的自增:点击按钮,input,中的值自动增加,代码见备注。点击刷新就一直是值不变,只有点击提交才会变,,分析原理,。用开发人员工具篡改文本框的值自增就从新的值开始了。,使

32、用,aspx,重写,input,的自增。,练习:加法计算器。常见错误:把,htm,设置成了起始页。,type=submit,才会自动提交表单,,type=button,不会自动提交。从,ashx,启动和从,htm,启动的区别,为什么单使用,div,在服务器取不出来值呢?因为不是服务器来读取客户的网页,而是浏览器收集客户,在,表单中输入的字段,然后形成请求参数发给服务器处理程序,由于没有把,div,当前的,innerText,发给服务器,所以服务器无法得知当前的值。也不要幻想有办法能将,div,的,innerText,提交给服务器,,因为只有设定了,name,的,input,、,textarea

33、,、,select,的,value,属性值才会被提交给服务器。,实现,div,内文本的自增。因为服务器不记得上次给浏览器的值是什么,而且不像,input,那样会将上次的值重新提交回来,因此浏览器需要用一个隐藏字段将上一次的值保存下来。代码见备注,http,无状态,每次请求都是由一个新的页面对象来处理请求。如果把,value,搞成,static,可以实现,但是两个用户访问的话就会串了。而用,Input,方式的话两个人各自点各自的,不会互相影响。,非表单元素无法将客户端的元素值传递给服务器端,即使是表单元素也只能传递,value,值,对于其他属性值比如背景颜色、大小等也是无法传递的,因此对于这些值

34、都要存在隐藏字段中。这就是,ASP.Net,中,ViewState,的实现原理。,其实,div,中的只是起到显示作用而已,使用,IE,的“开发人员工具”修改,div,的,innerText,,然后点击按钮发现值并没有按照我们修改以后的递增。而修改,input,版本的则有效果。,每次都重新构建页面代码是不是很麻烦?,40,北京传智播客教育,HttpHandler,实现图片上传,一、浏览器端,1.,表单元素使用 文件选择框,控件。,2.,表单设置,enctype,二、服务器端,1.,服务器接收客户端上传的文件使用,Request.Files,属性。,2.,使用,HttpPostedFile,的,S

35、aveAs,方法将图片保存在服务器。,41,北京传智播客教育,HttpHandler,实现动态图片输出,HttpHandler,是对请求的响应,可以输出普通的,html,内容,也可以输出图片、也可以输出一个文件(下载),输出一幅动态创建的图片(能看懂就可以),案例,1,:图片中显示访问者信息,案例,2,:填入朋友的姓名就能生成恶搞的图片链接,案例,3,:绘制图片水印,练习:制作简单验证码图片,网上看到的注册、登录时候的验证码也是动态生成的图片、,55.la,也是这样实现的原理。,42,北京传智播客教育,HttpHandler,实现文件下载,如果,HttpHandler,输出的是,html/tx

36、t/jpeg,等类型的信息,那么浏览器会直接显示,如果希望弹出保存对话框,则需要添加,Header,string encodeFileName=HttpUtility.UrlEncode(,“,生活大爆炸,117.avi,”,);Response.AddHeader(,“,Content-Disposition,”,string.Format(,“,attachment;filename=,”,0,“”,encodeFileName);,其中,filename,后为编码后的文件名。,filename,段为建议的保存文件名。,练习:使用,Handler,为学员列表添加,“,下载学员附件,”,功能

37、,43,北京传智播客教育,ASP.NET,第一阶段的第一部分结束,ASP.NET,第一部分主要内容:,主要内容:,1.,浏览器,/,服务器交互原理,(,请求,/,响应的过程,),。,2.,浏览器,-,服务器,-IIS-FrameWork(aspnet_isapi.dll)-IHttpHandler,的处理流程。,3.Web,网站和,Web,应用程序的区别,(,开始时和发布后,),4.【,一般处理程序,】,的使用,(,增删改查,),和上传文件,/,动态输出文件数据,5.,上下文对象,(HttpContext),的 重要属性:,Response(,负责向客户端输出,),Request(,包含所有客

38、户端提交的数据,),注意:不要老想着晚上熬夜学习,因为大部分人会有产生一种消极的时间心里暗示“玩一会儿吧,反正晚上有时间。”养成健康的生活习惯,逼自己在,20:30,前把代码方面的工作做完,提高效率。,44,北京传智播客教育,HttpHandler,实现文件下载,如果,HttpHandler,输出的是,html,、,txt,、,jpeg,等类型的信息,那么浏览器会直接显示,如果希望弹出保存对话框,则需要添加,Header,:,string encodeFileName=HttpUtility.UrlEncode(,“,过滤词,.txt,”,);Response.AddHeader(,“,Con

39、tent-Disposition,”,string.Format(,“,attachment;filename=,”,0,“”,encodeFileName);,其中,filename,后为编码后的文件名。,filename,段为建议的保存文件名。,http,报文中普通方法看不到的那些东西就是,“,报文头(,Header,),”,练习:从数据库用户表导出数据到,txt,文件,让用户下载。,练习:用户表增加一个级别字段。只有登录用户才能下载,images,下的图片文件(,Session,中标识是否登录),如果用户没有登录则首先重定向到登录界面让用户登录,用户登录成功则跳转到下载列表页面,下载链接

40、固定写好即可。如果登录用户是普通用户则在图片左上角加上,“,免费用户试用,”,的字样。,“,安全退出,”,。画页面流程。,常见问题:,e.preventDefault;,或者没写造成,span,闪的原因?不会保留上次设置的静态值。讲用静态页面只是讲原理,实际用大部分还是,aspx,。,Single,是怎么回事?,练习:给上面的程序加上登录验证码。,todo,:,ShowMsg,页面,3,秒自动跳转;用户不能直接访问,privateimages,下的图片;如果程序源代码开放以后造成的程序的漏洞。,45,北京传智播客教育,HttpHandler,实现文件下载,2,1,、新增需求:,增加一个,Sho

41、wMsg.aspx,页面,接受,Msg,、,Url,两个参数,分别是显示的消息和,“,点击继续,”,的链接地址。,2,、登录以后将登录的用户,Id,存入,Session,。,3,、在看图片页面的,PageLoad,总判断,Session,是否有登录用户,Id,,如果没有的话则重定向到,ShowMsg.aspx,页面,要求用户登录。,Session,只有和服务器长期不交互才会销毁。,todo,:,ShowMsg,页面,3,秒自动跳转;给上面的程序加上登录验证码。,用户不能直接访问,privateimages,下的图片;如果程序源代码开放以后造成的程序的漏洞。,怎么不能在,alert,后,Redi

42、rect,?怎么样才能在,alert,以后重定向?,服务端控件也可以用,Request,“,TextBox1,”,方式取值,虽然没必要,46,北京传智播客教育,WebForm1,如果每次输出网页都直接用,HttpHandler,的话太痛苦了,所以一般生成,html,的时候都直接创建,aspx,(,Web,窗体,,WebForm,)。,WebForm,分为两个文件,aspx,和,aspx.cs,,,aspx,是页面模板,是页面描述文件,就是,html,的内容,和,aspx,结合的更好,不用像一开始那样程序员自己去填充模板,控件都是定义在,aspx,中,内联的,JavaScript,、,CSS,也

43、是写在,aspx,中的,服务端的,C#,代码是定义在,aspx.cs,中。,aspx,控件页面长相,,cs,控制程序逻辑,这种“前,aspx,后,cs”,的方式就被称为,CodeBehind,。,aspx,就是模板引擎,不需要再去寻找第三方的模板引擎。,浏览器如果报错“*行错误”,不要看,aspx,,要看生成的源代码,记事本如何定位行号,,【,转到,】,47,北京传智播客教育,WebForm2,cs,可以调用,aspx,中的控件,,aspx,中也可以访问,cs,中定义的字段、函数,还可以编写复杂的,C#,代码,,for,等所有,C#,代码都可以写在,aspx,中(不推荐),前面,后面,在,当前

44、位置输出表达式的值的时候使用,,不要丢了,=,,相当于在当前位置调用,Response.Write(UserName),使用的函数、代码相当于在这个位置调用函数、执行代码。注意,aspx,中调用,cs,的成员级别必须是,protected,或者,public,,不能是,private,的。,中的代码是运行在服务器端的,是,C#,语法,在服务端运行完成才输出到浏览器,其他部分是运行在浏览器端的,是,html,、,JavaScript,语法。,48,北京传智播客教育,HttpHandler,的无状态,一个浏览者发出的请求都是由实现了,IHttpHandler,接口的对象进行响应,由于下次访问不一定

45、还是上次那个对象进行响应,上次响应完毕对象可能已经被销毁了,写的类变量值早就不存在了,因此,不要将状态信息保存到类变量中,。,编写一个,ashx,private int i;,public void ProcessRequest(HttpContext context),context.Response.ContentType=text/plain;,context.Response.Write(i+);,多次刷新我们发现,变量根本不会记忆上次的值。,如果每次响应都创建一个对象的话会非常消耗资源,因此服务器可能会对于多个请求重用一个对象,这样如果实现,IHttpHandler,的,IsReus

46、able,方法返回,true,,那么就表示这个,HttpHandler,允许对象重用。一般返回,true,就可以。,49,北京传智播客教育,投票页面,实现一个投票页面,页面中有“赞成”、“反对”两个按钮,点击“赞成”按钮则增加赞成数,并且在“赞成”按钮上显示最新的赞成个数,“反对”按钮同样如此。(*)同一个,IP,在,24,小时之内只能投票一次。讨论方案。,50,北京传智播客教育,aspx,、,cs,、,dll,之间的关系(*),聊、考,CodeBehind,的时候可以顺带吹的点。,在,WebForm,的页面中执行下面的代码,Response.Write(this.GetType()+);,R

47、esponse.Write(this.GetType().Assembly.Location+);,Response.Write(this.GetType().BaseType+);,Response.Write(this.GetType().BaseType.Assembly.Location+);,发现当前执行页面的类名是,ASP.webform1_aspx,这样的类名,父类才是,ASPNETTest1.WebForm1,使用,Reflector,打开这个临时,dll,,反编译这两个类,发现,ASPNETTest1.WebForm1,是在,VS,中编写的,aspx.cs,类,而,ASP.w

48、ebform1_aspx,则是一个继承自,ASPNETTest1.WebForm1,的子类,,ASP.webform1_aspx,代码是根据,aspx,内容动态生成的构建网页内容的类。综上,,aspx,最终也会生成一个类,这个类是继承自,aspx.cs,中的类。,查看反编译以后的代码,可以看到就是编译生成了普通的,.Net,代码。因为,aspx,生成的代码是,cs,类的子类,所以就明白了为什么,“,aspx,中调用,cs,的成员级别必须是,protected,或者,public,,不能是,private,的。,”,51,北京传智播客教育,Page,类成员,1,、,Request,、,Respo

49、nse,、,Server,、,Session,属性:对,context.Request,、,context.Response,、,context.Server,的简化调用。,2,、,AppRelativeVirtualPath,属性:获得页面相对于应用根路径的路径,比如,/Default2.aspx,3,、,FindControl(ctrlId),,,根据控件的,id,找到(服务器端)控件,类似于,getElementById,。一般情况下直接在代码中写控件,id,引用控件就可以了,但是对于有些场合:使用,ListView,等控件的模板、编写自定义控件等则需要使用,FindControl,来引

50、用控件,,FindControl,返回值是,Control,(大部分控件的父类),一般需要显式转换为相应的控件:,TextBox txtBox=(TextBox)FindControl(TextBox1);txtBox.Text=aaa;,4,、,IsPostBack,:看是,True,还是,False,就看浏览器是否提交了表单数据。,5,、,ResolveClientUrl(url),将虚拟路径转换为客户端访问时的路径,比如,ResolveClientUrl(/a/b.aspx),结果是,a/b.aspx,,这通常在,ListView,等控件的模板中输出,HTML,使用。基本就是对,Virt

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

关于我们      便捷服务       自信AI       AI导航        获赠5币

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

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

gongan.png浙公网安备33021202000488号   

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

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服