KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > j2biz > blogunity > web > filter > LocaleFilter


1 /*
2  * $Id: LocaleFilter.java,v 1.5 2005/01/13 19:27:34 michelson Exp $
3  *
4  * Copyright (c) 2004 j2biz Group, http://www.j2biz.com Koeln / Duesseldorf ,
5  * Germany
6  *
7  * @author Max Kalina
8  *
9  *
10  * This program is free software; you can redistribute it and/or modify it under
11  * the terms of the GNU General Public License as published by the Free Software
12  * Foundation; either version 2 of the License, or (at your option) any later
13  * version.
14  *
15  * This program is distributed in the hope that it will be useful, but WITHOUT
16  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
17  * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
18  * details.
19  *
20  * You should have received a copy of the GNU General Public License along with
21  * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
22  * Place, Suite 330, Boston, MA 02111-1307 USA
23  *
24  */

25
26 package com.j2biz.blogunity.web.filter;
27
28 import java.io.IOException JavaDoc;
29 import java.util.Locale JavaDoc;
30
31 import javax.servlet.Filter JavaDoc;
32 import javax.servlet.FilterChain JavaDoc;
33 import javax.servlet.FilterConfig JavaDoc;
34 import javax.servlet.ServletException JavaDoc;
35 import javax.servlet.ServletRequest JavaDoc;
36 import javax.servlet.ServletResponse JavaDoc;
37 import javax.servlet.http.HttpServletRequest JavaDoc;
38 import javax.servlet.http.HttpSession JavaDoc;
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 JavaDoc {
48     /**
49      * Logger for this class
50      */

51     private static final Log log = LogFactory.getLog(LocaleFilter.class);
52
53     /*
54      * (non-Javadoc)
55      *
56      * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
57      */

58     public void init(FilterConfig JavaDoc arg0) throws ServletException JavaDoc {
59     }
60
61     /*
62      * (non-Javadoc)
63      *
64      * @see javax.servlet.Filter#destroy()
65      */

66     public void destroy() {
67     }
68
69     /*
70      * (non-Javadoc)
71      *
72      * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest,
73      * javax.servlet.ServletResponse, javax.servlet.FilterChain)
74      */

75     public void doFilter(ServletRequest JavaDoc req, ServletResponse JavaDoc res, FilterChain JavaDoc chain)
76             throws IOException JavaDoc, ServletException JavaDoc {
77
78         HttpServletRequest JavaDoc request = (HttpServletRequest JavaDoc) req;
79         request.setCharacterEncoding("UTF-8");
80
81         // set context-path
82
BlogunityManager.setContextPath(request.getContextPath());
83         // BlogunityManager.setHost(StringUtils.substringBefore(request.getRequestURL().toString(),
84
// request.getContextPath()));
85

86         if (BlogunityManager.getHost() == null) {
87             synchronized (BlogunityManager.class) {
88                 if (BlogunityManager.getHost() == null) {
89                     StringBuffer JavaDoc out = new StringBuffer JavaDoc();
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 JavaDoc sysLocale = null;
100         HttpSession JavaDoc session = request.getSession(false);
101
102         if (session != null) {
103
104             // check, if already logged user exists in HttpSession
105
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