黑马程序员之ASP.NET个别知识点小结十

来源:互联网 发布:数控编程软件哪个好 编辑:程序博客网 时间:2024/05/29 12:44

 ------- Windows Phone 7手机开发、.Net培训、期待与您交流! ------- 


多线程
进程:就是一个程序,至少有一个线程
线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针,程序计算器等),但代码区是共享的,即不同的线程可以执行同样

的函数。多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务(代码),也就是说允许单个

程序创建多个并行执行的线程来完成各自的任务。

.net中如何实现多线程
1定义声明一个无参数,无返回值的方法
2using Threading new Thread(无返回值无参数的委托)
threadFirst.IsBackground=true设置成后台线程
3threadFirst.Start()开启另一个线程 标记该线程可以被CPU执行了,但具体执行时间由CPU决定
【是.net框架会创建一个系统的线程,让系统线程帮我们完成工作】

前台线程:只有所有的前台线程都关闭才能完成程序关闭时。
后台线程:只要所有的前台线程结束,后台线程自动结束。
threadFirst.IsBackground=true设置成后台线程

UI线程,就是主线程,窗体应用程序中的所有控件不允许其他线程访问【TextBox.checkforillegalthreadcalls=false】
线程重入:多个线程执行同一段代码,一个线程的一次还没执行完就被中断了

Thread类的一些重要成员(*)
线程之间的通信问题
Start()启动线程
Abort()终止线程
Thread.Sleep(1) 静态方法,可以使当前线程停止一段时间运行
Name线程名
Thread.CurrentThread获得当前的线程引用

socket套接字 两个程序通信用服务器端:
申请一个socket
绑定到一个IP地址和一个端口上
开启侦听,等待接授连接
客户端:
申请一个socket
连接服务器(指明IP地址和端口号)
服务器端接到连接请求后,产生一个新的socket(端口大于1024)与客户端建立连接并进行通讯,原监听socket继续监听。

 

浏览器提交数据方式?(例) get/post
     1.表单:(数据藏在请求报文体中,格式:txtname=james&txtpwd=123)  <form action=“login.ashx” method=“post”>
            <input type=“text” name=“txtname” />     <input type=“password” name=“txtpwd”/>   </form>
     2.地址栏的URL参数,超链接的url,js指定的url(和表单的Get方式一样):键值对 http://127.0.0.1/login.ashx?

txtname1=jordan&txtpwd1=123

二、服务器如何获取浏览器提交的数据?context.Form[“txtname”]
     1.获取POST数据:context.Request.Form[“txtname”]安全点
      2.获取GET参数:context.Request.QueryString[“txtname1”]

三、服务器如何向浏览器输出数据?
     context.Response.Write(“我是从服务器输出到浏览器的数据!:)”);


 

ASP.NET页面间数据传递的方法Querystring
Web页面是无状态的, 服务器对每一次请求都认为来自不同用户,因此,变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会

被保留。
.使用Querystring 方法
QueryString 也叫查询字符串, 这种方法将要传递的数据附加在网页地址(URL)后面进行传递。如页面A.aspx 跳转到页面B.aspx,可以用

Request.Redirect("B.aspx?参数名称=参数值")方法,也可以用超链接:,
页面跳转后,在目标页 面中可用Ruquest["参数名称"]来接收参数。
使用QuerySting 方法的优点是实现简单; 不使用服务器资源;
缺点是传递的值会显示在浏览器的地址栏上,有被篡改的风险;不能传递对象;只有在通过URL 请求页时查询字符串才是可行的。

(1)Redirect 方法将客户端重定向到新的页面,只是简单地终止当前页面,并转入新的页面开始执行,对转入的页面无任何限制。 
 
 (2)Transfer 方法终止当前页的执行,并为当前请求开始执行新的页面。把执行流程从当前页面转到同一服务器中的另一页面,但是新的页

面仍然使用当前页面创建的应答流。 
 
 这两种方法的主要区别是:(1)Redirect 方法可以实现任意网页间的重定向,而Transfer 方法只能实现同一服务器中 ASPX 页面间的重定

向。(2)Redirect 方法不会保留当前页面的表单(Form)数据和查询字符串(QueryString),而Transfer 方法则可以保留这些数据

ViewState 的使用
0服务器端的值都自动保存在ViewState中
1 ViewState["myKey"] ="MyData"
2 取出的都是字object
  if(ViewState["myKey"]!=null){string a=(string)ViewState["myKey"]}
3 必须有<form runat="server">
4 只能存储string int boolean array arraylist hashtable
5 前台生成了name和id都为__VIEWSTATE的隐藏域 value中保存了各种编码后的信息
6 后台ViewState是control的一个属性,就是页面对象的一个属性
应用场合:
缺点:加大了网站的流量,降低了访问速度
      机密数据不能放在表单中,会有数据欺骗等安全问题

Cookies
1 浏览器的内存中(默认)只要不关闭浏览器,你访问任何一个页面Cookies都会发送到服务器或硬盘中C盘临时文件夹中
2 判断当前访问的域名,看看发送那个过去,放在请求报文;同一个浏览器的不同页面是可以的
3 请求.jpg .js .css这种文件或外部文件,在请求报文中也会带上cookie
HttpCookie cookie=new HttpCookie("moeney","1000");
cookie.Expirs=DateTime.Now.AddDays(2);设置失效时间【保存到硬盘上】
cookie.Expirs=DateTime.Now.AddDays(-1)设计让cookie失效
Response.Cookies.Add(cookie);
HttpCookie cook=  Request.Cookies["money"];
if (null!=cookie)
{
               
}

session:
你把浏览器关闭之前你都能访问属于你自己的session
里面可以包含各种类型的对象
进程内的session
进程外的session
保存在数据库
Session.Timeout=20;设置所有的session的失效时间都是20分钟,默认的就是20;
Session["uname"] = "maxiaofeng";
Session["uname"]取得的是object类型的数据


            if (Context.Session["uname"]!=null)
            {
                Context.Session.Abandon();
            }

 

 

 

 

 

------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------

原创粉丝点击