一直老搞不清楚这两个方法的区别,只知道他们都是拿来获取地址的。今天特意写了个小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+" "); arg1.getWriter().write(realPath+" "); }
具体的运行的结果如下:
可以理解为getContextPath()获得的是整个项目的路径位置
而getRealPath()获得的是项目在系统上的真正位置,而且包含了后面的字符串,即使系统上没有此目录