本文主要是介绍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 文件服务器端的相对地址的方法, 下面是核心部分
- //获得/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());
//获得/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应用中的引用路径集汇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!