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. 76.0.3809.100版本的谷歌浏览器对应能用的chromedriver版本

    # -*- coding: utf-8 -*- # @Time : 2019/9/3 11:42 # @Author : wujf # @Email : 1028540310@qq.com # @Fi ...

  2. easyUI footer 的格式渲染

    网上好多的例子,但是自己使用的情况下还是出现bug.比如以下代码: var myview = $.extend({}, $.fn.datagrid.defaults.view, { renderFoo ...

  3. 百度地图根据list经纬度算每个点到剩余点的平均距离、最远距离和最近距离

    一.使用步骤 说明:给你一大串坐标list.计算每个点到其他所有点的最近最远平均距离. 1.打开百度地图api在线demo(随便一个都行) 2.替换<script></script& ...

  4. Qt Gui 第十章

    一.QListWidget.QTableWidget和QTreeWidget QTableWidget的item默认是可以编辑,其他两个的item默认是不可编辑.如果要将QTableWidget设置成 ...

  5. BZOJ4668 冷战(LCT维护最小生成树)

    BZOJ4668 冷战(LCT维护最小生成树) 题面 自己找去 HINT 这道题就是动态加边,然后查询u,v两点最早什么时候联通,强制在线.思考一下,最早什么时候联通不就等同于维护最小生成树吗(把这条 ...

  6. C++ lvalue(左值)和rvalue(右值)

    lvalue(左值)和rvalue(右值) 昨天写代码遇见一个这样的错误:{ "cannot bind non-const lvalue reference of type 'int& ...

  7. .Net Core的总结

    一.什么是.NET Core .NET Core是一个开源通用的开发框架,支持跨平台,即支持在Window,macOS,Linux等系统上的开发和部署,并且可以在硬件设备,云服务,和嵌入式/物联网方案 ...

  8. react-native-----hello word!

    react-native运行helloword 今天是个特殊的时刻,我前天开始学习react-native,一直环境塔建出错,运行打包出错,今晚,我终于把这个难搞的环境给搭建好了,并成功运行了第一个h ...

  9. 手把手带你开发一款 IIS 模块后门

    https://cloud.tencent.com/developer/article/1507913 首先准备工具 VS2017 IIS 开始开发 先打开 VS 创建一个 winfrom 项目然后添 ...

  10. @RendSection{"scripts",require:false}的作用

    MVC视图中,Javascripts代码被放于下面的Razor代码中(@section Scripts{}). 好处:在视图进行JavaScript编程时,是一个很好的实践,在共享视图(_Layout ...