web应用中的引用路径集汇

2024-03-23 05:38
文章标签 路径 引用 应用 web 集汇

本文主要是介绍web应用中的引用路径集汇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

test2.js  与index.jsp 放在同一文件夹下,比如: web应用/home/下面.


要把test2.js 引入到 index.jsp中,  针对三种情况,分析如下:

 

----------------------------------------------------------

 

第一种情况
一般在学习时, 一个tomcat上都跑多个工程, 用工程名来区分
因为我的的URL是 :http://localhost/工程名 /home/index.jsp
多了一个工程名,所以要加 <%=request.getContextPath() %>
如下:
<script src="<%=request.getContextPath() %> /home/test.js"></script>

 

---------------------------------------------------------------------------------

第二,  访问JSP文件时, 用相对路径引入JS,CSS文件是OK的

 

真实项目中,  一个tomcat上要是也跑了多个工程, 并用IP来区分
url 是这样的:  http://localhost/home/index.jsp     注意这里,是直接访问JSP文件,不是servlet,不是struts .
test2.js  与index.jsp 放在同一文件夹下
下面用相对路径来引入 JS文件 是OK 的:
<script src=test2.js></script>

 

index.jsp可以找到test2.js文件

 

 

------------------------------------------------------------------------------


第三种情况:

 

在第二情况的基础上, 我们访问的是 servlet 或是struts的action  , 再转发到 index.jsp


url 是:  http://localhost/***.do  这里不是访问JSP文件了

 

下面是OK 的.
<script src=/home/test2.js></script>

test2.js  前面一定要有/home/

实际项目中, 访问 servlet或是struts的action最多, 所以这里要注意 了.

 

 

下面是错误的, index.jsp找不到test2.js文件

<script src=test2.js></script>

 本来在 "第二种情况"中, 上面是OK的, 但现在情况有点不同了,不是访问JSP文件了,访问的是 servlet或是struts的action了.

 

 

-------------------------------------------------------------------------------

 

        对上面现象的分析: (源自网络)


一. 我们平常 说的 "相对路径 ": 适用于"第二种情况"

 

有个html文件:a.html,其中有<link href="one.css" rel="stylesheet" type="text/css">,其中href属性表示引用的css文件的路径。

one.css:表示one.css和a.hmtl处于同一个目录

user/one.css:表示one.css处于a.html所在目录的子目录user中。

../one.css:表示one.css位于a.hmtl上一级目录下,

../../one.css:表示one.css位于a.hmtl上一级目录的上一级目录下,

./:表示和a.hmtl同一目录

我们称上述相对路径为html相对路径

 

 

 

 

二. 服务器端的相对路径  ,  适用 于"第三种情况"

 

服务器端的相对地址指的是相对于你的web应用的地址,这个地址是在服务器端解析的(不同于html和javascript中的相对地址,他们是由客户端浏览器解析的)也就是说这时候在jsp和servlet中的相对地址应该是相对于你的web应用,即相对于http://192.168.0.1 /webapp/的。

 

------------------------------------------------------------

 

 

我写了一个方法来计算 *.js *.css  文件服务器端的相对地址的方法, 下面是核心部分

Java代码 复制代码
  1. //获得/jive/temp/index.jsp   
  2. final String pathname = ((HttpServletRequest) pageContext.getRequest()).getRequestURI();   
  3. //去处index.jsp   
  4. final File tempfile = new File(pathname).getParentFile();   
  5. //获得/jive/temp/   
  6. final String realbase = pathname.substring(0, tempfile.toString().length() + 1);   
  7.   
  8. final StringBuffer sbf = new StringBuffer();   
  9. //<script type="text/javascript" src="/inc/ad/order/order.js"></script>   
  10. sbf.append("<script type=/"text/javascript/" src=/"");   
  11. sbf.append(realbase);   
  12. sbf.append(fileName);   
  13. sbf.append("/"></script>");   
  14. write(sbf.toString());  
		//获得/jive/temp/index.jsp
final String pathname = ((HttpServletRequest) pageContext.getRequest()).getRequestURI();
//去处index.jsp
final File tempfile = new File(pathname).getParentFile();
//获得/jive/temp/
final String realbase = pathname.substring(0, tempfile.toString().length() + 1);
final StringBuffer sbf = new StringBuffer();
//<script type="text/javascript" src="/inc/ad/order/order.js"></script>
sbf.append("<script type=/"text/javascript/" src=/"");
sbf.append(realbase);
sbf.append(fileName);
sbf.append("/"></script>");
write(sbf.toString());

 

这篇关于web应用中的引用路径集汇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/837310

相关文章

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Java中&和&&以及|和||的区别、应用场景和代码示例

《Java中&和&&以及|和||的区别、应用场景和代码示例》:本文主要介绍Java中的逻辑运算符&、&&、|和||的区别,包括它们在布尔和整数类型上的应用,文中通过代码介绍的非常详细,需要的朋友可... 目录前言1. & 和 &&代码示例2. | 和 ||代码示例3. 为什么要使用 & 和 | 而不是总是使

Linux修改pip和conda缓存路径的几种方法

《Linux修改pip和conda缓存路径的几种方法》在Python生态中,pip和conda是两种常见的软件包管理工具,它们在安装、更新和卸载软件包时都会使用缓存来提高效率,适当地修改它们的缓存路径... 目录一、pip 和 conda 的缓存机制1. pip 的缓存机制默认缓存路径2. conda 的缓

Python循环缓冲区的应用详解

《Python循环缓冲区的应用详解》循环缓冲区是一个线性缓冲区,逻辑上被视为一个循环的结构,本文主要为大家介绍了Python中循环缓冲区的相关应用,有兴趣的小伙伴可以了解一下... 目录什么是循环缓冲区循环缓冲区的结构python中的循环缓冲区实现运行循环缓冲区循环缓冲区的优势应用案例Python中的实现库

SpringBoot整合MybatisPlus的基本应用指南

《SpringBoot整合MybatisPlus的基本应用指南》MyBatis-Plus,简称MP,是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,下面小编就来和大家介绍一下... 目录一、MyBATisPlus简介二、SpringBoot整合MybatisPlus1、创建数据库和

python中time模块的常用方法及应用详解

《python中time模块的常用方法及应用详解》在Python开发中,时间处理是绕不开的刚需场景,从性能计时到定时任务,从日志记录到数据同步,时间模块始终是开发者最得力的工具之一,本文将通过真实案例... 目录一、时间基石:time.time()典型场景:程序性能分析进阶技巧:结合上下文管理器实现自动计时