第 12 节: 12-HttpHandler案例
Content-Type:服务器返回给浏览器的文本类型是什么; 常用的有:text/html(html格式) image/gif(图片格式) text/plain(纯文本格式) text/css(css文件格式)等等
第13节:表单提交哪些标签的哪些值会被提交给服务器呢?
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form action="Login.ashx">//action表示交给谁处理这个表单的内容
<input type="text" name="name" />
<input type="password" name="pwd" />
<input type="submit" />
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Web1
{
/// <summary>
/// Login 的摘要说明
/// </summary>
public class Login : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/html";//1、改为html类型
string name=context.Request["name"];
string pwd = context.Request["pwd"];
if (name == "admin" && pwd == "123")
{
context.Response.Write("<html><head></head><body>");
context.Response.Write("<h1>"+name + "欢迎进入本网站!</h1></body>");
}
else
{
context.Response.Write("<h1>" + "登陆失败!</h1></body>");
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
将用户填写的内容提交到服务器有如下几个条件(使用浏览器监视网络请求验证):
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等标签被忽略。
1、Html表单<form>可以自动给服务器提交参数(get是通过url,post是通过报文体,后面会讲区别),不用用户自己拼url。action指定把表单内容提交给谁。 2、浏览器向服务器端提交数据,被提交数据的表单(input、select、textarea等)放到form中,form中通过action属性设定表单被提交给哪个页面,为了在服务端取出表单项的值,需要在HTML中为表单元素设定name属性 3、注意id是给JS操作Dom用的,name才是提交给服务器用的。id不能重复,name可以重复,重复的name的值都会被提交给服务器。 4、服务器端用context.Request["username"]来根据表单项的name来获得提交的属性值。
5、checkbox没选中为null,选中为"on"。