在web应用中,在JSP页面中会像下面这样得到相对路径和绝对路径
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.io.*" %>
<%
在Servlet与JSP中取得当前文件所在的相对路径与绝对路径
out.println("根目录所对应的绝对路径:" + request.getRequestURI() + "<br/>");
这个时候得到的就是相对路径,
String strPathFile = application.getRealPath(request.getRequestURI());
out.println("文件的绝对路径:" + strPathFile+ "<br/>");
out.println(application.getRealPath(request.getRequestURI()));
String strDirPath = new File(application.getRealPath(request.getRequestURI())).getParent();
out.println("目录的绝对路径:" + strDirPath + "<br/>");
这个时候得到的就是绝对路径,
%>
JSP中的application对象就是Servlet中的ServerContext,所以在Servlet中是如此获得
System.out.println("根目录所对应的绝对路径:" + request.getServletPath() + "<br/>");
在Servlet中,如果想到得到相对路径和绝对路径,就要按下面的方法得到了:
String strPathFile = request.getSession().getServletContext().getRealPath(request.getRequestURI());
System.out.println("文件的绝对路径:" + strPathFile + "<br/>");
String strDirPath = new File(request.getSession().getServletContext().getRealPath(request.getRequestURI())).getParent();
System.out.println("目录的绝对路径:" + strDirPath + "<br/>");
当然还要特别请注意的是:
文件名不能包括以下字符:\ 、/、*、?、"、<、>、| 、&、
用下面的方法可以得到Web项目的全路径
String strFullPath = getServletContext().getRealPath("/");
out.println(strFullPath);
按照下面的方法可以获得Web项目的上下文路径:
String strContextPath = request.getContextPath();
out.println(strContextPath);