关于Web工程的绝对路径和相对路径

参考自:https://blog.csdn.net/cuiyaoqiang/article/details/51336559

前言:在web开发中,我们常常会碰到关于路径跳转的问题,这里我们讨论绝对路径和相对路径的区别。

一、绝对路径

  相对于当前Web应用根目录的路径,可以用内置对象获取,例如web工程下的主页的绝对路径为:http://localhost:8080/FirstWebDemo/index.jsp (EL表达式获得:

<c:set var="basePath" value="${pageContext.request.scheme}://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}/"/> ),还可以用斜杆表示,下面进行讨论。

二、相对路径

  相对于当前目录的路径,常用斜杠表示,下面进行讨论。

三、有斜杆和无斜杆在与绝对路径和相对路径的关系

  以‘/’开头的路径表示绝对路径,不以‘/’开头的路径表示相对路径。

  1. 对于绝对路径的URL的‘/’需要根据不同情况来表示不同的含义:

  如果是服务器使用的地址,则‘/’代表当前web应用,例如请求转发。

request.getRequestDispatcher("/page/test1.jsp").forward(request, response);//正确
request.getRequestDispatcher("/RequestAndResponse/page/test1.jsp").forward(request, response);  //HTTP Status 404 - /RequestAndResponse/RequestAndResponse/page/test1.jsp

  如果是客户端使用的地址,则 ‘/‘ 代表当前站点(tomcat的webapps目录或http://localhost:8080/),例如请求重定向,url超链接跳转,表单跳转。

//请求重定向
response.sendRedirect("/page/test1.jsp");//error: http://localhost:8080/page/test1.jsp
response.sendRedirect("/RequestAndResponse/page/test1.jsp");//正确

//表单提交跳转
<form action="/page/test1.jsp">
 <input type="text" name="username" value="中国">
 <input type="submit" value="提交" name="button">
 (action="/page/test1.jsp" 地址错误=localhost:8080/page/test1.jsp)
 </form>
 <form action="/RequestAndResponse/page/test1.jsp">
 <input type="text" name="username" value="中国">
 <input type="submit" value="提交" name="button">
 (action="/RequestAndResponse/page/test1.jsp" 地址正确)
 </form>

//url超链接跳转
 <a href="/page/test1.jsp">连接1(href="/page/test1.jsp" 地址错误)</a><p>
 <a href="/RequestAndResponse/page/test1.jsp">连接3(href="/RequestAndResponse/page/test1.jsp" 地址正确)</a> <p> 

  2.  对于相对路径的URL是不需要斜杆的,需要无斜杆,或需要./或../

  无斜杆和./含义是一致的,都代表当前目录下

response.sendRedirect("page/test1.jsp");//正确

  ../代表上一目录

response.sendRedirect("../test2.jsp");//正确

原文地址:https://www.cnblogs.com/chenloveslife/p/8995336.html

时间: 2024-08-30 08:05:19

关于Web工程的绝对路径和相对路径的相关文章

java web工程中logback换配置文件的路径

本人小网站:   http://51kxd.com/  欢迎大家不开心的时候访问访问,调节一下心情 web.xml中配置: <!-- windows  logback.xml文件跟web容器(比如tomcat)在同一个目录中.linux随意  --> <context-param> <param-name>logbackConfigLocation</param-name> <param-value>file:/datum/Data/conf/c

web工程中的各种路径(eclipse开发)

目前遇到的 web 工程中要写url和路径的文件有 webContent中.jsp/.html src中的servlet类 src非servlet类的普通类 .jsp/.html form表单提交的action 1. 跳转到.jsp 使用相对路径,相对于web工程根目录 <!-- from JSP1.jsp to JSP2.jsp --> <!-- JSP1.jsp中的form --> <form action="File/JSP2.jsp"> &l

web应用的绝对路径和相对路径

经常写web工程,就会涉及很多路径问题,今天复习下绝对路径和相对路径,以提醒自己下次不要以为路径问题头疼. 1.绝对路径和相对路径 相对路径:helloworld  ./helloworld ../helloworld            这样的都是相对路径 绝对路径:/helloworld   /myweb/helloworld 2.相对路径相对谁 相对路径相对的是当前的url,怎么解释,例如: 当前url为http://localhost:8080/day/tijiao.html,看一下t

java ,js获取web工程路径

一.java获取web工程路径 1),在servlet可以用一下方法取得: request.getRealPath(“/”) 例如:filepach = request.getRealPath(“/”) ”//upload//”; 2),不从jsp,或servlet中获取,只从普通java类中获取: String path = getClass().getProtectionDomain().getCodeSource().getLocation().getPath(); SAXReader()

Tomcat通过配置一个虚拟路径管理web工程

关于虚拟路径.学问javaweb训练课程,如今,鉴于这种情况下老师. 当我们的项目,当在不同的文件夹项目.我们如何使用tomcat去管理web工程. 教师提出的解决方案是 使用虚拟路径方式,并按照实施例,以下面的方式tomcat进行配置.使得 tomcat能够管理不同文件夹上的项目. 我的问题:项目不是转换成war包公布到tomcat上吗,然后放在了webapps文件夹以下吗? 或者直接把项目放置webapps以下. 1.为什么有可能出现 管理不同文件夹下的web项目呢? 2.上面两种方式,处理

eclipse 创建maven 项目 动态web工程(出现问题)

Eclipse 创建maven 项目 动态web工程 注:Eclipse版本为(Version: Mars.1 Release (4.5.1))maven版本为(apache-maven-3.3.9) 1. 此处是在你安装好了maven插件的前提下进行的并且配置好了你的maven环境指定好了你的maven的本地仓库.下面就开始maven web项目的搭建 首先:点击新建一个项目maven 2.点击next 3.选择web选项 4.创建你的项目的坐标点击finish完成 5.项目创建完成但是有错误

在javaEE下学习web(在eclipse中开发动态的WEB工程,servlet的环境搭建,及servlet的一些方法)

一个简便的方法实现javaee版的eclipse开发动态的WEB工程(javaWEB项目)1.把开发选项切换到javaEE2. 可以在window->shou view 中找到package explorer并把其拖到开发区的左边 (Tomcat环境搭建在这不多说)3.在servers面板中新建Tomcat服务器,一定要关联到Tomcat安装的根目录4.新建一个Dynamic Web Project.其中Target Runtime需选择Tomcat6.0(3)5.开发java WEB应用6.可

maven创建web工程Spring配置文件找不到问题解决方案

使用maven创建web工程,将Spring配置文件applicationContext.xml放在src/resource下,用eclipse编译时提示class path resource [applicationContext.xml] cannot be opened because it does not exist错误.但是用mvn clean package命令编译时成功的.web.xml配置的如下 <context-param><param-name>context

【ASP】Win2003下IIS的配置,并且把WEB工程发布到网络

一.IIS的安装 1.首先打开Windows2003的控制版面,查看是否有"管理工具",没有也不要紧,点击"添加或删除程序".有的话,可以直接进入第二步,IIS的配置. 2.在弹出的窗口,选择添加/删除Windows组件的功能,选择把"网络服务"组件与"应用程序服务器"的组件勾上,一般情况,单纯勾上这两个组件还不行,还要打开"应用程序服务器"组件的详细信息,把里面能勾的都勾上,如果勾上只是出现灰色小勾,那么