在MyEclipse下创建.jsp文件后,基于基础模板生成的页面的顶部第2行开始,总是如下的代码:
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
代表了服务器应用程序根路径:http://ip:port/applicationpath/,如http://192.168.1.102:8009/webtest/,这样,在之后引用根目录下的子文件夹的内容时,可以使用<%=basePath%>subpath/file.dat的形式以在浏览器端形成绝对路径。
而在vs2008中,新建一个默认的.aspx文件后,却没有如上的功能,这里做一个实现记录:
<%
string path = Request.ApplicationPath.CompareTo("/") == 0 ? "" : Request.ApplicationPath;
string basePath = HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Host + ":" + HttpContext.Current.Request.Url.Port + path + "/";
%>
这样,在.aspx文件内也可以使用<%=basePath%>subpath/file.dat的形式生成绝对路径了。
为保持完整性,引用js中的实现方式:见“js中实现jsp中的basePath”文章:http://blog.csdn.net/bzuld/article/details/9251763