本文的路径问题是基于idea进行介绍。
一. 路径处理的分类
路径的处理需要分为服务端路径和浏览器路径。服务器路径可以理解为你的idea中的javaWeb项目的路径如:/mySpringmvc/WEB-INF/springmvc-servlet.xml
,用于在服务器内部调用服务器的资源。而浏览器路径是从外部请求服务器的资源,需要定位到服务器,再到项目名(通常会在添加进tomcat时起个别名),再到项目里具体的资源。
二. 绝对路径与相对路径
服务器端的绝对路径是指以项目名开头的路径。如/mySpringmvc/show.jsp
。浏览器的绝对路径是以协议名,ip地址,端口号开始的路径,如http://localhost:8080/mySpringmvc/some.do?name=%27%E5%BC%A0%E5%B1%B1%27
。绝对路径有个简便的写法,即在服务端用’/‘代替/mySpringmvc/
或者在浏览器用’/‘代替http://localhost:8080/
。所以浏览器路径f的’/'后面需要加上项目名而服务端路径不能加上项目名。
相对路径是指当前页面的路径+请求的资源名称
如some.do?name=%27张山%27
因此这种路径会随着页面的变化而变化,有时会发生错误。
三. 哪些是服务端路径,哪些是浏览器路径呢?
常见的浏览器路径:浏览器地址栏里的路径,超链接里的路径,表单的action绑定的路径,重定位里的路径 response.sendRedirect("");
常见的服务端路径:配置文件中的路径,请求转发的路径 request.getRequestDispatcher().forward();
四. maven中的目录说明
webapp的的所有文件都会被放在类路径下,java目录(不是.java文件!!!!)和resources目录里的文件都会被放到类路径下的WEB-INF目录下,并且WEB-INF里的文件不能被浏览器访问,只可以被服务器内部调用。