一些路径问题
(1)$
参考链接:https://www.cnblogs.com/zshibo/p/8011514.html
${pageContext.request.contextPath}是JSP取得绝对路径的方法,等价于<%=request.getContextPath()%>
比如我的项目名称是demo1,在浏览器中输入为http://localhost:8080/demo1/a.jsp
${pageContext.request.contextPath}或<%=request.getContextPath()%>取出来的就是/demo1,而"/"代表的含义就是http://localhost:8080
故有时候项目中这样写${pageContext.request.contextPath}/a.jsp
(2)request.getSession().getServletContext().getRealPath()
-
通常我们可以通过request.getSession().getServletContext().getRealPath()来获取网站的物理路径。
-
假设我们访问http://localhost:8080/myWeb/test.jsp,那么从这个URL地址中我们看到整个的项目名叫myWeb
-
例如myWeb项目的物理路径被配置在E:/aaa下,那么我们使用getRealPath()得到的就是“E:/aaa”
-
getRealPath("/upload")也可以有参数,作用就是获取在项目根路径下的子文件夹的物理路径。即E:/aaa/upload。
3)request.getRequestURL()
-
request.getRequestURL() 返回全路径
-
request.getRequestURI() 返回除去host(域名或者ip)部分的路径
-
request.getContextPath() 返回工程名部分,如果工程映射为/,此处返回则为空
-
request.getServletPath() 返回除去host和工程名部分的路径
例如:
request.getRequestURL() http://localhost:8080/jqueryLearn/resources/request.jsp
request.getRequestURI() /jqueryLearn/resources/request.jsp
request.getContextPath()/jqueryLearn
request.getServletPath()/resources/request.jsp
4)classpath
- classpath是类加载时的路径,当我们通过java 类名称来执行一个java类时,此时就启动了Java虚拟机来解释所需要执行的.class文件,Java虚拟机是通过classpath属性配置的路径来找到所需要解释的.class文件的,默认情况下,classpath都表示当前目录,比如当前目录在D盘,那么classpath就是表示此时在D盘,不会在C盘,E盘。
参考链接:https://www.cnblogs.com/tjava/p/13665926.html
- classpath是指 WEB-INF文件夹下的classes目录
参考链接:https://www.cnblogs.com/wangenxian/p/10926317.html
一个小例子:

浙公网安备 33010602011771号