初窥
1.新建一个一般处理程序
新建一个一般处理程序
2.看看里头的代码
public class MyHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Write("Hello World");
}
public bool IsReusable
{
get
{
return false;
}
}
}
通常我们的逻辑大多写在 ProcessRequest里头。
服务器通过Content-Type告诉客户端响应的数据的类型,这样浏览器就根据返回数据
的类型来进行不同的处理,常用Content-Type:text/html、image/gif、
image/jpeg、text/plain、text/javascript。
3.简单介绍
对于返回结果不是HTML的,不需要回发处理的数据请求都可以通过一般处理程序完成。例如生成RSS Feed、XML、图片或执行ajax。
关于请求方式(form表单)
新建一个html页,在body中输入下面内容。
1.form的几个属性
<form name="input" action="MyHandler.ashx" method="get">
Username: <input type="text" name="user">
<input type="submit" value="Submit">
</form>
1)form中通过action属性设定表单被提交给哪个页面
method是提交的方式,分get方式和post方式两种
浏览器向服务器端提交数据,被提交数据的表单(包括input、select、textarea等)需要放到form中,
为了在服务端取出表单项的值,需要在HTML中为表单元素设定name属性
2)注意id是给JS操作Dom用的,name才是提交给服务器用的。id不能重复,name可以重复,重复的name的值都会被提交给服务器。
2.GET和POST
Html表单<form>可以自动给服务器提交参数。
get是通过url请求参数的方式提交,请求参数会直接暴露在url中。如下图
post是通过报文体,提交的数据不会直接暴露给用户。如下图
3.哪些标签会被提交?
哪些标签的哪些值会被提交给服务器呢?将用户填写的内容提交到服务器有如下几个条件:
提交条件1:
只能为 input、textarea、select三种类型的标签。
提交条件2:
只有三种标签的value属性的值(select是选中项的value)才会提交给服务器。标签必须设定name属性(道理:没有name怎么拼网址i=5)。如果要将标签的value属性值提交到服务器,则必须为标签设定name属性,提交到服务器的时候将会以“name=value”的键值对的方式提交给服务器。name是给服务器用的,id是给Dom用的。
提交条件3:
对于RadioButton,同name的为一组,选中的RadioButton的value被提交到服务器。(讲道理:如果都提交,那服务器知道谁被选中了吗?)
提交条件4:
当input=submit的时候,只有被点击的按钮(要有name)的value才会被提交(道理:否则我知道谁被点了?)。
提交条件5:
放到form标签内。只有放到form标签内的标签才可能会被提交到服务器,form之外的input等标签被忽略。