servlet中重定向或请求转发的路径如果用“/”开头,代表当前项目下的路径,浏览器转发这条路径时会自动加上当前项目的路径前缀,如果这个路径不是以“/”开头,那么代表这个路径和当前所在servlet的路径前缀是同一个,浏览器访问该网址时会自动加上当前servlet的路径前缀。

  html中href或src网址如果用“/”开头,代表当前服务器下的路径,浏览器转发这条路径时会自动加上当前服务器的路径前缀,如果这个路径不是以“/”开头,那么代表这个路径和当前所在html的路径前缀是同一个,浏览器访问该网址时会自动加上当前html的路径前缀。

那么问题来了:为什么 servlet中的“/”代表当前项目,html中的“/”代表当前服务器?

  因为servlet是后台代码,只针对某个应用有效,想想也知道,自己应用的后台处理肯定不能控制别人应用(亲测自己的servlet不能把请求转发到百度),所以不需要给后台转发或重定向路径太大的范围,最大范围设置为当前项目就是最佳的,如果设置成是当前服务器下,那就没必要了,这个编程语言经过长时间的发展改进肯定已经达到一个性能很优的程度,

  而html是属于前端代码,前端页面是可以随意访问别人的的应用网页的,所以前端的访问路径必须至少是可以跨应用访问的,所以至少是服务器级别的,所以把默认当前路径设置为当前服务器下还是很合理的。

  不禁感慨这个模块的设计者怎么能把细节考虑得这么周到。

所以当我们遇到一个机制,我们应该想想为什么设计者要这样设置,这样设计有什么优势,了解这个层面的话,对这个机制的原理应该就比较透彻了,以后再使用这个机制的话就更不会出错了。

为什么html页面中的跳转到servlet中的src中要加项目名${pageContext.request.contextPath}?

  因为前端的页面是可以跳转到当前服务器下的其他项目的后台servlet的,所以如果其他项目也有一个通相对路径相同且同名的servlet的话,那么html就很难判断应该跳到哪去,所以为了明确要求跳转到本项目下的servlet中,要在路径前加一个项目名前缀

为什么有的时候html下面的src资源路径要加“../”前缀?

  因为你的html可能是在当前项目的某个文件夹下,这样你的hmtl里的相对路径就是服务器名加这个问件夹名,必须退回到和要访问的资源文件夹同一级才可以访问这个资源。每加一个“../”前缀就往上退一级

servlet中的“/”代表当前项目,html中的“/”代表当前服务器的更多相关文章

  1. 如何在java代码中调用一个web项目jsp或者servlet

    有时候需要调用一个web项目的jsp或者servlet,但是执行内部的代码,并不是打开jsp,例如需要在一段java代码中清除一个web项目中的缓存,那么可以把清除缓存的代码放在该web项目的一个se ...

  2. 如何将其它javaweb项目变成可以成功在自己eclipse环境中运行的javaweb项目?

    说明:此文档仅适用于以下两种情况     (1)myeclipse项目需要在eclipse环境中运行     (2)eclipse项目,但是无法在自己的电脑eclipse环境中运行     注意:以下 ...

  3. 年度巨献-WPF项目开发过程中WPF小知识点汇总(原创+摘抄)

    WPF中Style的使用 Styel在英文中解释为”样式“,在Web开发中,css为层叠样式表,自从.net3.0推出WPF以来,WPF也有样式一说,通过设置样式,使其WPF控件外观更加美化同时减少了 ...

  4. iOS项目开发中的知识点与问题收集整理①(Part 一)

    前言部分 注:本文并非绝对原创 大部分内容摘自 http://blog.csdn.net/hengshujiyi/article/details/20943045 文中有些方法可能已过时并不适用于现在 ...

  5. J2EE项目开发中常用到的公共方法

    在项目IDCM中涉及到多种工单,包括有:服务器|网络设备上下架工单.服务器|网络设备重启工单.服务器光纤网线更换工单.网络设备撤线布线工单.服务器|网络设备替换工单.服务器|网络设备RMA工单.通用原 ...

  6. step6----->往工程中添加spring boot项目------->修改pom.xml使得我的project是基于spring boot的,而非直接基于spring framework

    文章内容概述: spring项目组其实有多个projects,如spring IO platform用于管理external dependencies的版本,通过定义BOM(bill of mater ...

  7. JavaWeb 项目开发中的技术总结

    前言: 在项目开发过程中的一点点指导思想 1.环境准备 win系统 Eclipse 开发平台 maven tomcat Mysql 数据库,mysql5.6 操作数据库的jar 包 JDBC 连接数据 ...

  8. android大项目运行中出现问题汇总

    Android 项目中,特别是当项目文件和规模达到一定的程度后,会引发一些平常不常见的问题. 下面对遇到的一些问题做一个汇总和总结. scenario 1: 在项目中,我们采用了chromimum内核 ...

  9. Maven入门1-在Eclipse中新建Maven Web项目

    在eclipse中新建Maven Web项目 很多时候开发效率低下,大部分原因是IDE环境不熟悉.配置不会配置:因此在学习一项技能之前,有必要对基本的环境配置有所了解,正所谓磨刀不误砍柴工.这篇文章主 ...

随机推荐

  1. 航空航天专用Everspin非易失性MRAM存储器

    TAMU是由瑞典乌普萨拉的Ångström航空航天公司(ÅAC)开发的高级磁力计子系统.TAMU的目的是提供地球磁场的磁力计数据,以便与子画面观测相关.实验性TAMU由使用领先技术制造的四种类型的设备 ...

  2. Rtudio 安装包报错

    今天重新安装了一下Rstudio,基本上很多包都安装不上,问了度娘发现被墙了 f..k.. 解决办法,更改安装包的镜像为清华镜像 tools->gloabl options->packag ...

  3. python 的eval函数

    python中的eval()函数是用来计算所有数学的代数计算式,这样可以很快得到复杂代数式的结果. 例如:383660347*375705824-1796136991-1726898699*18994 ...

  4. BZOJ1040: [ZJOI2008]骑士 树套环DP

    题意:一个图n个点n条边保证点能互相到达,ab有边意味着ab互相厌恶,求一个集合,使得集合里元素最多而且没有人互相厌恶 删去环上一条边树形dp,比如删掉的边连着a,b,那么先dp出不选a的最大值,再d ...

  5. LayIM聊天框全屏根据浏览器高宽自适应

    个人博客 地址:http://www.wenhaofan.com/article/20190410190628 问题 由于LayIM没有处理聊天框在全屏状态下根据浏览器缩放处理高宽,所以会导致在浏览器 ...

  6. jQuery---创建和添加节点

    创建和添加节点 //创建jq对象 var $li = $('<a href="http://web.itcast.cn" target="_blank"& ...

  7. java - 锁的种类及详解

    锁类型 锁根据其特性能够划分出各种各样的锁类型,该文主要介绍以下锁的作用及特性 乐观锁/悲观锁 独享锁/共享锁 互斥锁/读写锁 可重入锁 公平锁/非公平锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁 ...

  8. SendMessage模拟按键所需的虚拟键码

    Virtual-Key Codes The following table shows the symbolic constant names, hexadecimal values, and mou ...

  9. 对one hot 编码的理解,sklearn. preprocessing.OneHotEncoder()如何进行fit()的?

    查阅了很多资料,逐渐知道了one hot 的编码,但是始终没理解sklearn. preprocessing.OneHotEncoder()如何进行fit()的?自己琢磨了一下,后来终于明白是怎么回事 ...

  10. AOPS论坛上100+100个积分

    100+10 rare and irresistible integrals I bring you many beautiful integrals that I have collected ov ...