728x90
반응형

익스플로러의 고질적인 문제인 호환성 보기 문제로 인하여 이를 각페이지별로 meta 태그를 생성할 수는 없어서 
이에대해 서블릿의 Filter 를 구현한 IeEmulateFilter 클래스를 개발하여 모든 요청에 대한 응답에  res.setHeader("X-UA-Compatible""IE=8"); 를 
내려주도록 하여 IE-8 로 에뮬레이트가 고정되도록 하였다. 
아래는 IeEmulateFilter 클래스이다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package org.springframework.web.servlet;
 
import java.io.IOException;
 
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
/**
 *         IE 일경우 호환성 보기로 변경해주는 Filter
 *         @author digimon1740
 * */
public class IeEmulateFilter implements Filter {
 
    public void destroy() {}
 
    public void doFilter(ServletRequest servRequest, ServletResponse servResponse,
            FilterChain chain) throws IOException, ServletException {
        
        HttpServletRequest req = (HttpServletRequest)servRequest;
        HttpServletResponse res = (HttpServletResponse)servResponse;
        
        String userAgent = req.getHeader("User-Agent");
        
        if(userAgent.indexOf("MSIE")!=-1 || userAgent.indexOf("Trident")!=-1) //    IE일때
                res.setHeader("X-UA-Compatible""IE=8");
        
        chain.doFilter(req, res);
    }
 
    public void init(FilterConfig config) throws ServletException {}
 
}
 


WEB-INF/web.xml 에 아래의 filter 태그를 작성해준다.


1
2
3
4
5
6
7
8
9
10
11
 
     <filter>
          <filter-name>ieFilter</filter-name>
          <filter-class>
               org.springframework.web.servlet.IeEmulateFilter
          </filter-class>
     </filter>
     <filter-mapping>
          <filter-name>ieFilter</filter-name>
          <url-pattern>/*</url-pattern>
     </filter-mapping>


728x90
반응형

+ Recent posts