我遇到了一個問題,在這個問題中,IE不打開像Firefox這樣的Excel文檔的另存爲/打開對話框。使用Internet Explorer打開Excel文檔的問題
所以我創建了一個使用'* .xls'作爲url模式的servlet過濾器。我現在面臨的問題(因爲這是我創建的第一個過濾器)是如何獲取用戶需要的文件的名稱,以便對話框正確填充。目前,當用戶在給定頁面上選擇鏈接時,會調用過濾器。
這裏是我想出了:
以上是我的doFilter()。
String fileName = "fileName.xls";
HttpServletRequest httpRequest = (HttpServletRequest) pRequest;
String requestURI = httpRequest.getRequestURI();
if(StringUtils.isNotBlank(requestURI))
{
String uri[] = StringUtils.split(requestURI, '/');
fileName = uri[uri.length - 1];
}
HttpServletResponse httpResponse = (HttpServletResponse) pResponse;
httpResponse.setContentType("application/vnd.ms-excel");
httpResponse.setHeader("Content-disposition", "attachment; filename=\"" + fileName +"\"");
的web.xml:
<filter>
<filter-name>ExcelFilter</filter-name>
<filter-class>vsg.rp.common.ExcelFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ExcelFilter</filter-name>
<url-pattern>*.xls</url-pattern>
</filter-mapping>
這一切都工作在我的發展框:Windows XP中,JBoss的是,Eclipse,甲骨文。但是當它運行在測試服務器Linux,Apache/JBoss,Oracle上時,它不起作用。看來,過濾器甚至沒有被調用,沒有錯誤拋出,等等。爲什麼會發生這種情況的任何想法?
你指出一個文件名變量 - 這是如何設置的? – boyd4715 2009-03-05 19:08:28