[原创]java WEB学习笔记35:java WEB 中关于绝对路径 和相对路径问题
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用
内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系。
本人互联网技术爱好者,互联网技术发烧友
微博:伊直都在0221
QQ:951226918
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1.绝对路径的问题
1)开发时建议编写"绝对路径":写绝对路径肯定没问题,但是写相对路径可能会出问题
在由 Servlet 转到 JSP 页面时,此时浏览器地址栏上显示的是Servlet 的路径,而 若JSP页面的超链接还是相对JSP页面的地址,则会出现路径混乱的问题。
2)编写绝对路径可以避免上述问题:
① 在javaWEB中什么叫“就对路径”:相对于当前 web 应用的根路径(contextPath)的路径。即,任何的路径都必须带上contextPath
如:http://localhost:8080/javaWEB(contextPath,当前web应用的上下文路劲)/a.jsp
② 如何编写:若 / 代表站点目录,则在前面加上 contextPath 就可以
request.getContextPath();
application.getContextPath();
3)javaWEB 开发中的 / 到底代表什么?
① 当前 web 应用的根路径:http://localhost:8080/contextPath/ :若 / 需要交Servlet 容器来处理
> 请求转发时:request.getRequestDispatcher("/b.jsp").forward(request,response);
> 在web.xml文件中,映射 servlet 访问路径:
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/TestServlet</url-pattern>
</servlet-mapping>
> 各种定制标签中的 /
② WEB 站点的根路径:http://localhost:8080/ :若 / 交由浏览器来处理
> 超链接:<a href="/TestServlet">超链接</a>
> 表单中的action:<form action="/login.jsp"></form>
> 做请求重定向的时候:response.sendRdirect("/a.jsp")