2017-08-10 60 views
5

MIME類型suppport我們在Servlet的添加了所有UTF-8字符過濾自動識別wildfly10

servletResponse.setContentType("text/html; charset=" + "UTF-8"); 
servletRequest.setCharacterEncoding(servletResponse.getCharacterEncoding()); 

因爲這一點,將內容類型設置爲「文本\ HTML」所有文件類型和CSS也和瀏覽器拒絕加載它與瀏覽器錯誤的CSS。

Resource interpreted as Stylesheet but transferred with MIME type text/html: 

但上面的JBoss 6 作品我已嘗試設置

<servlet-container name="default"> 
    <jsp-config mapped-file="false" development="true"/> 
    <websockets/> 
    <mime-mappings> 
     <mime-mapping name="css" value="text/css"/> 
     <mime-mapping name="msi" value="application/x-msi"/> 
    </mime-mappings> 
</servlet-container> 
在獨立-full.xml

但這不起作用。它如何自動識別文件內容類型?

+0

你不需要這樣做 - 默認編碼是UTF-8。我會把它全部刪除,因爲服務器應該爲你解決它。 – stdunbar

+0

@stdunbar如果我刪除它,那麼它將無法保存utf-8字符,因爲它會將該字符修改爲其他字符 – happy

回答

1

您發現servlet過濾器並非最佳回答以支持所有UTF-8字符,正如您注意到的那樣,此選項很奇怪,但我不會討論它,因爲這不是您的問題。

因此,如果您需要您的servlet過濾器不與除text/html之外的其他內容交互,請使用servlet過濾器url-pattern

例如,你可以有一個Servlet過濾器的定義是這樣的:

<filter> 
    <filter-name>MyServletFilter<filter-name> 
    <filter-class>[...]</filter-class> 
    <init-param> 
     [...] 
    </init-param> 
</filter> 

<filter-mapping> 
    <filter-name>MyServletFilter</filter-name> 
    <url-pattern>*.jsp</url-pattern> 
</filter-mapping> 

當然,你需要檢查,這種模式與目錄結構等手段符合訪問您的動態text/html內容。

因此,http://myserver.com/myapp/myservlet/staticcontent/file.xls之類的資源不會被您的特定過濾器更改。