本节目标:
<%%>及<%=%>表达式
客户端请求对象 Request
服务器响应对象 Response
服务器信息获取 Server
服务器用户会话对象 Session
客户端用户会话对象 Cookie
服务器全局缓存对象 Application
客户端请求对象 Request
服务器响应对象 Response
服务器信息获取 Server
服务器用户会话对象 Session
客户端用户会话对象 Cookie
服务器全局缓存对象 Application
1.<%%>及<%=%>表达式:
在ASPX页面中,我们使用<%%>用来编写程序的代码部分。在其中可以声明变量和代码。如:
<%
if (Application["ApplicationCount"] == null)
{
Application["ApplicationCount"] = 1;
}
%>
<%
if (Application["ApplicationCount"] == null)
{
Application["ApplicationCount"] = 1;
}
%>
<%=%>是用来向输出流中输出变量的值其用法如下:
<% int i = 6; %>
<%=i %>
<%=i %>
2.在我们叙述ASP.NET中的对象时先要让大家了解一些知识如下:
对于APS.NET来说,我们上边所提到的这对象并不是像JSP或ASP.NET的早期版本中提到的内置对象而是System.Web.UI.Page这个类中的一些属性。
对于WEB服务器来说,处理客户端请求用的是HTTP协议,然而HTTP是处于无状态的,它并不记录上次发送请求的是谁,所以只有当客户端主动请求服务端才会有响应。我们接着看在ASP.NET使用客户请求。
对于WEB服务器来说,处理客户端请求用的是HTTP协议,然而HTTP是处于无状态的,它并不记录上次发送请求的是谁,所以只有当客户端主动请求服务端才会有响应。我们接着看在ASP.NET使用客户请求。
3.ASP.NET客户端请求使用Request 对象:
Request 对象封装客户端请求页面或提交表单时提供的信息。这些信息包括:
Request 对象封装客户端请求页面或提交表单时提供的信息。这些信息包括:

以上这些属性在MSDN中都可以找到,我们主要来看一下Form及QueryString属性的用法,首先看Form:
这是ASPX页面中的代码,请注意两个input表单的名称。
< table width ="50%" border ="0" align ="center" cellpadding ="5" cellspacing ="1" bgcolor ="#663399" >
< tr >
< td width ="60" bgcolor ="#FFFFFF" >用户名: </td>
< td bgcolor ="#FFFFFF" > < input type ="text" name ="UserName" /> </td>
</tr>
< tr >
< td bgcolor ="#FFFFFF" >密 码: </td>
< td bgcolor ="#FFFFFF" > < input type ="text" name ="UserPwd" /> </td>
</tr>
< tr >
< td bgcolor ="#FFFFFF" >操 作: </td>
< td bgcolor ="#FFFFFF" > <asp:Button ID="Button1" runat="server" Text="登录"
onclick="Button1_Click" /> </td>
</tr>
</table>
以下是.CS文件也就是类中的代码(写在Button1的单击事件调用的方法中):


label1与label2是两个文本标签控件,我将Request属性得到的变量赋值给了文本标签,从这里可以看出,我们可以跟据html代码中表单的name来得到其俱体的值。在这里我们用到了POST请求方式。我们来了解一下POST请求方式的概念。
在WEB中,客户端请求体现有两种方式:
Get和Post方式
这两种方式都可以通过设置Form表单的method属性,不过一般来讲Form表单都使用Post方式提交,而Get方式则用于在地址栏提交如:
http:
//www.xy8.cn/Admin.aspx?name=张三&pwd=123
Get和Post方式
这两种方式都可以通过设置Form表单的method属性,不过一般来讲Form表单都使用Post方式提交,而Get方式则用于在地址栏提交如:

从以上地址我们能看出,跟在?号后边的就是变量与其俱体的值,如果要有多个变量的话,需要在中间用&符分隔。
接下来的代码体现了如何接收Get方式请求的值:


4.ASP.NET中服务器端响应使用Response:
每次客户端发出一个请求的时候,服务器就会用一个响应对象来处理这个请求,处理完这个请求之后,服务器就会销毁这个相应对象,以便继续接受其它客服端请求。Response常用属性和方法如下:
每次客户端发出一个请求的时候,服务器就会用一个响应对象来处理这个请求,处理完这个请求之后,服务器就会销毁这个相应对象,以便继续接受其它客服端请求。Response常用属性和方法如下:


常用的方法Redirect与Write:
使用Response对象的Redirect()的方法,转到admin页面,并且使用get方法将Form表单得到的值传递到新的页面中:


5.获取服务器相关信息我们使用Server对象
它常用方法如下:
它常用方法如下:

我们经常会用Server对象来获取一些服务器的信息,如下代码:


6.服务端用户会话使用Session来实现:
Session中的数据保存在服务器端。
Session中的数据保存在服务器端。
客户端请求时Session被创建,请求结束后Session被注消。
Session是保存在服务器中的,如果每一个用户访问都创建一个Session的话服务器将难以承受,所以Session是俱有生命周期的Session的默认生命周期为20分种我们可以通过Session的Timeout来设置。









7.客户端用户会话我们使用Cookie对象:
Cookie不同与Session它是保存在客户端而不是服务器上的。
Cookie中只能保存字符串类型的数据。
Cookie也有其默认生命周期,也可以手动设置,最大可设置成50年之后过期。
设置Cookie就是在服务器响应对象Response的Cookie集合中增加Cookie,Response对象会把这个Cookie集合发送客户端。
Cookie不同与Session它是保存在客户端而不是服务器上的。
Cookie中只能保存字符串类型的数据。
Cookie也有其默认生命周期,也可以手动设置,最大可设置成50年之后过期。
设置Cookie就是在服务器响应对象Response的Cookie集合中增加Cookie,Response对象会把这个Cookie集合发送客户端。
设置Cookie:











读取Cookie:






注意:
经常有朋友想要用Cookie的Expires属性来取得Cookie保存在客户端的有效期,然而这是不可取的,因为当浏览器向服务器发送 Cookie 信息时,并不包括有效期信息。
8.Session PK Cookie
Session是保存在服务器端相对较安全,虽然时间限制较短,但是非常适合用来做为一个网站的后台用户登录。
Cookie是保存在客户端的,虽然只能保存文本,但是保存时间超长,可以做为网站或者论坛社区的前台用户登录。
9.服务器全局缓存对象(应用程序状态Application):
Application也是存储在服务器端的。
Application保存的是全局的共有的信息。
比如计数器的功能(页面的打开次数)
如果我们使用Session保存的话只能针对单个用户,使用Application可以记录或访问每个用户登录的次数。例如:
Application保存的是全局的共有的信息。
比如计数器的功能(页面的打开次数)
如果我们使用Session保存的话只能针对单个用户,使用Application可以记录或访问每个用户登录的次数。例如:


















我们将以上代码放到Page_Load方法中,在每次关闭浏览器打开页面时会发现Label6中的值在不断的累加,而label7中的值只要关了IE重新打开后就变回为1了。
10.最后我们对比一下三者的区别:
