a52e2121d7fc861afa04f3651e0e60fcff119399
[mir.git] / source / mir / servlet / AbstractServlet.java
1 package mir.servlet;
2
3 import javax.servlet.http.HttpServlet;
4 import javax.servlet.http.HttpServletRequest;
5 import javax.servlet.http.HttpSession;
6 import java.io.File;
7 import java.util.Locale;
8
9 import mir.misc.HTMLTemplateProcessor;
10 import mir.misc.Configuration;
11 import mir.misc.Logfile;
12
13 /**
14  * Title:        Mir
15  * Description:  Abstract servlet-class
16  * Copyright:    Copyright (c) 2001
17  * Company:      Indymedia
18  * @author       idfx
19  * @version 1.0
20  */
21
22 public abstract class AbstractServlet extends HttpServlet {
23   protected static String lang;
24   protected static Logfile theLog;
25
26   /**
27    * get the configration
28    */
29   protected boolean getConfig(HttpServletRequest req) {
30                 Configuration.initConfig(getInitParameter("Config"));
31                 theLog = Logfile.getInstance(Configuration.getProperty("Home") + Configuration.getProperty("Mir.Logfile"));
32                 theLog.printInfo(super.getServletName() + " started.");
33                 return true;
34         }
35
36   /**
37    * Bind the language to the session
38    */
39   protected void setLanguage(HttpServletRequest req, String language){
40     HttpSession session = req.getSession();
41     session.setAttribute("Language",language);
42   }
43
44   /**
45    * Get the session-binded language
46    */
47   protected String getLanguage(HttpServletRequest req){
48     HttpSession session = req.getSession(true);
49     String lang = (String)session.getAttribute("Language");
50     if(lang==null || lang==""){
51       return getAcceptLanguage(req);
52     } else {
53                         return lang;
54                 }
55   }
56
57   /**
58    * Checks the Accept-Language of the clients browser.
59    * if this language is available it returns its country-code,
60    * else it returns the standard-language
61    */
62   protected String getAcceptLanguage(HttpServletRequest req){
63     Locale loc = req.getLocale();
64     lang = loc.getLanguage();
65     File f = new File(HTMLTemplateProcessor.templateDir+"/"+lang);
66     //is there an existing template-path?
67     if(!f.isDirectory()){
68       //no there isn't. we use standard-language
69       lang = Configuration.getProperty("StandardLanguage");
70       theLog.printDebugInfo("language not existing");
71     }
72     theLog.printDebugInfo("Language: " + lang);
73     return lang;
74   }
75 }