相对路径
1.
<!-- 2.以"/"开头的相对地址 --> <!-- /代表了整个web项目,即:http://localhost:8080/ --> <a href="/javaee/jsp/b.jsp">这是以"/"开头的相对地址超链接</a><br/>
2.
<!--
不以/开头,则相对于当前资源的路径
当前资源的路径为:http://localhost:8080/javaee/jsp/
而b.jsp也在此路径下
所以直接书写b.jsp
-->
<a href="b.jsp">这是不以"/"开头的相对地址超链接</a><br/>
3.
<!-- 3.不以/开头的相对地址 --> <!-- 不以/开头的相对路径是相对于当前资源的路径 此时form.jsp的地址为:http://localhost:8080/javaee/jsp/form.jsp 所以当前资源路径为:http://localhost:8080/javaee/jsp 而要提交的Servlet的路径为Http://localhost:8080/javaee/PathServlet 所以路径为当前路径的上一级路径下 即路径为:../PathServlet 注:.代表当前路径 ..代表当前路径的上一级路径 --> <form action="../PathServlet" methoe="get"> username:<input type="text" name="username" value=""> <input type="submit" value="表单提交到Servlet---不以/开头的相对地址"> </form>
4.
ServletContext获取资源
这里ServletContext获取资源的路径是相对系统的绝对路径(在Windows中是带盘符的,可以用来获取上传或下载文件的具体路径)。
基本语法:servletContext.getRealPath("路径");参数中的路径必须是相对路径,可以“/”开头,也可以不使用“/”开头,但无论是否使用“/”开头都是相对当前应用路径,建议以"/"开头(这样可以尽量统一)。
另外获取ServletContext的方法如下:
1)使用request获取: request.getSession().getServletContext();
2)在Servlet中获取:this.getServletContext();
3)使用FilterConfig对象获取(在Filter中使用):config.getServletContext();
ServletContext获取资源必须是相对路径,不能是绝对路径,但不管是以/开头,还是不以/开头, 都是相对于当前资源的相对路径 。