본문 바로가기
IT/JAVA

Java 에서 브라우저 확인 하기 - IE11 에서 사라진 MSIE....

by 최고영회 2016. 7. 29.
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