热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

JavaWeb开发之访问路径问题分析

这篇文章主要介绍了JavaWeb开发之访问路径问题,较为详细的分析了javaweb开发过程中常见的绝对路径与相对路径使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了Java Web开发之访问路径问题。分享给大家供大家参考。具体如下:

Web应用是由大量的文件组成的,系统等运行主要是靠文件之间的相互调用来完成,调用就是根据文件的位置来确定的。如果你在访问某个文件的时候,系统报下面这样的错误,如果你的文件名没有写错,就是路径出错了。

为了说明路径问题,我们假设有以下的文档结构:

这是JBuilder2006下的一个截图,应用的名字是filepathweb,有两个文件夹,aa和bb,其中aa下有a_a.jsp和a_b.jsp两个文件,bb下有b_a.jsp文件。

绝对路径

Web文件访问的基本格式如下:

协议://主机:端口/应用名/文件夹名/文件
协议:这里应该是http协议;
主机:是运行Web应用的服务器的地址,可以使用主机名(或者域名),可以使用IP地址,如果是本机的话,可以使用虚拟IP地址(127.0.0.1),可以使用机器名。
端口:Web服务器运行时候所使用的端口,每个服务器程序都会有端口。对于Web应用来说,默认的端口是80。
应用名:在同一个应用服务器上可能运行多个Web应用,这是允许的,我们在访问某个应用的时候,需要指定所访问的Web应用,这个路径通常是Web应用文件夹的名字,但是可以配置成其它的。应用的配置参见Web应用部署相关内容。
文件夹名:在同一个Web应用中可能会根据不同的功能创建不同的文件夹来存放不同功能模块的文件,为了访问这个文件,必须指定它所在的文件夹。
文件:要访问的jsp文件。

需要注意的是文件夹名和文件名共同确定了这个文件,相当于文件的完整路径。对于Servlet的访问,使用的不是文件名,而是在web.xml中配置的路径,可以参加Servlet部分内容。

例:如何访问上面的Web应用的中的a_a.jsp文件,假设在本机上访问,使用的端口是8083,部署的时候使用的应用的名字就是filepathweb。

路径应该这样写:
http://127.0.01:8083/filepathweb/aa/a_a.jsp
或者
http://localhost:8083/filepathweb/aa/a_a.jsp

需要解释几个问题:

(1)有人说,上网的时候从来不需要输入端口,原因是使用了默认端口,Web应用的默认端口是80。
(2)有人说,从来也不需要输入应用的名字,原因是设置了默认应用,关于默认应用请参考本书中的其它相关内容。
(3)有人说,也不需要输入要访问的文件名,原因是设置了欢迎网页,在web.xml中设置的,关于这部分内容,请参考本书中其它相关内容。

相对路径

上面介绍了对于某个文件的访问方式,这里的访问方式叫绝对路径,也就是我们使用完整的路径,在web应用的文件相互访问的时候,除了可以使用绝对路径,还可以使用相对路径。例如,我们要在a_a.jsp文件中访问a_b.jsp,直接写绝对路径肯定没有问题,但是写起来不方便,另外如果部署的时候Web应用的名字发生变化了,访问的路径都需要改变,所以我们应该使用相对路径。

相对路径有两种情况:第一种,相对于当前文件的位置;第二种,相对于应用的位置。

相对路径在使用的时候需要知道以下知识:
(1)当前路径是".",表示当前路径。
(2)上一级路径是"..",要访问上一级文件夹,就需要写"./../"。
(3)相对于应用的路径直接写"/"。

根据上面的情况在a_a.jsp文件中访问a_b.jsp有以下3种方式(通过超链的方式):

a_b.jsp

a_b.jsp

a_b.jsp

第一种情况,就是相对路径,因为a_a.jsp和a_b.jsp在同一个文件夹,所以直接写a_b.jsp,系统会在a_a.jsp所在的文件夹查找a_b.jsp,使用的相对于当前文件的路径。
第二种情况,使用了绝对路径,就是前面介绍过的。
第三种情况,使用了应用的位置信息,然后只要写在应用中的位置就可以了。

这是访问同一个文件的情况,如果要访问不同文件夹的文件怎样办呢?例如,要在a_a.jsp中访问bb文件夹中的b_a.jsp。

对于bb中的b_a.jsp的访问,上面使用的3种方法中的第二种和第三种同样可以直接使用,但是相对于当前文件的路径比较麻烦,下面是在a_a.jsp中访问b_a.jsp的3种方式:

a_b.jsp

a_b.jsp

a_b.jsp

需要说明的是相对于路径,如果当前文件夹比较深,可以多次使用"../","./"表示当前文件夹。

希望本文所述对大家的JSP程序设计有所帮助。


推荐阅读
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 本文介绍了在使用MSXML解析XML文件时出现DTD禁用问题的解决方案。通过代码示例和错误信息获取方法,解释了默认情况下DTD是禁用的,以及如何启用DTD的方法。此外,还提到了网上关于该问题的信息相对较少,因此本文提供了解决方案以供参考。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
author-avatar
阿花-我们寝室的猫
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有