专栏首页给永远比拿愉快JavaWeb开发中的文件访问路径

JavaWeb开发中的文件访问路径

服务器端地址

服务端的地址指的是相对于你的Web应用的地址,这个地址是在服务器端解析的(不同于HTML和JavaScript中的地址,他们是在浏览器端解析的),也就是说这时候在JSP和Servlet中的相对地址应该是相对于你的Web应用,即相对于http://localhost:8080/WebApp/的。

其用到的地方有:forward

Servlet中的request.getRequestDispatcher(address);这个address是在服务器端解析的,所以如果要forward到login.jsp应该这样写:request.getRequestDispatcher("/user/login.jsp");其绝对地址是http://localhost:8080/WebApp/user/login.jsp。

在Servlet中,“/”表示Web应用根目录,和物理路径的相对表示。“./”表示当前目录,“../”表示上级目录,以此类推。

此外,Servlet和JSP中获得文件路径:1. JSP中获得当前应用的相对路径和绝对路径 根目录所对应的绝对路径:request.getRequestURI(); 文件的绝对路径:application.getRealPath(request.getRequestURI()); 当前web应用的绝对路径:application.getRealPath("/"); 取得请求文件的上层目录:newFile(application.getRealPath(request.getRequestURI())).getParent(); 2. Servlet中获得当前应用的相对路径和绝对路径 根目录所对应的绝对路径:request.getServletPath(); 文件的绝对路径:request.getSession().getServletContext().getRealPath(); 当前web应用的绝对路径:servletConfig.getServletContext().getRealPath("/");

客户端的地址

所有的HTML页面中的相对地址都是相对于服务器跟目录(http:localhost:8080/)的,而不是根目录下的Web应用目录http://localhost:8080/WebApp/。

HTML中的form表单的action属性的地址应该是相对于服务器根目录http://localhost:8080/的,所以提交到loginjsp的路径应该为:action="/WebApp/user/login.jsp"。

JavaScript也是在客户端解析的,所以其相对路径和form表单一样。

所以一般情况下,在HTML页面中引用的CSS和JS还有表单的action属性前面都最好加上应用的名称。另外,尽量避免使用'./'和".//"等相对路径。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Leetcode: Remove Element

    题目: Given an array and a value, remove all instances of that value in place an...

    卡尔曼和玻尔兹曼谁曼
  • JDBC:Java数组和数据库中Array类型的映射

    如果使用Hibernate框架,Java类型和数据库类型的映射可以通过配置文件进行。

    卡尔曼和玻尔兹曼谁曼
  • Java连接MySQL数据库

    卡尔曼和玻尔兹曼谁曼
  • Python爬虫基础

    Python非常适合用来开发网页爬虫,理由如下: 1、抓取网页本身的接口 相比与其他静态编程语言,如java,c#,c++,python抓取网页文档的接口更简洁...

    用户7678152
  • 从原理层面掌握@SessionAttributes的使用【享学Spring MVC】

    该注解顾名思义,作用是将Model中的属性同步到session会话当中,方便在下一次请求中使用(比如重定向场景~)。 虽然说Session的概念在当下前后端完...

    YourBatman
  • PHP关键字this指向当前对象指针

    PHP关键字this是指向当前对象的指针。我们将和大家一起结合一个范例来细细研究一下PHP关键字this的相关用法和具体功能体现。

    用户7657330
  • 责任链模式(分离职责,动态组合)

    登录、注册功能是日常开发中必备的功能,不管哪里都有它的身影。现在需要给客户提供一个注册功能,就如下图那样。

    幺鹿
  • 10个流行的JavaScript面试题

    JS 初学者总是对 this 关键字感到困惑,因为与其他现代编程语言相比,JS 中的这this关键字有点棘手。 “this” 一般是表示当前所在的对象,但是事情...

    前端小智@大迁世界
  • 10个流行的JavaScript面试题

    JS 初学者总是对 this 关键字感到困惑,因为与其他现代编程语言相比,JS 中的这 this关键字有点棘手。“this” 一般是表示当前所在的对象,但是事情...

    前端达人
  • 遵循面向对象设计原则,设计出高内聚低耦合可扩展模块

    所谓易,“变易”,“简易”,“不易”,就是要告诉我们如何从变化中 抽出 不变的 —— 选择一个正确的抽象视角。七大基本原则介绍完毕,很空洞,需要联系代码仔细体会...

    wuweixiang

扫码关注云+社区

领取腾讯云代金券