1 25 26 package com.j2biz.blogunity.web.filter; 27 28 import java.io.IOException ; 29 import java.util.Locale ; 30 31 import javax.servlet.Filter ; 32 import javax.servlet.FilterChain ; 33 import javax.servlet.FilterConfig ; 34 import javax.servlet.ServletException ; 35 import javax.servlet.ServletRequest ; 36 import javax.servlet.ServletResponse ; 37 import javax.servlet.http.HttpServletRequest ; 38 import javax.servlet.http.HttpSession ; 39 40 import org.apache.commons.logging.Log; 41 import org.apache.commons.logging.LogFactory; 42 43 import com.j2biz.blogunity.BlogunityManager; 44 import com.j2biz.blogunity.IConstants; 45 import com.j2biz.blogunity.pojo.User; 46 47 public class LocaleFilter implements Filter { 48 51 private static final Log log = LogFactory.getLog(LocaleFilter.class); 52 53 58 public void init(FilterConfig arg0) throws ServletException { 59 } 60 61 66 public void destroy() { 67 } 68 69 75 public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) 76 throws IOException , ServletException { 77 78 HttpServletRequest request = (HttpServletRequest ) req; 79 request.setCharacterEncoding("UTF-8"); 80 81 BlogunityManager.setContextPath(request.getContextPath()); 83 86 if (BlogunityManager.getHost() == null) { 87 synchronized (BlogunityManager.class) { 88 if (BlogunityManager.getHost() == null) { 89 StringBuffer out = new StringBuffer (); 90 out.append(req.getScheme()); 91 out.append("://"); 92 out.append(req.getServerName()); 93 out.append(((req.getServerPort() != 80) ? ":" + req.getServerPort() : "")); 94 BlogunityManager.setHost(out.toString()); 95 } 96 } 97 } 98 99 Locale sysLocale = null; 100 HttpSession session = request.getSession(false); 101 102 if (session != null) { 103 104 User u = (User) session.getAttribute(IConstants.Session.USER); 106 if (u != null) { 107 sysLocale = u.getLanguage(); 108 } 109 if (sysLocale == null) 110 sysLocale = BlogunityManager.getSystemConfiguration().getSystemLocale(); 111 112 } else { 113 sysLocale = BlogunityManager.getSystemConfiguration().getSystemLocale(); 114 } 115 116 if (sysLocale == null) sysLocale = Locale.ENGLISH; 117 118 if (log.isDebugEnabled()) { 119 log.debug("Put locale for the current user into session: " + sysLocale); 120 } 121 122 request.setAttribute(IConstants.Request.LOCALE, sysLocale); 123 124 125 chain.doFilter(req, res); 126 127 128 } 129 130 } | Popular Tags |