一、创建Web应用程序
1.选择ASP.NET应用程序
2.配置项目名称及保存路径
3.创建空白Web程序
4.添加HTML文件
4.创建Form表单
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<form action="Handler1.ashx" method="post">
<input type="text" name="num1" value="" />+
<input type="text" name="num2" value="" />=
<input type="submit" name="btn" value="计算" />
</form>
</body>
</html>
(1)表单的作用:收集用户输入的数据,并提交给后台服务器
(2)表单的组成:表单域、表单元素、提示信息
(3)表单的属性:
① action:数据提交的目的地(后台数据接收与处理模块:C#文件)
② method:数据提交的形式(post:隐式发送;get显示发送)
③ name:name属性决定哪个表单元素中的value的值能够被提交到后台
二、静态页面运行
- 文件目录作为地址运行:
file:///file:///E:/peixun/ASP.NET%E7%BB%83%E4%B9%A0/WebForm/WebFormDemo01/WebFormDemo01/index.html
- 以虚拟服务地址运行:
https://https://localhost:44387/index.html
这两种运行方式完全不一样:
(1)打开html根目录运行html文件运行:
是不需要网络传输,必须要保证客户端计算机能够访问到目标地址文件。运行原理是:浏览器直接执行这个html文件
(2)虚拟服务地址运行:
相当于将html文件存放在了一个服务器上,访问的时候只要网络能够打通则即可通过网络路径进行访问这个html文件。运行原理:浏览器先从服务器路径上将该html文件下载到本地浏览器内存中,然后执行下载的html文件
三、报文
当Form表单向服务器发起请求时,会将表单中设置有name属性的表单元素的value值放进报文中通过Internet网络传输,BS的数据传输基本上全部凭借报文进行传输数据,HTTP协议传输协议就是传输报文。报文的格式是世界万维网组织提供的报文格式
-
如果表单提交方式是以get提交:
具有name属性的表单元素的value值会被封装在消息头的请求网址中随着网络进行传输,意味着可以在浏览器的URL框中的网址后面以“name1值=value1值&name2值=value2值…”形式传输
-
如果表单提交方式是以post提交:
具有name属性的表单元素的value值会被封装在报文的参数中随着网络进行传输,意味着在浏览器的URL框中看不到传输的数据格式
总结:
(1)如果表单元素的value值要被传输到服务器,则必须要设置name属性
(2)get提交则提交的数据信息会在URL框中出现,因此传输数据量有限,不安全,但是传输速度快
(3)post提交则提交的数据信息不回出现在URL框中,因此传输数据量没有限制,相对比较安全,但是传输速度相比较较慢
get提交与post提交区别
1、get在浏览器回退时是无害的,而post会再次请求。
2、get产生的URL地址可以被收藏,而post不会。
3、get请求会被浏览器主动缓存,而post不会,除非手动设置。
4、get请求只能进行URL编程,而post支持多种编码方式。
5、get请求参数会被完整保留在浏览器历史里,而post中的参数不会被保留。
6、get请求在URL中传送的参数有长度限制,而post没有。
7、对参数的数据类型,get只接受ascll字符,而post没有限制。
8、get不如post安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
9、get参数通过URL传递,post放在request body中。
四、一般处理程序
什么是一般处理程序
一般处理程序是一个后缀为.ashx的代码文件,该文件的类实现了IHttpHandler接口,这个类用于负责处理它所对应的URL的访问请求,并接受客户端发送的请求信息和发送响应内容。
提示:实现IHttpHandler接口的类是作为一个外部请求程序的前提,凡是没有实现该接口的类都不能被浏览器访问。
什么时候用
虽然通过标准的方式可以创建处理程序,但是实现的步骤比较复杂,为了方便网站开发中对处理程序的应用,从Asp.net 2.0开始,asp.net提供了称为一般处理程序的处理程序,允许我们使用比较简单的方式定义扩展名为ashx的专用处理程序。
对于asp.net网站来说,网站最佳的处理结果就是HTML网页,生成网页的工作通常使用扩展名为aspx的Web窗体来完成。对于处理结果不是HTML的请求,都可以通过一般处理程序完成。例如生成RSS Feed、XML、图片等。
一般处理程序是asp.net网站中最为简单、高效的处理程序,在处理返回类型不是HTML的请求中有着重要的作用。
简单理解:一般处理程序就类似于CS程序中的Program文件可以直接运行执行,可以处理一些简单的客户端的需求
public class Handler1 : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Write("Hello World");
}
public bool IsReusable
{
get
{
return false;
}
}
}
方法
- ProcessRequest方法:处理请求的方法,是一般处理程序的核心方法
HttpContext参数:这个对象中包含有网络传输的所有的内容,例如客户端发起请求的所有的表单数据等
HttpContext对象的属性:- Request属性:是一个对象,这个对象包含有报文所有的请求头的数据信息
- Response属性:是一个对象,这个对象包含有报文所有的响应头的数据信息