最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
asp.net编程篇之Request对象和虚拟路径
时间:2012-08-15 编辑:简简单单 来源:一聚教程网
编程处理”~”
(1) 如果在服务端控件中(使用runat=”server”的控件)会自动将”~”进行转换,如果在HTML控件或者需要在代码中转换的话可以使用VirtualPathUtility类中静态方法进行虚拟路径,全路径等的转换,比如:VirtualPathUtility.ToAbsolute(“~/a/b.aspx”)就是将虚拟路径转换为相对应于应用程序根目录的全路径,也就是”WebSite/a/b.aspx”。
(2) VirtualPathUtility类的主要方法
1) string AppendTrailingSlash(string VirtualPath);如果路径VirtualPath最后没有”/”则添加。
2) string Combine(string basePath,string relativePath);将两个路径进行合并。
3) string GetDirectory(string virtualPath); 返回虚拟路径的目录部分。
4) string MakeRelative(string fromPath,string toPath); 计算两个虚拟路径的相对路径。
5) ToAbsolute:转换为绝对路径。
(3) 举例说明:新建一个Web项目,起名为路径.aspx
代码如下 | 复制代码 |
|
然后拖放两个HyperLink控件,给两个控件的Text起名为Ce1,ce2,给两个控件的NavigateURl赋值为”/b.htm”,”~/b.htm”。在Page_Load事件下面写入如下代码:
代码如下 | 复制代码 |
Response.Write("动态" + " Response.Write(VirtualPathUtility.Combine(VirtualPathUtility.AppendTrailingSlash("~/a/b"), "c.htm")); |
Request对象
(1) Request.AppRelativeCurrentExecutionFilePath,获取当前执行请求的相对于应用根目录的虚拟路径,以”~”开头,比如:”~/第七篇/index.aspx”。
Response.Write(Request.AppRelativeCurrentExecutionFilePath);
(2) Request.physicalApplicationPath,获取当前应用的物理路径,比如:E:programmer黑马程序员练习题aspnetpracticeashx
代码如下 | 复制代码 |
Response.Write(Request.PhysicalApplicationPath); |
(3) Request.PhysicalPath,获取当前请求的物理路径,比如:E:programmer黑马程序员练习题aspnetpracticeashx第七篇index.aspx
代码如下 | 复制代码 |
Response.Write(Request.PhysicalPath + " "); |
(4) Request.RawURL,获得原始请求URL,比如:/ashx/第7篇/Index.aspx,Request.URL获得请求的URL,比如:http://localhost:2602/ashx/第7篇/Index.aspx,区别涉及到URL重写的问题。
代码如下 | 复制代码 |
Response.Write(Request.RawUrl + " Response.Write(Request.Url + " |
(5) Request.UrlReferrer网页的来源,可以根据这个判断从百度搜到的哪个关键字,防下载盗链,放图片盗链,可以伪造“本图片仅供博客园内部交流使用”,全局防盗链用Globals.asax。
(6) Request.UserHostAddress获得访问者的IP地址
代码如下 | 复制代码 |
Response.Write(Request.UserHostAddress + " "); |
(7) Request.UserLanguage获得访问者浏览器支持的语言,可以通过这个实现对不同语言的人显示不同页面。
代码如下 | 复制代码 |
Response.Write(Request.UserLanguages + " "); |
(8) Request.Cookies获取浏览器发过来的浏览器端的Cookie,从他里面读取Cookie值,比如:context.Request.Cookies[“mysessionID”],使用Request.Cookie的时候一般只是读取,将Cookie写回浏览器要用Response.Cookies。
(9) Request.MapPath(virtualPath)将虚拟路径转换为磁盘上的物理路径,request.Mappath(~/第七篇/index.aspx)就会得到:E:programmer黑马程序员练习题aspnetpracticeashx第七篇index.aspx
代码如下 | 复制代码 |
Response.Write(Request.MapPath("~/第七篇/index.aspx")); |
(10) 新建一个文件夹Request对象,然后新建一个一般处理程序,新建一个HTML页面,在HTML页中写入如下代码:
代码如下 | 复制代码 |
然后在.ashx页面中写入如下代码:
代码如下 | 复制代码 |
context.Response.ContentType = "image/JPEG"; |
-
上一个: C中一些常用的字符串hash函数
-
下一个: 在网页中实现“截屏”上传图片功能
相关文章
- asp.net Request.Param 用法 10-18
- asp.net Request.ServerVariables参考手册 06-24
- asp.net request相关操作 01-28
- HttpApplication 属性 Request(HttpRequest)ASP.NET 01-08
- asp.net 的 Request对象 01-12
- C#复制数组的两种方式及效率比较解读 10-24