今天小编来学习一下Asp.net内置对象,首先我们从简单入手,先用表格说明一下:Request和Response
<body>
<table border="1" width="600px" bordercolordark="#2B72A2" bordercolorlight="#993333">
<tr><td colspan="2" bgcolor="#80ffff">Request</td></tr>
<tr><td>ApplicationPath(网站路径</td><td><%=Request.ApplicationPath%></td></tr>
<tr><td>ContentEncoding(网站编码</td><td><%=Request.ContentEncoding%></td></tr>
<tr><td>Cookies个数</td><td><%=Request.Cookies.Count%></td></tr>
<tr><td>QueryString个数</td><td><%=Request.QueryString.Count%></td></tr>
<tr><td>UrlReferrer(上一个请求页面)</td><td><%=Request.UrlReferrer %></td></tr>
<tr><td colspan="2" bgcolor="#80ffff">Response</td></tr>
<tr><td>Charset</td><td><%=Response.Charset%></td></tr>
<tr><td>ContentEncoding(网页编码)</td><td><%=Response.ContentEncoding%></td></tr>
<tr><td>Cookies个数</td><td><%=Response.Cookies.Count %></td></tr>
<tr><td>ContentType</td><td><%=Response.ContentType %></td></tr>
</table>
</body>
附源码:Request对象封装了客户端的请求信息;Response对象代表了服务器响应的对象,每次客户端发出请求的时候,服务器就会用一个响应对象来处理这个请求,并且每次处理完毕服务器都会销毁这个对象。
Request | |
ApplicationPath(网站路径 | / |
ContentEncoding(网站编码 | System.Text.UTF8Encoding |
Cookies个数 | 0 |
QueryString个数 | 0 |
UrlReferrer(上一个请求页面) | |
Response | |
Charset | gb2312 |
ContentEncoding(网页编码) | System.Text.DBCSCodePageEncoding |
Cookies个数 | 0 |
ContentType | text/html |
接下来我们学习Server对象和Cookie对象 and Application对象 |
Server:用于获取服务器相关信息 | ||
属性名 | 返回值类型 | 说明 |
Execute | void | 执行指定的资源,并且在执行完之后再执行本页的代码 |
HTMLDecode | string | 消除对特殊字符串编码的影响 |
属性名 | 返回值类型 | 说明 |
属性名 | 返回值类型 | 说明 |
属性名 | 返回值类型 | 说明 |
属性名 | 返回值类型 | 说明 |
Cookio对象和Session对象一样用来保存特定的用户相关的数据,但是Session保存到服务器而Cookie保存在客户端,每次客户都需要重新把Cookie发送到客户端保存。
- Cookie只能保存字符串类型数据。
- Cookie也有其默认的生命周期,亦可手动设置,最大50年。
- Cookie只保存在客户端。
- 因为一个网站Cookie不止一个,所以可以区分不同的Cookie
Session/Cookie/Application区别 名称 使用范围 存储位置 存放数据类型> 声明周期 Session 特定用户 服务器 Object,任意类型> 有,可以自行设置 Cookie 特定用户 客户端 String,字符串 自行设置 Application 所有用户 服务器 Object,任意类型> 无 小试牛刀:
<body> <%//如果没有设置名为"ApplicationCount"的Application int applicationCount = 1; int sessionCount = 1; if (Application["ApplicationCount"] == null) { Application["ApplicationCount"] = 1; } else //否则取出该Session,并且在当前值上加 { applicationCount = (int)Application["ApplicationCount"] + 1; Application["ApplicationCount"] = applicationCount; } //如果Session["SessionCount"]为空,即没有设置该名字的Session if (Session["SessionCount"]==null) { Session["SessionCount"] = 1; } else { sessionCount = (int)Session["SessionCount"] + 1; Session["SessionCount"] = sessionCount; } Response.Write("当前页面由Application记录到的被访问了" + applicationCount + "次<br/>"); Response.Write("当前页面由Session记录到的被访问了" + sessionCount + "br/>"); %> </body>
最后我们学习一下<%%>and<%=%>and Response.Write()输出 首先我们用Response对象输出九九乘法表:
<body> <table border="1"width="600px"> <tr><th colspan="9">九九乘法表</th></tr> <% for (int i = 1; i < 10; i++) { Response.Write("<tr>"); for (int j = 0; j < 10; j++) //输出一行中的列 { if (j<=i) //如果有内容 { Response.Write(string.Format("<td>{0}*{1}={2}</td>", j, i, j * i)); } else { //否则输出空单元格 Response.Write("<td> </td>"); } } Response.Write("</tr>"); } %> </table>
我们利用%来进行表达:
<body> <table border="1"width="600px"> <tr><th colspan="9">九九乘法表</th></tr> <% for (int i = 1; i < 10; i++) { %><tr><% for (int j = 0; j < 10; j++) //输出一行中的列 { if (j<=i) //如果有内容 { %> <td><%=j%>*<%=i%>=<%=i*j%></td> <% } else { //否则输出空单元格 %><td> </td> <% } } %></tr><% } %> </table> </body>
三者区别 <%%> 用来编写程序的代码部分,此处没有过多解释 <%=%> 用来向输出流中输出变量的值 Response.Write() 输出和<%=%>效果一样,但是在书写代码的时候不好书写