JSP、Java和Servlet获取当前工程的路径:
1.JSP中取得路径:
以工程名为TEST为例:(1)得到包含工程名的当前页面全路径:request.getRequestURI()结果:/TEST/test.jsp(2)得到工程名:request.getContextPath()结果:/TEST(3)得到当前页面所在目录下全名称:request.getServletPath()结果:如果页面在jsp目录下 /TEST/jsp/test.jsp(4)得到页面所在服务器的全路径:application.getRealPath("页面.jsp")结果:D:\resin\webapps\TEST\test.jsp(5)得到页面所在服务器的绝对路径:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent();结果:D:\resin\webapps\TEST
在JavaWeb开发中,常使用绝对路径的方式来引入JavaScript和CSS文件,这样可以避免因为目录变动导致引入文件找不到的情况,常用的做法如下:
一、使用${pageContext.request.contextPath}
例如:
1 2 3 4
使用<%=request.getContextPath()%>和使用${pageContext.request.contextPath}达到同样的效果
1
<%
String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";System.out.println(basePath);//这里获得的就是 协议名://服务器名:请求端口号/项目名///basePath=http://localhost:8080/TEST
%>如果我们要导入一个富文本控件,以时间控件为例:
<script language="javascript" type="text/javascript"
只需要在相对项目资源的相对路径(此处为src属性,还有href属性)前加上 <%=basePath> 或 ${bashPath} 或 ${page.basePath} 皆可