Spring3拦截引发的问题——WEB开发中的client路径
什么是client路径?
第一类、也就是html或js文件等client訪问的文件里的路径,这里包含一些资源文件的引入(js、css还有各种图片等),或是跳转到静态html页面,总之获取的都是静态资源
第二类、指定servlet跳转路径(比方<a href=””></a>或者location.href)
事实上这两类本质都一样,都是通过请求server来获得对应的资源。
在tomcat中一般用一个defaultServlet来处理静态资源的訪问。
而第二类则通常是通过自定义的<url-pattern></url-pattern>来匹配
client相对路径的使用方法
第一种:相对于当前页面
当我们在页面上使用<script type="text/javascript" src="resource/js/jquery.min.js"></script>
等来引入资源文件时,这里的resource的绝对路径究竟是什么?
事实上就是以你当前訪问的页面的地址为当前路径,你能够把它理解成一个基准路径,而src中的相对路径则是基于这个基准路径的。(貌似JSP的head里有个base标签,能够改这个基准路径。只是我没用过)
比方你当前訪问的路径为http://localhost:8080/Spring/test.htm
那js文件在server上的绝对路径就是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>
可是这种路径就和我们的WEBproject名绑定起来了,不方便移植。
事实上我们这个WEBproject名我们在程序中是能够用”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的上层。不会改变
Ps:我也是发生了这个错,才想到要记录一下的
Spring3拦截引发的问题——WEB开发中的client路径的更多相关文章
- Web开发中的相对路径和绝对路径
在学习HTML的时候一定会遇到引入文件和链接跳转页面,比如:JS文件.CSS文件.Image图片.我们就会考虑是相对路径和绝对路径的问题.下面PHP程序员雷雪松就详细讲解下Web开发中的相对路径和绝对 ...
- SpringBoot学习(七)-->SpringBoot在web开发中的配置
SpringBoot在web开发中的配置 Web开发的自动配置类:在Maven Dependencies-->spring-boot-1.5.2.RELEASE.jar-->org.spr ...
- 在 Web 开发中,img 标签用来呈现图片,而且一般来说,浏览器是会对这些图片进行缓存的。
在 Web 开发中,img 标签用来呈现图片,而且一般来说,浏览器是会对这些图片进行缓存的. 比如访问百度,我们可以发现,图片.脚本这种都是从缓存(内存缓存/磁盘缓存)中加载的,而不是再去访问一次百度 ...
- 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践
提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...
- Web 开发中很实用的10个效果【附源码下载】
在工作中,我们可能会用到各种交互效果.而这些效果在平常翻看文章的时候碰到很多,但是一时半会又想不起来在哪,所以养成知识整理的习惯是很有必要的.这篇文章给大家推荐10个在 Web 开发中很有用的效果,记 ...
- WEB开发中的字符集和编码
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...
- Web 开发中很实用的10个效果
在工作中,我们可能会用到各种交互效果.而这些效果在平常翻看文章的时候碰到很多,但是一时半会又想不起来在哪,所以养成知识整理的习惯是很有必要的.这篇文章给大家推荐10个在 Web 开发中很有用的效果,记 ...
- Web开发中管理ipad屏幕的方向变化
Web开发中,我们会遇到在手机垂直或水平视角时展示不同状态的情况.下面我来总结一下检测移动设备方向变化的一些方法. 1 使用javascript 直接看代码: <script type=&quo ...
- 今日推荐:10款在 Web 开发中很有用的占位图片服务
设计网站时,将要使用的图像在一开始通常还不存在,这个时候布局是最重要的.然而,图像的尺寸通常是预先设置,实用一些占位图像可以帮助我们更好地预览和分析布局. 如今,有免费的占位图片自动生成工具可以使用, ...
随机推荐
- 分贝(dB)的理解
分贝(dB,decibels)表达的是功率比(power ratio,P2/P1),而不是一个amount,P2>P1,分贝为正值,否则为负值.分贝是对数形式的,而不是线性形式的,也即 20 d ...
- Entity Framework之Code First开发方式
一.Code First Code First方式只需要代码,不需要Edmx模型.EF通过实体类型结构推断生成SQL并创建数据库中的表.开发人员只需要编写实体类就可以进行EF数据库的开发. Code ...
- Java 开发 2.0: 现实世界中的 Redis
原文地址:http://www.ibm.com/developerworks/cn/java/j-javadev2-22/ 之前,我已在本系列中讨论过 NoSQL 的概念,也介绍了一些与 Java 平 ...
- hight charts
hight charts http://www.hcharts.cn/resource/index.php http://www.hcharts.cn/api/index.php
- Win7+MSVC2010+PCL1.7.2
我的配置环境是Win7+MSVC2010+PCL1.7.2. 网上关于点云库配置的文章已经很多,这里不做过多的重复,这里只讲一下自己在配置过程中遇到的问题及一些注意事项. K1: 在用Cmake编译时 ...
- 二分法查找 js 算法
二分法查找算法:采用二分法查找时,数据需是排好序的.主要思想是:(设查找的数组区间为array[s, e])(1)确定该区间的中间位置m(2)将查找的值T与array[m]比较,若相等,查找成功返回此 ...
- 玩转 Jupyter Notebook (CentOS)
Jupyter Notebook 简介 Jupyter Notebook 是一个开源的 Web 应用程序,可以用来创建和共享包含动态代码.方程式.可视化及解释性文本的文档.其应用于包括:数据整理与转换 ...
- localtime死锁——多线程下fork子进程
近期測试我们自己改进的redis,发如今做rdb时,子进程会一直hang住.gdb attach上.堆栈例如以下: (gdb) bt #0 0x0000003f6d4f805e in __lll_lo ...
- [c++]基类对象作为函数參数(赋值兼容规则)
编程处理教师的基本情况. 要求: 1.定义一个"person"类.用来存储及处理人的姓名.性别.年龄,成员函数自定: 2.定义"teacher"类,公有继承&q ...
- mongodb官网文档阅读笔记:write concern
write concern保证了mongodb写操作的级别,不同的write concern设置相应了不同级别的写操作.设置的级别越高.那么写操作的性能的持久化做得越好,可是写性能也就越差. mong ...