response与request
1.aspx 和 cs 和 dll 之间的关系 网站运行时其实会编译成程序集dll aspx,aspx.cs页面会被编译成类 aspx前台页面类,继承自aspx.cs后台页面类, 所以在aspx中可以访问cs类中的非私有的成员
2.查看当前所运行程序集的物理路径 Response.Write(this.GetType().Assembly.Location +"<br/>")
3.Request.UrlReferrer 请求的来源 可以根据这个判断从百度搜的哪个关键词、防下载盗链、防图片盗链, 可以伪造(比如迅雷)。"本图片仅供如鹏网内部交流使用"。(使用全局一般处理程序)
4.Request.UserHostAddress 获得访问者的IP地址
5.Request.MapPath(virtulPath) 将虚拟路径转换为磁盘上的物理路径 Request.MapPath("./a/b.aspx") 就会得到D:\2008\WebSites\WebSite4\a\b.aspx Server.MapPath里就是调用的Request.MapPath
6.响应的缓冲输出: 为了提高服务器的性能,ASP.Net向浏览器Write的时候 默认并不会每Write一次都会立即输出到浏览器,而是会缓存数据 到合适的时机或者响应结束才会将缓冲区中的数据一起发送到浏览器
7.Response对象的主要成员: 1、Response.Buffer、Response.BufferOutput:经过Reflector反编译,发现两个属性是一样的,Buffer内部就是调用的BufferOutput。这个属性用来控制是否采用响应缓存,默认是true。 2、Response.Flush() 将缓冲区中的数据发送给浏览器。这在需要将Write出来的内容立即输出到浏览器的场合非常适用。案例:大批量数据的导入,显示正在导入第*条数据,用Thread.Sleep模拟耗时。 3、Response.Clear()清空缓存区中的数据,这样在缓存区中的没有发送到浏览器端的数据被清空,不会被发送到浏览器。 4、Response.ContentEncoding输出流的编码。 5、Response.ContentType 输出流的内容类型,比如是html(text/html)还是普通文本(text/plain)还是JPEG图片(image/JPEG)。 6、Response.OutputStream 输出流,在输出图片、Excel文件等非文本内容的时候要使用它 7、Response.End() 终止响应,将之前缓存中的数据发给浏览器, End()之后的代码不会被继续执行,End方法里调用了Flush()方法。 在终止一些非法请求的时候,比如盗链等可以用End()立即终止请求。
8.Server对象: Server属性是HttpServerUtility的一个实例,它提供对服务器上的方法和属性的访问。 MapPath()方法: 取得文件的物理路径 Execute()方法和Transfer()方法: 执行另一个页面的脚本 HtmlEncode()和HtmlDecode() :将文本编码成可以在浏览器中正确浏览的格式 UrlEncode()和UrlDecode() : URL编码和解码
9.Transfer: 第一个页面直接调用第二个页面,执行完第二个页面后不再返回第一个页面,立即响应到客户端浏览器。 Execute: 第一个页面直接调用第二个页面,执行完第二个页面后再返回第一个页面执行,最后响应到客户端浏览器。