Tomcat发布项目时,浏览器地址栏图标的问题
分类: web页面 2013-03-21 16:27 2172人阅读 评论(1) 收藏 举报
Tomcat 网站 Logo 图标原文作者:hebo_thu
最近在做一个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猫就是方法一的默认图标)。
这两种方法各有千秋。我比较喜欢方法一,理由是简单方便,而且测试全数通过。缺点是修改了整个tomcat的配置,影响了其中运行的所有应用程序的地址栏图标。不过如果这些应用程序本来就应该使用同一地址栏图标的话(比如某家公司的全部应用程序都使用该公司的logo作为图标),那就不成为问题。方法二的主要问题在于不被搜狗高速浏览器和360安全浏览器所支持,而且需要改动所有显示在顶层窗口的页面,有些麻烦。不过我觉得方法二代表了地址栏图标的发展方向,虽然目前不被搜狗高速浏览器和360安全浏览器所支持,但是说不定将来就会被支持。而且虽然要改动很多页面是有点麻烦,不过只拷贝几行代码的话,其实也算不了什么。况且方法二有一个很大的优点,就是可以在不影响其它应用程序的情况下改动tomcat中的某个应用程序,这点是方法一所不具备的。
原文地址:http://hi.baidu.com/hebo_thu/item/fc8c81bb164f5cee4fc7fd90(密技摘录,仅作备份)
分享到:
相关推荐
- **定义**:`favicon.ico` 是一个网站的图标文件,通常用于浏览器的地址栏、书签等位置。 - **作用**:增强网站的辨识度,提升用户体验。 - **位置**:在Web应用中,该文件通常放置在项目的根目录下。 **2. HTML...
然而,在使用过程中,用户可能会发现浏览器地址栏中显示的是默认的Tomcat图标(通常是一个小猫咪图标),这在某些场景下可能显得不够专业或不符合公司的品牌形象。本文将详细介绍如何更改这个图标,让您的网站更加...
Favicon.ico是一个小图标,通常显示在浏览器的地址栏、书签栏和页面标签上。它是网站的Logo和品牌标志的重要组成部分。favicon.ico文件通常是一个小的图像文件,文件格式必须是ICO格式。 为什么需要更改服务器的...
标题“修改IE地址栏Tomcat小猫咪图标”涉及到的是在Web服务器Apache Tomcat的自定义配置,特别是关于改变浏览器地址栏中的网站图标(Favicon)的过程。这个过程通常包括两个主要步骤:创建自定义图标(ICO文件)和...
Favicon是一个小图标,它会在浏览器的地址栏、书签列表以及标签页上显示,有助于提升用户体验和品牌识别度。下面我们将详细讨论如何修改Tomcat网站的图标,以及三种不同的实现方法。 **方法一:在ROOT目录下放置...
5. 重启服务器后,访问你的网站,可以看到你设置的新图标已经显示在浏览器地址栏中。 这两种方法都可以实现修改Tomcat项目图标的目的。第一种方法更灵活,可以通过代码控制不同页面使用不同的图标;第二种方法则...
- 在浏览器地址栏中输入`http://localhost:8080/tcis`,若出现404页面,则需检查Tomcat配置中的模块路径设置。 - 确认项目配置无误后,再次尝试访问。 - 登录页面默认用户名为`admin`,密码为`abc123`。 #### 六...
2. 打开浏览器,在地址栏输入`http://localhost:8080/`,如果出现Tomcat的欢迎页面,则表示Tomcat安装成功且运行正常。 #### 六、关闭Tomcat服务 正确关闭Tomcat服务的方法不是直接右键点击托盘图标退出,而是应当...
通过在浏览器地址栏输入`http://localhost:8080`来访问。 6. **关闭Tomcat** 关闭Tomcat,可以在命令提示符中输入`shutdown.bat`。或者,通过任务管理器结束`catalina.exe`进程。 7. **部署Web应用** 将你的Web...
- 打开浏览器,在地址栏输入`http://localhost:8080/myapp`(这里的8080和/myapp需根据实际配置调整),查看项目是否成功运行。 2. **调试项目**: - 点击IDEA顶部菜单栏中的`Run` -> `Debug`。 - 或者直接点击...
- 在浏览器地址栏输入以下URL之一: - `http://localhost:8080/manager/html` - `http://localhost:8080/examples/` - 如果能够访问到Tomcat管理页面或示例页面,说明Tomcat已成功安装并可以正常运行。 2. **...
解决方法:浏览器地址栏输入地址时,以 http 开始即可。 4. 启动 WebServer 后控制台报错 原因:端口被占用了。 解决方法:将之前的服务端关闭后再启动。 5. 程序启动后出现错误 原因:复制上一个版本的 java ...
浏览器地址栏会显示绿色锁图标,表明连接是安全的。 这个过程涉及到的源码主要是Tomcat的服务器配置文件,而工具方面主要依赖OpenSSL来生成密钥对和证书,以及Java的keytool工具管理密钥库。 请注意,生产环境中...
6. **测试SSL配置**:在浏览器中输入`https://yourdomain:8443`,如果配置正确,你应该能看到你的Web应用,并且地址栏会显示锁形图标,表示连接是安全的。 以上就是Tomcat配置SSL的基本流程。在实际操作中,你可能...
- 重启Eclipse,此时可以在工具栏或菜单中找到与Tomcat相关的图标,表明插件已成功安装。 2. **插件功能简介** - **管理Tomcat服务器**:通过Eclipse管理多个Tomcat实例。 - **部署应用**:在Eclipse中直接部署...
- 打开浏览器,在地址栏输入相应的URL(如:http://localhost:8080/test/MyJsp.jsp),访问部署好的JSP页面。 - 如果一切正常,浏览器将显示JSP页面的内容。 #### 四、进阶技巧 - **目录结构管理**:如果希望将...
2. **访问Tomcat的欢迎页面**:在地址栏中输入`http://localhost:8080`或`http://127.0.0.1:8080`,如果能访问到Tomcat的欢迎页面,则表示Tomcat已经成功安装并配置完毕。 #### 八、将Tomcat注册为Windows服务 ...