古詩詞大全網 - 成語解釋 - getContextPath和getRealPath的區別

getContextPath和getRealPath的區別

這個問題很簡單,實驗壹下就出來了,其實主要區別就是相對路徑和絕對路徑:

getContextPath返回的是相對路徑,工程的項目的相對路徑;

getRealPath返回的絕對路徑,就是在文件系統的實際路徑;

下面是我自己做的實驗,在SpringMvc+Spring+Hibernate的項目中做的實驗

@Controller

public class IndexController {

@RequestMapping("/")

public String index(HttpServletRequest request){

System.out.println(request.getContextPath());

System.out.println(request.getSession().getServletContext().getContextPath());

System.out.println(request.getServletContext().getContextPath());

System.out.println(request.getServletContext().getRealPath("/"));

System.out.println(request.getSession().getServletContext().getContextPath());

System.out.println(request.getSession().getServletContext().getRealPath("/"));

return "index";

}

}

上面的打印結果如下:

/cn.test

/cn.test

/cn.test

E:\StudyResource\Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\cn.test\

/cn.test

E:\StudyResource\Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\cn.test\

其實request、session、ServletContext調用getContextPath返回的結果是相同的