一直老搞不清楚这两个方法的区别,只知道他们都是拿来获取地址的。今天特意写了个小demo试了一下,代码如下:
@Override
protected void service(HttpServletRequest arg0, HttpServletResponse arg1)
throws ServletException, IOException {
ServletContext context=arg0.getServletContext();
String contextPath=context.getContextPath();
String realPath=context.getRealPath("hahha");
arg1.getWriter().write(contextPath+"\n");
arg1.getWriter().write(realPath+"\n");
}
具体的运行的结果如下:
可以理解为getContextPath()获得的是整个项目的路径位置
而getRealPath()获得的是项目在系统上的真正位置,而且包含了后面的字符串,即使系统上没有此目录