http://www.chinadmd.com/file/tsa6ezc3wraczo6uose3ciei_1.html

——————————————————————————————————————————————————————————————

最近在做一个 java 网络应用程序,服务器是 tomcat。在默认情况下,当用户访 问该网络应用时,地址栏图标显示为 tomcat 猫。我希望把它换成自己的图标, 于是研究了一下。在研究过程中,我发现网上的资料大都语焉不详,于是把自己 的研究结果分享出来。本文的测试环境为: tomcat 6.0.20 IE6 SP3 Firefox 3.6.13 搜狗高速浏览器 2.2.0 360 安全浏览器 3.6.1 傲游浏览器 2.5.17 首先说明一下,我这个程序的用户一般使用的是基于 IE6 内核的外壳浏览器,比 如搜狗高速浏览器、360 安全浏览器和傲游浏览器等,也有少数的用户使用 Firefox,所以我测试的浏览器主要就是这几款浏览器。至于其它的数得上号的 浏览器,我猜本文提供的方法也能够大体上适用。不过这也仅仅是猜测,如果说 得不对,还请见谅或者指出。 下面分析一下各个浏览器对于地址栏图标的缓存机制。 为什么要分析这个呢?因 为在大多数情况下,如果不清空地址栏图标的缓存,那么即使改变了服务器端设 置的地址栏图标,在浏览器端也不会立刻反映出来,这就给测试带来了困难。而 浏览器们对于地址栏图标的缓存机制又不尽相同,因此有必要逐个加以分析。 IE6 和 Firefox 的缓存机制相对简单,即地址栏图标与其它需要缓存的数据存放 在同一位置,因此一般的清空缓存操作对地址栏图标同样适用。但是,基于 IE 内核的三款浏览器却把地址栏图标与其它需要缓存的数据分开存放, 必须使用手 动的方法进行清除。 搜 狗 高 速 浏 览 器 把 地 址 栏 图 标 缓 存 在 用 户 目 录 下 的 Application Data/SogouExplorer/FavIcon 文件夹中,其中主要起作用的是 FavorIcon.db 这 个文件,此外还有一系列叫做 s*.ico 的文件,这些文件是在“最常访问栏”等 处用到的图标文件。清空搜狗高速浏览器的地址栏图标的缓存较为麻烦,因为 FavorIcon.db 文件似乎必须在搜狗高速浏览器关闭的情况下才能删除,因此推 荐的方法是,在搜狗高速浏览器的“隐私保护”那里把所有缓存数据都删除,然 后关闭搜狗高速浏览器,再把 FavIcon 文件夹中的所有文件都删除(清空缓存数 据后,搜狗高速浏览器的“最常访问栏”等处也被清空了,所以那些 s*.ico 也 就没用了) 然后再打开搜狗高速浏览器, 。 这样就算是清空了地址栏图标的缓存。 360 安 全 浏 览 器 又 是 另 一 种 情 况 。 它 把 地 址 栏 图 标 缓 存 在 用 户 目 录 下 的 Application Data\360se\data\ico 文件夹中, 以“站点名.ico”为名保存起来。 所以只要找到对应的 ico 文件,删除了就可以了。但是有一点需要注意,假如站 点名包含端口信息,比如“127.0.0.1:8080”,那么它的缓存文

件就会是一个空 文件,而且浏览器也只会在地址栏里显示默认的绿 e 图标。我猜这是 360 安全浏 览器的某种 bug,因为在 Windows 系统下文件名里是不能含有冒号的,所以说不

定就是这样。而不包含端口信息的站点,也就是端口为默认的 80 的站点,比如 “127.0.0.1”,是不存在这样的问题的。 傲游浏览器把地址栏图标缓存在安装目录的 Favicons 文件夹中,但是文件名是 自动生成的。如果你能找到对应的文件,那么删除了就可以了。如果找不到或懒 得找,那么把 Favicons 文件夹中的所有文件都删除了也就是了。 除了清空浏览器的地址栏图标的缓存以外,还有一种办法可以绕过这个问题,那 就是改变 tomcat 的服务端口然后重启 tomcat。在测试过程中,这个办法可以同 时对付多个浏览器,所以还是比较方便的。只不过由于上面提及的原因,这个办 法不能很好地兼顾 360 安全浏览器。 下面进入正题,如何替换 tomcat 的猫图标。我首先尝试的方法是在应用程序的 web.xml 里加入这么一段: <icon> <small-icon>/images/small.gif</small-icon> <large-icon>/images/large.gif</large-icon> </icon> 其中/images/small.gif 和/images/large.gif 是我制作的两个 gif 文件,大小 分别为 16×16 像素和 32×32 像素。但是这个方法不管用,原因不知道。如有知 道的兄者,还望赐教。 然后我又进行了各种各样的尝试, 发现了两种管用的方法。 这两种方法各有利弊。 方法一, 的配置。 方法一,修改整个 tomcat 的配置。 首先制作一个名为 favicon.ico 的图标文件,然后进入 tomcat 的 webapps 下的 ROOT 目录,把其中的 favicon.ico 替换成自己的。注意以下几点: 1. favicon.ico 应该为 16×16 像素或 32×32 像素,8 位色(256 色)或 24 位 色。 2. 据说 favicon.ico 有大小的限制, 上限为 1.22K[?]。 不过据我观察, 超过 1.22K 也没关系。比如 Firefox 官方网站上的 favicon.ico 大小为 2.49K,我保存下来 放到 tomcat 的 webapps 下的 ROOT 目录里,也能正常显示。 3. 据说需要修改 tomcat 的 conf 下的 web.xml,在其中加入这么一段: <mime-mapping> <extension>ico</extension> <mime-type>image/x-icon</mime-type> </mime-mapping>

其实这段的主要作用在于当用户通过浏览器请求后缀名为.ico 的资源时, tomcat 告知浏览器该资源的媒体类型,以指导浏览器适当地在显示区域展现该 资源。而对于地址栏的图标数据,即使不特别指定媒体类型,浏览器应该也有能 力处理。 反正据我观察, 加不加这段话对于地址栏图标的显示来说效果是一样的。 4. 据说除了覆盖 favicon.ico 以外,还要把同目录下的 tomcat.svg 也搞掉。不 过据我观察,搞不搞掉它效果是一样的。 使用这个方法后,各个浏览器

的显示效果如下: @ IE6 只在地址栏显示那个一如既往的 e 图标,但是保存到收藏夹后可以看到效 果。 实际上, 当访问百度之类的网站时, IE6 也不在地址栏那里显示百度的图标, 因此我也不指望能比百度做得更好。 @ Firefox 在地址栏显示更改后的图标。 @ 搜狗高速浏览器在地址栏显示更改后的图标。 @ 360 安全浏览器在地址栏显示更改后的图标。 @ 傲游浏览器在地址栏显示更改后的图标。 方法二,修改应用程序的页面。 方法二,修改应用程序的页面。 在每个显示在顶层窗口的网页里的<head></head>里加入这么一段: <link rel="icon" href="/***/my.ico" type="image/x-icon" /> <link rel="shortcut icon" href="/***/my.ico" type="image/x-icon" /> <link rel="bookmark" href="/***/my.ico" type="image/x-icon" /> 注意以下几点: 1. 有人说 href 必须是绝对路径,其实没必要。相对路径一样 OK。而且文件名 不一定是 favicon.ico,可以自由地命名。而且也不一定是本地路径,任何可用 的路径都可以,比如 http://www.mozilla.com/favicon.ico。 2. 据说 rel="shortcut icon"代表地址栏图标,rel="bookmark"代表收藏夹图 标。不过似乎也不能一概而论,比如对于 Firefox 来说,rel="shortcut icon" 是 代 表 地 址 栏 图 标 没 错 , rel="icon" 却 是 在 收 藏 夹 里 起 作 用 的 那 一 个 , rel="bookmark"不起任何作用。但是对于其它浏览器来说情况又有所不同,所以 比较妥当的做法是把这三个都写上,然后指向同一个文件。 3. 据说需要修改 tomcat 的 web.xml 或者应用程序的 web.xml,在其中加入这么 一段: <mime-mapping> <extension>ico</extension> <mime-type>image/x-icon</mime-type> </mime-mapping>

不过据我观察,应该也是用不着。 使用这个方法后,各个浏览器的显示效果如下: @ IE6,地址栏显示 e 图标,收藏夹显示更改后的图标。 @ Firefox 在地址栏显示更改后的图标。 @ 搜狗高速浏览器在地址栏显示 tomcat 猫。 @ 360 安全浏览器在地址栏显示 tomcat 猫。 @ 傲游浏览器在地址栏显示更改后的图标。 换一种说法,搜狗高速浏览器和 360 安全浏览器只买方法一的账,其它三款浏览 器既买方法一的账也买方法二的账。如果同时使用方法一和方法二,则方法二的 优先级更高。
这两种方法各有千秋。我比较喜欢方法一,理由是简单方便,而且测试全数通过。缺点是修 改了整个 tomcat 的配置,影响了其中运行的所有应用程序的地址栏图标。不过如果这些应 用程序本来就应该使用同一地址栏图标的话 (比如某家公司的全部应用程序都使用该公司的 logo 作为图标) ,那就不成为问题。方法二的主要问题在于不被搜狗高速浏览器和 360 安全 浏览器所支持,而且需要改动所有显示在顶层窗口的页面,有些麻烦。不过我觉得方法二代 表了地址栏图标的发展方向, 虽然目前不被搜狗高速浏览器和 360 安全浏览器所支持, 但是 说不定将来就会被支持。而且虽然要改动很多页面是有点麻烦,不过只拷贝几行代码的话, 其实也算不了什么。 况且方法二有一个很大的优点, 就是可以在不影响其它应用程序的情况 下改动 tomcat 中的某个应用程序,这点是方法一所不具备的。

转载于:https://www.cnblogs.com/cuizhf/archive/2013/03/14/2959441.html

tomcat与地址栏图标之研究(多浏览器)相关推荐

  1. (转)tomcat与地址栏图标之研究(多浏览器)

    原文:http://hi.baidu.com/hebo_thu/item/fc8c81bb164f5cee4fc7fd90 tomcat与地址栏图标之研究(多浏览器) 最近在做一个java网络应用程序 ...

  2. Tomcat浏览器地址栏图标

    tomcat 6.0.20 IE6 SP3 Firefox 3.6.13 搜狗高速浏览器 2.2.0 360安全浏览器 3.6.1 傲游浏览器 2.5.17 首先说明一下,我这个程序的用户一般使用的是 ...

  3. 地址栏图标更换即shortcut icon问题

    为了是地址栏可以显示自己的网站图标,可以在网页添加如下代码: <link rel="SHORTCUT ICON" href="images/favicon.ico& ...

  4. 如何修改tomcat项目的图标

    我们在查看网页的时候很多网站都有自己的小图标,系统读取这个标志的时候先从你的项目的根目录下读看有没有favicon.ico文件,如果有直接显示这个图标,如果没有,则会去webapps/root/下找这 ...

  5. #网站图标、地址栏图标、收藏夹图标、favicon.ico

    本文关键词:网站图标.地址栏图标.收藏夹图标 相关链接: 百度百科:favicon.ico 关于shortcut icon和icon代码的区别介绍 一.favicon.ico的显示的位置: 1.在地址 ...

  6. 谷歌浏览器地址栏记录怎么删除 Chrome浏览器地址栏记录清除方法

    相信那些经常使用谷歌Chrome浏览器的朋友都清楚,这款浏览器软件会在地址栏保存大量的访问记录,其中也包括一些不想保存下来的!那么,谷歌浏览器地址栏记录要怎么删除呢?不清楚具体方法的朋友,还不赶紧收藏 ...

  7. 修改Tomcat服务器启动图标

    文章目录 修改Tomcat服务器启动图标 推荐文章 第一步:预览 第二步:修改 修改Tomcat服务器启动图标 推荐文章 Tomcat服务器下载.安装.配置环境变量教程(超详细) https://bl ...

  8. Ubuntu18.04网络图标不见了 火狐浏览器找不到服务器

    Ubuntu18.04网络图标不见了 火狐浏览器找不到服务器 1.删除NetworkManager缓存文件 service NetworkManager stop sudo rm /var/lib/N ...

  9. 基于TOMCAT的网页地址栏图标设置

    当我们打开CSDN等网站时,在地址栏前面就会出现红色的C状图标,如果在桌面新建此链接的快捷方式,则桌面图标也自动变为该地址栏ICO图标.在基于TOMCAT的BS应用或网站开发时,默认的图标为黄色的小猫 ...

最新文章

  1. Python3 函数function
  2. Ubuntu-16.04 部署 OpenStack Ocata下
  3. 【Python进阶】Python进阶专栏栏主自述:不忘初心,砥砺前行
  4. 【bootstrap】使用支持bootstrap的时间插件daterangepicker
  5. [转载]MIT牛人解说数学体系
  6. xbanner 动画特效设置android,Axure教程:如何实现爱彼迎App首页Banner的切换效果
  7. 20155229 2016-2007-2 《Java程序设计》第一周学习总结
  8. 图像变换——对数变换
  9. Vscode中HTML与CSS代码的快速写法
  10. 《一个操作系统的实现》 ubuntu系统环境配置
  11. 请千万不要在 JDK 7+ 中使用这个 JSON 包了!切记
  12. X265源码下载地址
  13. MultipartFile多文件上传
  14. win10修改命令行默认字体
  15. 五寸照片尺寸是多少?如何自己制作证件照?
  16. qq音乐主页 思路解析(及代码)
  17. matlab怎设置静态变量,Matlab/Simulink中的静态变量和全局变量
  18. 电商主播的上山下乡运动
  19. OpenCV中的图像处理 —— 轮廓入门+轮廓特征
  20. 怎样才能让datetime字段去掉最后面的小时、分、秒

热门文章

  1. Java值传递以及引用的传递、数组的传递
  2. 电子文件全程管理与信息安全保障的并行之路
  3. Android 4学习(8):用户界面 - Fragment
  4. 基于matlab的脑瘤mr图像处理_BraTS18——多模态MR图像脑肿瘤分割挑战赛
  5. 2015年语音识别文献阅读报告
  6. php判断数组下标,php检查数组下标是否存在
  7. queue及其api
  8. RPA机器人的两种类型与未来发展
  9. 10个前端开发常用的速查网站
  10. 静态HTML网页设计作品`零售食品商城网站(5页) HTML+CSS+JavaScript 网站设计源代码制作素材成品