1

我有一个不兼容使用 IE8 浏览器的应用程序。

我正在寻找一种方法来配置运行此应用程序的 Tomcat,以便 IE8 可以读取页面并将它们视为 IE7 或 IE6

到目前为止,通过谷歌搜索,我发现了一个可能的建议,即在 http 响应中添加标头: X-UA-Compatible: IE=EmulateIE7
here

告诉 IE8 就像 IE7 一样。

问题是这种方式需要添加一个应该在应用程序级别添加的过滤器。我想知道你们中是否有人熟悉 Tomcat 能够发送其 http 内容以兼容 IE7(或 IE6)的更通用方式?

4

3 回答 3

5
  1. 从http://tukey.org/urlrewrite/下载 urlrewritefilter-4.0.3.jar
  2. 将 urlrewritefilter-4.0.3.jar 添加到 WEB-INF/lib
  3. 将以下代码添加到 WEB-INF/web.xml
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
  1. 为模块创建一个新的配置文件。(WEB-INF/urlrewrite.xml)
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN" "http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd">
<urlrewrite>
<rule><condition name="user-agent">.*MSIE.*</condition>
<set type="response-header" name="X-UA-Compatible">IE=EmulateIE7</set>
</rule>
</urlrewrite>
于 2014-11-11T22:04:43.680 回答
1

Tomcat 是一个通用的网络服务器和 servlet 容器。因此,它绝对与浏览器无关,因此无法以某种特殊方式对其进行配置以处理 IE。

您实际上不必添加过滤器。最低限度是在“服务”方法(或 doGet 或 doPost,无论应用程序使用什么)中的任何位置设置响应标头:

res.addHeader("X-UA-Compatible", "IE=EmulateIE7");

但这是在服务器应用程序中有单个入口点的情况下。否则过滤器应该以更好的方式完成这项工作。

于 2010-05-11T11:42:03.953 回答
0

请参阅此论坛主题,该主题讨论的情况与您描述的情况完全相同。似乎过滤器是最好的方法。正如上述线程的答案所暗示的,您可以使用Url Rewrite Filter

此外,如果您使用 Apache Web Server 代理 Tomcat,您可以轻松配置它以将任何标头添加到响应中。

于 2010-05-11T11:52:53.463 回答