2010-05-11 123 views
1

我有一個不兼容IE8瀏覽器的應用程序。配置Tomcat發送兼容IE 7或6的網頁

我正在尋找一種方式來配置Tomcat在此應用程序運行,使頁面可以通過IE8來讀取和處理,就好像它們是IE7或IE6

通過google搜索到目前爲止,我發現了一個可能的建議這說可添加到HTTP響應報頭: X-UA-兼容:IE = EmulateIE7
here

告訴IE8要像IE7。

問題是,這種方式需要添加應該在應用程序級別添加的過濾器。我想知道你們中的任何一位是否熟悉Tomcat能夠將其http內容發送爲IE7(或IE6)兼容的更通用的方式?

回答

1

Tomcat是一個通用的webserver和servlet容器。這絕對是與瀏覽器無關的,因此,沒有辦法以某種特殊的方式來配置它來處理IE。

您不必真的添加過濾器。最簡單的方法是在「服務」方法(或doGet或doPost,無論應用程序使用什麼)中的任何位置設置響應標頭:

res.addHeader(「X-UA兼容」,「IE = EmulateIE7」);

但是,這是在服務器應用程序中有一個入口點的情況下。否則,過濾器應該以更好的方式完成這項工作。

0

看到這個論壇thread討論完全相同的情況,你正在描述。看來過濾器是最好的選擇。作爲上述線程的答案,您可以使用Url Rewrite Filter。另外,如果您使用Apache Web Server代理Tomcat,則可以輕鬆配置它以將任何標頭添加到響應中。

4
  1. 下載urlrewritefilter-4.0.3.jar從http://tuckey.org/urlrewrite/
  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> 
  • 使該模塊的新的配置文件。 (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>