在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
ASP.NET(get和post比较)首先我们回顾一下,之前学过的Http协议. 这里边有个连接,浏览器要请求服务器创建一个连接,连接之后,发送请求,服务器做出响应.响应结束之后,要关闭连接,当HTTP1.0的时候是短连接,HTTP1.1的时候是长连接。长连接的意思是等个非常短的时间,还有请求的话,连接就不关闭,否则的话就关闭。 因为这个连接,响应结束之后不管是长连接还是短连接,最终都要关闭。连接一关闭,服务器就不知道这个浏览器的存在,就是因为这个特点,Http是无状态的。无状态会给我们造成很多的麻烦,什么是无状态,就是服务器不会记得浏览器曾经请求过我。所以,同一个页面中请求了外部的js、css、jpg每次在请求这些文件的时候都需要重复提交一些数据。 如果网页中引用了多个外部文件,每一个文件都要发送一个请求。还有就是服务器跟浏览器的关系是:请求-响应。 服务器会不会主动的给浏览器发送响应? 不会的,因为服务器根本就不知道有哪些浏览器的存在。比如新浪微博,好像是服务器主动给浏览器发送响应的。 这个是怎么实现的呢? 服务器不会主动向浏览器发送响应,浏览器有个定时器不停的向服务器发送请求,获取服务器的响应。需要使用ServerPush(ajax隔一段时间到服务器请求最新的数据)等额外的技术。 迅雷里面的断点续传是怎么实现的呢? 当下载的时候,它会记录下来记录了多少个字节。并且把那些字节都放在临时文件里面。再次下载的时候从上次记录的字节的位置之后开始下载,并且存放到临时文件里面。直到整个文件被下载完毕。再还原这个文件。 今天我们要学一般处理程序,html控件与.NET内部对象。 1、目标:从网络的角度介绍 ASP.NET 的运行机制原理,并对 ASP.NET 中的几个核心对象进行分析. 2、检验结果:熟练使用一般处理程序完成单表增删改查 下面我们回顾下之前学过的内容,什么是浏览器语言? 在浏览器端执行的语言叫浏览器语言。 服务器语言就是在服务器上执行的语言。 静态页面和动态页面的区别是什么呢? 动态页面需要运行服务器端的语言,静态页面是纯展示的。静态页面服务器直接读文件,读完之后直接发送。在服务器上不会执行特别复杂的事情。 如果是动态页面的话,在服务器要创建这个类的对象,并且调相应的代码执行。 之前,我们自己写了个web服务器,真正应用的时候不会自己去写服务器。我们开发完网站之后,会把网站部署在iis上。 接下来我们看下iis web服务器工作的流程。 iis跟我们自己写的服务器的工作原理是类似的。 我们先看下iis:
一、看下iis这个软件 xp里面的iis是5.1,win7里面的是6.0,界面稍微有些不一样。
二、iss运行网站 我们在里面可以建个虚拟目录,去发布一些网站。 演示下win7中怎么安装iis吧。 一、首先是安装IIS。打开控制面板,找到“程序与功能”,点进去
三、程序与功能 二、点击左侧“打开或关闭Windows功能”
四、打开或关闭Windows功能 三、找到“Internet 信息服务”,按照下图打勾即可
五、找到“Internet 信息服务” 等待安装完成
六、等待安装完成 四、安装完成后,再回到控制面板里面,找到“管理工具”,点进入
七、管理工具 五、双击“Internet 信息服务(IIS)管理器”就是IIS了。如果经常需要使用IIS的朋友,建议鼠标指到“Internet 信息服务(IIS)管理器”上,右键--发送到--桌面快捷方式,这样就能从桌面进入IIS,而不用每次都点控制面板。
八、IIS界面 IIS界面: 五、选中“Default Web Site”,双击中间的“ASP”
九、双击ASP 把“启用父路径”改为“True”
十、把启用父路径改为True 七、下面就是配置站点了。单击右侧“高级设置”
十一、“高级设置” 选择你网站的目录
十二、选择网站目录 八、回到IIS,单击右侧的“绑定...”,选中你要绑定的网站,点“编辑”
十三、选中网站-编辑 如果是一台电脑,只修改后面的端口号就行,可以随意修改数字。如果是办公室局域网,点击下拉框,选择自己电脑上的局域网IP,例如:192.168.**.**,然后修改端口号
十四、修改端口号 九、回到IIS,如果右侧显示停止,就选择启动,然后点击下面的浏览网站,就可以打开你绑定文件夹里面的网站了
十五、浏览网站 十、如果有多个网站,在IIS左边“网站”右键“添加网站”
十六、添加网站 主要修改三个地方,“网站名称”、“物理路径”、“端口”,如果局域网,请修改“IP地址”,同上
十七、修改内容 十一、添加好后,点击新建的网站名字,就是这个网站的详情了。 下面我们回来看看iis是怎么工作的,
十八、点击配置
十九、aspnet_isapi.dll 其中的asp和aspx是不一样的。asp交给asp.dll了。
二十、asp交给另一个人去处理了 请求静态页面: 内部先去处理请求报文,请求报文处理请求的路径,然后再读文件。读到iis里面来,iis再为响应生成响应头,把文件发送给浏览器。
请求动态页面: 浏览器发送一个请求,通过后缀名来判断是静态的还是动态的?如果后缀名是aspx,这个时候iis处理不了。但是,找个人去处理,这个关系在哪儿配置的呢?
当请求过来以后,不管是静态页面还是动态页面,都去映射表里面找。只是找的找还是找不找的问题。如果是静态页面也会去映射表里面找,一看没找着,iis就自己处理了。读文件然后返还。如果找着了,一看后缀名是aspx并且在映射表里面找到了,请求交给aspnet_isapi.dll这个程序是FrameWork的。在安装完.net FrameWork之后才有这个文件。 那么,iis依赖.net FrameWork呢?iis直接运行在操作系统上,iis不依赖.net FrameWork,跟.net FrameWork之间没有关系。C#代码在.net FrameWork上执行。iis把请求转交给.net FrameWork,让.net FrameWork来执行页面的C#代码。isapi就是它们之间的关系。怎么去执行请求的类的对象,通过反射去创建这个类的对象。那个方法执行完之后就一层一层的返。最终,返回给浏览器。 当我刚装了操作系统,又配置了iis,能执行asp.net写的网站么?不能,没有.net FrameWork 如果我装了操作系统,又装了.net FrameWork,又装了iis,在iis上发布了一个asp.net的网站。能运行么?不能,这个时候iis不知道.net FrameWork的存在。没有配置。需要配置一下,有个命令:运行敲:cmd。 aspnet_regiis-i在iis里面注册.net FrameWork,生成我们看见的那些东西。不能在这运行。因为,这个命令是.net FrameWork安装目录里面的命令。 打开VS2010的命令提示。
二十一、不能在这执行
二十二、打开VS2010的命令提示
二十三、在这里执行下
二十四、iis运行过程图
二十五、工作流程图 请求过来之后,如果后缀名是aspx,如果是iis5.1就是windowsXP里面装的iis,这个时候请求直接交给iis。没有这个过程。现在这张图是iis6.0以后执行的过程。windows sever2003安装的就是6.0,6.0以后的iss都是这么来请求的。请求过来之后,这个请求没有到iis,第一步不经过iis。先经过http.sys,一个系统级别的驱动程序。操作系统内核程序。先接收到这次请求,对请求报文进行过滤看请求报文是不是合法?如果请求合法的话,这个驱动程序才把请求交给iis,iis再找iis的扩展程序,有aspnet_Isapl.dll和aspnet_filter.dll。这两个扩展程序做的事情不一样。 如果是静态页面直接处理,如果是aspx交给中间,如果是asp交给右面。 下面我们再说下什么是ASP.Net ASP.Net是不是一种语言?不是,是一种动态网页技术,跟ASP一样。 ASP.NET和ASP有什么区别呢? 他们内部的一些对象还是一样的,因为这两个技术都是微软的,都是开发动态网页的技术。ASP开发动态网页的时候使用的服务器端的脚本语言。脚本语言都是解释执行的。C#和java都是编译执行的。ASP.NET依托于. net FrameWork框架。
我们在学习ASP.Net的时候需要学习这三部分内容。ASP.Net:一般处理程序(ashx),WebForm(aspx)、MVC(Model, View , Controler)。
看下今天的重点:
二十六、ASP.Net常用文件 现在我们只需要记住前三个就ok了。 下面我们写个一般处理程序,新建一个网站:
二十七、新建网站
二十八、新建空网站 如果我把VS关了,关了之后怎么打开网站?把网站发给了别人,别人怎么打开呢?文件-打开-网站。简单的办法:
二十九、另存为解决方案 用的时候直接找到保存的文件夹,双击解决方案就可以打开这个网站。 下面我们来建个一般处理程序:
三十、添加新项
三十一、新建一般处理程序 ashx就是一个类,为什么它不叫类了,变成一般处理程序了呢?就因为它实现了IHttpHandler这个接口。
三十二、一般处理程序
三十三、转到定义 ProcessRequest的作用是处理请求,并做出响应。 IHttpHandler接口的作用是保证所有能够处理浏览器请求的类具有这个方法。这是这个接口的作用。
三十四、HttpContext
三十五、执行服务器端代码
三十六、Content-Type 要是输出html代码的话,改成text/html 练习: 输出一段包含图片的html页面代码试试。
三十七、输出包含图片的html页面代码
三十八、发送了两次请求
三十九、返回了html代码
四十、再次发送请求,请求一张图片
四十一、服务器帮我们做的事情 下面我们把这段代码再改一下。
四十二、纯文本,怎么运行?
四十三、纯文本显示的就是纯文本
一般处理程序(HttpHandler):是一个实现System.Web.IHttpHandler接口的特殊类。 它由支持ASP.NET的服务器调用和启动运行。一个HttpHandler程序负责处理它所对应的一个或一组URL地址的访问请求,并接收客户端发出的访问请求信息(请求报文)和产生响应内容(响应报文)。 简单的说:咱可以通过创建一个我们自己的HttpHandler程序来生成浏览器代码发送回客户端浏览器。 HttpHandler程序可以完成普通类程序所能完成的大多数任务:
四十四、web服务器
四十五、一般处理程序
四十六、服务器怎么接收发送数据
四十七、今天需要掌握的内容 下面我们看下浏览器提交数据的两种方式,以百度为例:
四十八、百度搜索的时候是以url传参
四十九、通过表单提交数据 url以这种方式传参: http://127.0.0.1/login.ashx?txtname1=jordan&txtpwd1=123 下面我们自己写下get请求,
五十、接收数据 还有个页面模拟百度搜索的文本框,建立个文本框。
五十一、写个html页面,模拟百度用url传参
五十二、在一般处理程序里面接收url
五十三、执行过程
五十四、执行请求多个值
五十五、获取文本框的值以及传值
五十六、监视执行的过程
五十七、看看这样写能不能被提交 运行以后发现没有东西,所以根本就没提交给服务器。
五十八、改成这个样子
五十九、这种情况下还是通过get进行提交 下面我们再来看怎么通过post的方式传递数据.
六十、表单提交的页面
六十一、给两个文本框起个名字
六十二、在服务器上获取数据
六十三、执行结果演示 下面我们再来看下get请求和post请求报文中的区别。 post比get请求报文中多的内容 Content-Type: application/x-www-form-urlencoded 就是告诉服务器传输给你的数据格式跟url是一样的。而且在进行post提交的时候,必须具有content-type,没有的话,post提交就失败。 Cache-Control: no-cache 就是告诉服务器,浏览器不去缓存你的页面。 请求体name=123&pwd=abc
六十四、注意下这个设置 下面我们看下Request常用成员
六十五、request 下面我们看下Params能获取什么?
六十六、遍历输出看看里面都有什么
六十七、Params能获取什么 context.Request[“”]这么写也行,但是不推荐使用。//相当于context.Request.Params 下面我们再来看下Response。
六十八、Response
六十九、Redirect hello world输出没有?监视下请求。
七十、监视下请求
七十一、Redirect执行过程图
七十二、就不再往下执行了。 下面我们看下post的时候,需要注意的问题。
七十三、这种情况下不能post 页面上不可以有多个表单。可以,而且不会冲突。 因为每个表单都有一个action。 想要提交谁必须有name属性。 按钮能不能提交给服务器?加name就提交给服务器了。 只有value才能提交给服务器。 div不能提交给服务器。 只有表单元素才能提交给服务器。 当元素被禁用的时候也不会提交给服务器。
七十四、提交性别
七十五、选中谁提交谁
七十六、表单提交多选
七十七、监视提交多个 用服务器接收一下。
七十八、用服务器接收一下
七十九、获取到的值 如果我有多个文本框,文本框的name都一样,这个时候又怎么办? 下面我们演示下有多个文本框的时候的情况:
八十、监视有多个文本框的时候 下回我们将模拟登陆,请大家关注!!! 回到起始位置
作者近期文章列表:
|
请发表评论