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

  这几天我们开始学习了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请求,在接受页面不能够直接访问,可能会出现空指针异常。一般情况下超链接都是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();
            }
        }
    
%>

 

 

转载于:https://www.cnblogs.com/lan-net/archive/2012/08/21/2649802.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值