728x90
반응형
SMALL
IE 10 까지만 해도 request 의 header 에 User-Agent 부분을 읽어서
"MSIE" 라는 text 가 있으면 IE 에서 호출한 것으로 판단할 수 있었다.
그런데 IE11 에서 갑자기 MSIE 속성이 사라졌다.!!
IE 10 의 User-Agent 속성은 아래와 같다.
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
IE 11 의 경우는 아래와 같다.
Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
IE 는 Trident 토큰으로 판별하는 것이 더 좋을 것 같다... 아 물론 IE6은 제외..ㅡㅡ..
결론
HttpServletRequest 에 담긴 정보를 이용하여 어떤 브라우저에서 호출한 것인 지 알 수 있는 방법은
아래와 같이 "MSIE" 와 "Trident" 로 함께 검사하는 것이 좋다.
아래 예제 소스는 downloadView 의 일부 이다.
파일 다운로드 시 파일이름에 한글이 들어가 있을 경우에 대한 처리...
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request) {
File file = (File)model.get("downloadFile");
String fileName = (String)model.get("fileName");
String userAgent = request.getHeader("User-Agent");
boolean ie = (userAgent.indexOf("MSIE") > -1 || userAgent.indexOf("Trident") > -1);
if ( ie ) {
fileName = URLEncoder.encode(file.getName(), "utf-8");
} else {
fileName = new String(fileName.getBytes("utf-8"), "8859_1");
}
}
728x90
반응형
LIST
'IT > JAVA' 카테고리의 다른 글
Effective Java 2 - 규칙25 - "배열 대신 리스트를 써라" (0) | 2016.08.06 |
---|---|
Effective Java 2 - 규칙24 - "무점검 경고(unchecked warning)를 제거하라" (0) | 2016.08.06 |
Java 엔디안 변경 (0) | 2014.05.20 |
AES-256 암호화 시 주의 사항 (0) | 2014.04.30 |
한글 변환 처리 (0) | 2013.12.21 |