我在学习javaweb阶段的时候,在读取或者写入对象的时候,发现容易混肴了关于路径的 “/” “” “.” “./” “…/” “classpath:” "${pageContext.request.contextPath}"等等!所以自己抽时间做了一份总结,用于归类记忆 !
public class HelloServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse resp) throws ServletException, IOException { System.out.println("request.getContentLength(): " + request.getContentLength()); System.out.println("request.getContentType(): " + request.getContentType()); System.out.println("request.getContextPath(): " + request.getContextPath()); System.out.println("request.getMethod(): " + request.getMethod()); System.out.println("request.getLocale(): " + request.getLocale()); System.out.println("request.getQueryString(): " + request.getQueryString()); System.out.println("request.getRequestURI(): " + request.getRequestURI()); System.out.println("request.getRequestURL(): " + request.getRequestURL()); System.out.println("request.getServletPath(): " + request.getServletPath()); System.out.println("request.getRemoteAddr(): " + request.getRemoteAddr()); System.out.println("request.getRemoteHost(): " + request.getRemoteHost()); System.out.println("request.getRemotePort(): " + request.getRemotePort()); System.out.println("request.getScheme(): " + request.getScheme()); System.out.println("request.getServerName(): " + request.getServerName()); System.out.println("request.getServerPort(): " + request.getServerPort()); System.out.println("request.getServletContext().getRealPath('/'):" + request.getServletContext().getRealPath("/")); System.out.println("request.getServletContext():" + request.getServletContext()); } protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } } 访问 http://localhost:8080/reqestAndResponse/CC 后的结果是 :
1. 可以发现路径有"/" 和 "\"
"/"代表的是web的路径!“\“代表的是真实的路径,也就是我们本地电脑中某一个文件的路径。注意在web中使用要转义”\\”2. 绝对路径与相对路径(先创建一个a.html文件)
绝对路径 写全所有路径(可以使用根目录) 注意:这里是客户端外部,所以根目录"/"不包含项目名称.相对路径 上图中,CC的位置相对于a.html为同一个文件夹:./CC 或者 CC …/ 的意思是 : 上一个文件夹中!3. 关于"." 有"."那么就是涉及到类 比如说,CC是在servletContext容器中的一个servlet,是一个单例的对象。 所以我们在web.xml中配置该对象的时候,为: 4. 关于classPath 一般使用是在spring配置文件ApplicationContext.xml中 :
等等。。。 。。。