什么是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路径的更多相关文章

  1. Web开发中的相对路径和绝对路径

    在学习HTML的时候一定会遇到引入文件和链接跳转页面,比如:JS文件.CSS文件.Image图片.我们就会考虑是相对路径和绝对路径的问题.下面PHP程序员雷雪松就详细讲解下Web开发中的相对路径和绝对 ...

  2. SpringBoot学习(七)-->SpringBoot在web开发中的配置

    SpringBoot在web开发中的配置 Web开发的自动配置类:在Maven Dependencies-->spring-boot-1.5.2.RELEASE.jar-->org.spr ...

  3. 在 Web 开发中,img 标签用来呈现图片,而且一般来说,浏览器是会对这些图片进行缓存的。

    在 Web 开发中,img 标签用来呈现图片,而且一般来说,浏览器是会对这些图片进行缓存的. 比如访问百度,我们可以发现,图片.脚本这种都是从缓存(内存缓存/磁盘缓存)中加载的,而不是再去访问一次百度 ...

  4. 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践

    提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...

  5. Web 开发中很实用的10个效果【附源码下载】

    在工作中,我们可能会用到各种交互效果.而这些效果在平常翻看文章的时候碰到很多,但是一时半会又想不起来在哪,所以养成知识整理的习惯是很有必要的.这篇文章给大家推荐10个在 Web 开发中很有用的效果,记 ...

  6. WEB开发中的字符集和编码

    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...

  7. Web 开发中很实用的10个效果

    在工作中,我们可能会用到各种交互效果.而这些效果在平常翻看文章的时候碰到很多,但是一时半会又想不起来在哪,所以养成知识整理的习惯是很有必要的.这篇文章给大家推荐10个在 Web 开发中很有用的效果,记 ...

  8. Web开发中管理ipad屏幕的方向变化

    Web开发中,我们会遇到在手机垂直或水平视角时展示不同状态的情况.下面我来总结一下检测移动设备方向变化的一些方法. 1 使用javascript 直接看代码: <script type=&quo ...

  9. 今日推荐:10款在 Web 开发中很有用的占位图片服务

    设计网站时,将要使用的图像在一开始通常还不存在,这个时候布局是最重要的.然而,图像的尺寸通常是预先设置,实用一些占位图像可以帮助我们更好地预览和分析布局. 如今,有免费的占位图片自动生成工具可以使用, ...

随机推荐

  1. POJ 3276 枚举+差分?

    题意: 思路: 先枚举一下k 贪心:如果当前是B那么就翻 差分一下序列 mod2 就OK了 //By SiriusRen #include <cstdio> #include <cs ...

  2. TortoiseSvn介绍 客户端

    转载自:http://www.cnblogs.com/lyhabc/articles/2482381.html TortoiseSvn 是 Subversion 版本控制系统的一个免费开源客户端,可以 ...

  3. 关于springmvc重定向后Cannot create a session after the response has been committed问题

    首先先上代码吧,我在用springmvc进行response.sendRedirect(url);操作后报了Cannot create a session after the response has ...

  4. SQL脚本存在TABLE ACCESS FULL行为

    对于SQL的执行计划,一般尽量避免TABLE ACCESS FULL的出现,那怎样去定位,系统里面哪些SQL脚本存在TABLE ACCESS FULL行为,对于9i及以后版本,使用以下语句即可 sel ...

  5. openstack-dashboard开发环境搭建

    1,在开发过程中,一般都要,将dashboard这个组件单独执行在自己的本地的linux系统中(Ubuntu或centos),那个比較顺手用哪个.假设不习惯,能够用vmwareworkstation安 ...

  6. HDU 4786 Fibonacci Tree 生成树

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=4786 题意:有N个节点(1 <= N <= 10^5),M条边(0 <= M <= ...

  7. Androidbutton事件的五中写法总结

    button事件的五中写法: 1.匿名内部类 2.类实现View.OnClickListener接口 3.创建实例化接口对象 4.使用内部类 5.自己定义方法,配置Android:onclick属性 ...

  8. Torch 的安装与基本用法

    本文安装仅限 ubuntu 系统.官方文档见:Getting started with Torch. 0. 简介 Torch 使用轻量级脚本语言 Lua 及其 C/CUDA 扩展模块实现,底层数值计算 ...

  9. 7.Emmet----HTML以及CSS的缩写请查看

  10. 51Nod 1006 最长公共子序列Lcs问题 模板题

    给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的). 比如两个串为:   abcicba abdkscab   ab是两个串的子序列,abc也是,abca也是,其中abca是这两个 ...