1 10 package org.mmbase.servlet; 11 12 import java.io.IOException ; 13 14 import javax.servlet.Filter ; 15 import javax.servlet.FilterChain ; 16 import javax.servlet.FilterConfig ; 17 import javax.servlet.ServletException ; 18 import javax.servlet.ServletRequest ; 19 import javax.servlet.ServletResponse ; 20 import javax.servlet.http.HttpServletRequest ; 21 22 import org.mmbase.module.Module; 23 import org.mmbase.module.core.MMBase; 24 import org.mmbase.util.logging.Logger; 25 import org.mmbase.util.logging.Logging; 26 27 91 public class CharacterEncodingFilter implements Filter { 92 93 94 private static Logger log = 95 Logging.getLoggerInstance(CharacterEncodingFilter.class.getName()); 96 97 private String encoding = null; 98 private FilterConfig filterConfig = null; 99 100 103 public void init(FilterConfig config) throws ServletException { 104 log.info("CharacterEncodingFilter init"); 105 filterConfig = config; 106 encoding = config.getInitParameter("encoding"); 107 if (encoding == null) { 108 MMBase mmbase = (MMBase) Module.getModule("MMBASEROOT"); 109 encoding = mmbase.getEncoding(); 110 if (encoding == null) { 111 encoding = "UTF-8"; 112 } 113 } 114 } 115 116 119 public void destroy() { 120 log.info("CharacterEncodingFilter destroy"); 121 filterConfig = null; 122 } 123 124 127 public void doFilter( 128 ServletRequest request, 129 ServletResponse response, 130 FilterChain chain) 131 throws IOException , ServletException { 132 133 if (request instanceof HttpServletRequest ) { 134 HttpServletRequest req = (HttpServletRequest ) request; 135 try { 136 if (req.getCharacterEncoding() == null) { 137 req.setCharacterEncoding(encoding); 140 } 141 } 142 catch (Exception e) { 143 log.warn("Error setting encoding : " + e.getMessage()); 144 } 145 } 146 147 chain.doFilter(request, response); 150 } 151 } 152
| Popular Tags
|