相对路径就是指由这个文件所在的路径引起的跟其它文件(或文件夹)的路径关系。Java
Web项目发布时,其实只将WebContent文件夹部署到服务器上,并将文件夹名WebContent改为项目名,java源代码并不发布,而是运行存放在WebContent—>WEB-INF—>classes目录下的经过编译的class字节码文件。因此,需要我们找到Java
Web相对路径来访问源代码。
1.在web项目中,若我们在访问路径的最前端不加“/”,那就是使用相对路径,如下图所示
上面图中是一个jsp页面,它是项目中WebContent下的index.jsp。这里面写了一个form表单,将表单提交给LoginServlet,而action中没有添加“/”,则这里就是用了相对路径。而这里的相对路径指的是相对于当前的这个前端页面所在的文件夹(我们将在第4步进行测试)。
2.首先我们需要知道,在eclipse的web项目中,前端页面的默认起始路径就是WebContent.现在我们访问我这个项目中的index.jsp,那路径如下图:
上图中,圈1是代表项目名,有人可能会问,你刚刚不是说前端页面的默认起始路径是webContent吗?这里没有看见webContent这字段,这是因为java
web项目发布时,其实只将WebContent文件夹部署到服务器上,并将文件夹名WebContent改为项目名(这里项目就是叫TestWeb),圈2是文件名。
3.我们还需要知道,若需要访问servlet这种在src下的Java文件,也是直接“IP地址/项目名/servlet”,不需要加上包名。如下图,我将访问我项目下LoginServlet。
4.测试
当前我们jsp中代码如下(不加 / ,使用相对路径,看能否访问到LoginServlet):
运行结果(点击提交后):
可以访问到LoginServlet,接下来我将使用在WebContent文件下的Test文件下的index2.jsp文件进行测试,下面为index2.jsp的代码(依旧是使用相对路径)。
运行之后的结果图如下:
大家注意了:此时路径中有改变。当我点击提交后,运行结果图如下:
从上图可以看出来,此时相对路径是http://localhost:8080/TestWeb/Test/,因为我们index2.jsp的页面是在Test文件夹下的,所以此时相对路径是
相对于index2.jsp的路径,自然会多个Test路径,而我们知道要访问src下的servlet
路径应该是,“IP地址/项目名/servlet”,此时多了个Test 怎么可能可以访问到呢。那怎么办呢,这时,我们只能使用绝对路径来访问。关于访问Java
Web绝对路径的知识,小伙伴们可以在本站的Java Web教程中寻找哦。