Spring3拦截引发的问题——WEB开发中的客户端路径
2014-08-12 21:44
239 查看
什么是客户端路径?
第一类、也就是html或js文件等客户端访问的文件中的路径,这里包括一些资源文件的引入(js、css还有各种图片等),或是跳转到静态html页面,总之获取的都是静态资源第二类、指定servlet跳转路径(比如<a href=””></a>或者location.href)
其实这两类本质都一样,都是通过请求服务器来获得相应的资源。在tomcat中一般用一个defaultServlet来处理静态资源的访问。
而第二类则一般是通过自己定义的<url-pattern></url-pattern>来匹配
客户端相对路径的用法
第一种:相对于当前页面
当我们在页面上使用<script type="text/javascript" src="resource/js/jquery.min.js"></script>等来引入资源文件时,这里的resource的绝对路径到底是什么?
其实就是以你当前访问的页面的地址为当前路径,你可以把它理解成一个基准路径,而src中的相对路径则是基于这个基准路径的。(貌似JSP的head里有个base标签,可以改这个基准路径,不过我没用过)
比如你当前访问的路径为http://localhost:8080/Spring/test.htm
那js文件在服务器上的绝对路径就是http://localhost:8080/Spring/resource/js/jquery.min.js
如果你的当前访问路径为http://localhost:8080/Spring/inner/test.htm
那你要引入上述文件,就需要这么写了:
<script type="text/javascript" src="../resource/js/jquery.min.js"></script>
第二种:相对于根路径
首先,我觉得在WEB应用里这应该算是绝对路径吧在浏览器中,”/”相当于就是当前网站的根目录。比如http://192.168.0.1/
这个要和servlet中的”/”区别开来,在servlet中的”/”是WEB应用的根目录
所以刚才引入js文件还可以这么写
<script type="text/javascript" src="/Spring/resource/js/jquery.min.js"></script>
但是这样的路径就和我们的WEB工程名绑定起来了,不方便移植。
其实我们这个WEB工程名我们在程序中是可以用”request.getContextPath()”取到的
得到的contextPath前面包含”/”,所以我们在引入的时候只需要
<script type="text/javascript" src="$!path/resource/js/jquery.min.js"></script>
(这里我用的是velocity)
另外需要说明的一点是:
在Spring3中使用注解的时候,拦截路径
@RequestMapping("/test")和@RequestMapping("/test/")是有区别的
第一个页面的当前路径是test的上一层,这里(可以把test想想成一个文件)
而第二个页面的当前路径则已经变成了test(可以把test想象成一个目录)
所以在写第一类相对路径的时候要注意,不然就会发生错误。
还有一个要注意:比如说用ajax请求@RequestMapping("/test/"),如果当前的目录为/test
那么不管ajax如何请求,当前路径依旧是test的上层,不会改变
相关文章推荐
- Spring3拦截引发的问题——WEB开发中的客户端路径
- 客户端时间不准引起的COOKIE问题,由CSDN引发
- 独孤求败——浅谈FireFox中file控件不能取到客户端文件的完整路径的问题
- 尝试加载 Oracle 客户端库时引发 BadImageFormatException。问题记录
- Spring3 MVC 拦截器拦截不到的问题
- win7 64bit 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题
- VC6路径设置错误引发的无法调试的奇怪问题
- 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题
- 关于strut拦截action的路径和package的namespase的问题
- 浅谈FireFox中file控件不能取到客户端文件的完整路径的问题
- FireFox中file控件不能取到客户端文件的完整路径的问题(2012.11.27)
- 浅谈FireFox中file控件不能取到客户端文件的完整路径的问题
- 浅谈FireFox中file控件不能取到客户端文件的完整路径的问题
- Struts2中namespace引发的路径问题
- 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题
- 客户端时间不准引起的COOKIE问题,由CSDN引发
- 用oralce连接.net客户端出现问题:“数据连接不成功,请检查该数据库是否已启动尝试加载oracle客户端时引发BadImageFormatException.如果在安装32位Oracle客户端组件的情况下以64位模式运行,”的解决办法
- 浅谈FireFox中file控件不能取到客户端文件的完整路径的问题
- 浅谈FireFox中file控件不能取到客户端文件的完整路径的问题 (转)
- 容易出问题的Struts2在web.xml路径拦截配置