您的位置:首页 > 编程语言 > ASP

ASP.NET-------get请求,post请求,Request,Response和回发的学习

2012-08-21 21:23 567 查看
  这几天我们开始学习了ASP.NET技术。可以说以前学的大部分知识都是为了ASP.NET技术打基础的。只要前面的学扎实了这个还是很好理解的。

ASP.NET是基于.net平台的Active Server Page技术,要知道的是ASP!=ASP.NET。从以下几点来更深入的理解ASP.NET:

1,Code-Behind技术:代码和页面相分离的记录;

2,纯面向对象的技术:提供了大量的控件和组件;

3,传统的脚本开发,ASP.Net是一门动态的服务器页面技术,需要在服务器端进行编译,然后把编译后的结果发送到客户端。

脚本技术:

  格式:<% 代码段 %> 一个页面可以有n个代码段。而且,代码段放置的位置可以是任意的。 无论一个页面有多少个代码段,总体上来说还是一个代码段。在代码块中不能够定义方法,代码段也遵循变量先定义后使用的原则。

输出

   格式:<%Response.Write(object);%> 或者 <%=object%>

Get请求 如一个页面为:http://www.baidu.gom/login.php?name=ssss&pwd=yyyy 他的意思是:请求的页面是login.php页面,给login.php页面传递两个参数name==ssss 和 pwd==yyyy

  值得注意的是:通常,在超链接和地址栏中的链接都是Get请求,在接受页面不能够直接访问,可能会出现空指针异常。一般情况下超链接都是get请求。但是get请求有自身限制 :

  1,以明文的形式进行传递。

  2,参数的长度有限制,最大不能超过255

Post请求

  一般情况下,Post请求用于表单的提交 :

  1,以暗文的形式进行传递。

  2,参数的长度没有限制

Request :在接受get请求是需用 Request.QueryString[key]

  下面列举几个ASP.NET常用的对象 :

1,Response===HttpResponse是用来向客户端浏览器输出内容。

  常用的方法: Write(string):向浏览器输出内容(文本,html,css,javascript)

         End():结束对当前输出流。

  2,Request===HttpRequest 是用来从客户端浏览器拿到内容

  常用的属性: QueryString:获取get请求中的参数值

  ---NameValueCollection Item[index]:根据索引得到值 Item[key]:根据键得到值

  Form:获取post请求中的参数

  ---NameValueCollection Item[index]:根据索引得到值 Item[key]:根据键得到值

  3,Server === HttpServerUtility 这个对象代表了服务器端,可以得到服务器端的一些信息。

   常用方法: UrlDecode(string):用来解码 。这个方法只能用来解释unicode编码(%20等等)

  回发技术是一个很重要的技术,以后的学习当中我们经常会遇到他。回发是自己把数据发送给自己,让后自己处理数据,因此回发满足的两个条件是:

   1,请求类型必须是post类型

    2,post数据的时候,action指向的页面是自己

下面是一个简单的运用ASP.NET技术连接数据库的post请求登录代码段,其中两个aspx页面第一个是登录的主页面,第二个页面是两节数据库的页面:

<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="utf-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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="Data.aspx" method="post">
姓名:<input type="text" name="name"/>
<br/>
新建密码:<input type="password" name="pwd1"/>
<br/>
重新输入密码:<input type="password" name="pwd2"/>
<br/>
<input type="submit" value="注册成功"/>
</form>
</body>
</html>


<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="utf-8" %>
<%@ Import NameSpace="System.Data"%>
<%@ Import NameSpace="System.Data.SqlClient"%>
<%
string name=Request.Form["name"];
string pwd1=Request.Form["pwd1"];
string pwd2=Request.Form["pwd2"];
if(pwd1!=pwd2)
{
Response.Write("两次密码不相同请重新注册");
%>
<a href="01.aspx">返回</a>,重新输入注册!
<%
return;
}
string strcon="server=.;database=my;uid=sa;pwd=1";
SqlConnection con = new SqlConnection(strcon);
SqlCommand cmd =new SqlCommand();
using(con)
{
con.Open();
using(cmd)
{
cmd.Connection = con;
cmd.CommandText = "insert into register values (@name,@pwd)";
cmd.Parameters.Add("@name",SqlDbType.VarChar,10);
cmd.Parameters["@name"].Value = name;
cmd.Parameters.Add("@pwd",SqlDbType.VarChar,20);
cmd.Parameters["@pwd"].Value = pwd1;
cmd.ExecuteNonQuery();
}
}

%>


<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="utf-8" %>
<%@ Import NameSpace="System.Data"%>
<%@ Import NameSpace="System.Data.SqlClient"%>
<%
string name=Request.Form["name"];
string pwd1=Request.Form["pwd1"];
string pwd2=Request.Form["pwd2"];
if(pwd1!=pwd2)
{
Response.Write("两次密码不相同请重新注册");
%>
<a href="01.aspx">返回</a>,重新输入注册!
<%
return;
}
string strcon="server=.;database=my;uid=sa;pwd=1";
SqlConnection con = new SqlConnection(strcon);
SqlCommand cmd =new SqlCommand();
using(con)
{
con.Open();
using(cmd)
{
cmd.Connection = con;
cmd.CommandText = "insert into register values (@name,@pwd)";
cmd.Parameters.Add("@name",SqlDbType.VarChar,10);
cmd.Parameters["@name"].Value = name;
cmd.Parameters.Add("@pwd",SqlDbType.VarChar,20);
cmd.Parameters["@pwd"].Value = pwd1;
cmd.ExecuteNonQuery();
}
}

%>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: