这几天我们开始学习了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(); } } %>