ASP。NET学习一

学习概要:WEB应用程序BS模式过程思想;基本对象Request、Response的使用。
 
昨天学习了ASP。NET中BS模式。 ASP。NET程序的执行过程是客户端输入IP地址及端口号(套接字)通过Post和get向服务器发出Request请求,服务器调用Request.Form,Request.QueryString,Request.Params,方法来来获得请求信息。并判断是否要访问数据库,如果需要则向数据库服务器请求数据,返回数据后再由WEB服务器解释执行后再通过浏览器返回给客户端。
具体过程:
  步骤1;客户端请求
  这一步中,用户会单击链接,或者在浏览器中输入一个uRL,或者执行一些类似于启动个请求的操作。请求是一个必须发送到Web服务器的消息,为了发送请求(或响应)消息,浏览器需要完成下面3件事情:
    第一,以标准的方式描述这个消息,以使接收这个消息的web服务器能够理解它。因此要用到HTTP协议(超文本传输协议)。web利用这个协议来描述请求和响应。经过描述的请求消息被称为HTTP请求,它有一个非常特别的格式,包含了有关请求的信息以及把此信息传递到web服务器所需用到的信息。
    第二,对消息进行打包,以便在网络上安全传递。因此要用到TcP协议(传输控制协议).
    第三,指定该消息的地址,即消息应该被传递到的位置。因此要用到IP协议(网际协议)

     步骤2:路由请求
    这个请求消息会借助HTTP、TcP和IP协议进行格式化,这样一来,路由请求中涉及到的每一台机器都可以理解这个消息(也就是说,把请求从一台机器传递到其他机器,就像它从Web客户端寻找到Web服务器的路径一样)。  Web服务器将被连接到Internet(直接连接或通过防火墙连接),并将Internet通过IP地址得到惟一标识。IP地址是4个数字的集合,这4个数字都是。到255之间的数字。
    然而,最初的请求可能并不具备IP地址——它很有可能是以一个被命名的Web站点的地址开始的uRL(通常情况下这种方式更容易记忆,比如htqp://www.wrox.com/。IP地址和其被命名的地址之间的链接是通过叫dns(域名服务器)映射的。例如,dns通常会把URLhttp://www.wrox.com/映射到IP地址http://204.148.170.145/——以便利用URLhtqp://www.wrox.com/对Web页面发出的请求能够被定向到IP地址为 http:204.148.170.145/的web服务器。
 
    步骤3:接收和处理HTTP请求
    web请求的标准化格式是由HTTP定义的,因此当HTTP请求到达其目的地时,Web服务器很清楚该如何读取这个请求。
    HTTP协议中,web客户向服务器发出请求的方式通常有两种:
    客户可以请求服务器向其发送一个诸如Web页面、图片或MP3文件这样的资源。这被称为GET请求,因为它是从服务器“获取”信息。这是一个通用的方法,例如,在Web站点内开发查询工具时,同样的请求会不止一次的出现。这也是请求简单的web页面和图像的方法。
    客户请求服务器执行一些处理,以使生成响应。这被称为PosT请求,因为客户发送的信息必须要服务器处理,之后.客户还会等待服务器的响应。使用这个方法的可能性比较大,比如,在一个联机购物站点提交个人数据时,或者向服务器发送信息的情况下,都会使用这种方法。
 
    步骤4:服务器处理
    web服务器是运行应用程序的场所。它的职责是确保任何必要服务器端处理的进行,以便完成任务并生成响应。
    如果HTML请求是对简单HTML页面的请求,那么Web服务器就会查找这个HTML页面把它包装到一个HTTP响应,并把它分配给客户。与此相反,如果请求的是一个AsPx页面,那么在把那个新生成的HTML包装到一个准备发送给客户的HTTP响应之前,web服务器会把这个请求传递到AsP.NET处理器,由该处理器处理这个页面并生成HTML。
    HTTP响应由两部分组成——题头和响应体。题头信息会告知浏览器请求是否成功,或者处理请求时是否会出现错误。例如,如果web服务器接收到了请求,但无法找到被请求的页面,那么题头中就会出现HTTP 404(无法找到文件)错误代码。响应体中放置的是被成功请求的资源。

    步骤5:路由响应
    由web服务器生成的HTML贝面,是按照HTTP响应消息进行描述,并利用TCP/IP进行打包并指定地址的。返回的地址是一个IP地址,它被包含在步骤I发送的HITP请求消息中。HTTP响应消息通过网络被路由回它的目标位置——最初发出请求的web客户。

    步骤6:客户端处理和提交
    HTTP响应到达web客户时,浏览器会读取这个响应,并处理所有的客户端代码。处理过的代码会显示在浏览器窗口中。
    现在我们已经知道了请求一个页面时都发生了什么事情。

客户端为:HTML文档,包含两个文本控件,和一按钮,代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns=" http://www.w3.org/1999/xhtml" >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
<!--
.boderStyle {
 border: thin solid #0033FF;
}
-->
</style>
</head>
<body>
<form name="form1" method="post" action="Login.aspx">
  <table width="33%" border="1" align="center" class="boderStyle">
    <tr>
      <td width="31%">用户名:</td>
      <td width="69%"><input name="txtUserName" type="text" id="txtUserName" /></td>
    </tr>
    <tr>
      <td>密&nbsp;&nbsp; 码:</td>
      <td><input name="txtUserPwd" type="text" id="txtUserPwd" /></td>
    </tr>
    <tr>
      <td colspan="2"><div align="center">
          <p>
            <input name="btnLogin" type="submit" id="btnLogin" value="登录"/>
   &nbsp; &nbsp; &nbsp;
            <input name="btnReset" type="reset" id="btnReset" value="重置"/>
          </p>
          </div></td>
    </tr>
  </table>
</form>
</body>
</html>
 
操作代码为:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class Login : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string userName = Request.Form.Get("txtUserName").ToString();
        string userPwd = Request.Form["txtUserPwd"].ToString();
        //SqlConnection conn = new SqlConnection("Data Source=ACER4720//SQLEXPRESS;Initial Catalog=test;Persist Security Info=True;User ID=sa;PWD=833199");
        string ConnStr = "Data Source=ACER4720//SQLEXPRESS;Persist Security Info=false;uid=sa;pwd=833199;Initial Catalog=test";
        SqlConnection conn = new SqlConnection(ConnStr);
        conn.Open();
       
        SqlCommand cmd = new SqlCommand("select count(*) from UserTable where uid='" + userName + "'and pwd='" + userPwd + "'", conn);
       int count=Convert.ToInt32(cmd.ExecuteScalar());
        if (count>0)
        {
            Response.Redirect("default.aspx");//default.aspx为随便一个页面,只是提示信息
        }
        else
        {
            Response.Redirect("LoginFail.htm");");//LoginFail 为随便一个页面,只是提示信息

        }
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值