just a small clean up of some stuff I commented out while hacking.
[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 import java.util.HashMap;
9
10 import mir.misc.HTMLTemplateProcessor;
11 import mir.misc.StringUtil;
12 import mir.misc.MirConfig;
13 import mir.misc.Logfile;
14
15 /**
16  * Title:        Mir
17  * Description:  Abstract servlet-class
18  * Copyright:    Copyright (c) 2001
19  * Company:      Indymedia
20  * @author       idfx
21  * @version 1.0
22  */
23
24 public abstract class AbstractServlet extends HttpServlet {
25   protected static String lang;
26   protected static Logfile theLog;
27
28   /**
29    * the configration
30    */
31   protected boolean getConfig(HttpServletRequest req) {
32
33     String RealPath = super.getServletContext().getRealPath("/"); 
34     String Uri = req.getRequestURI();
35     String Name = super.getServletName();
36     //small quickhack, actionroot has to be /servlet/Mir
37     //String RootUri = StringUtil.replace(Uri, "/servlet/" + Name, "");
38     String RootUri = StringUtil.replace(Uri, "/servlet/Mir", "");
39
40
41     MirConfig.initConfig(RealPath, RootUri, Name, getInitParameter("Config"));
42     theLog = Logfile.getInstance(MirConfig.getProp("Home") + MirConfig.getProp("Mir.Logfile"));
43     theLog.printInfo(Name + " started.");
44     theLog.printInfo("Path is: " + MirConfig.getProp("Home"));
45     theLog.printInfo("Root URI is: " + MirConfig.getProp("RootUri"));
46     theLog.printInfo("Lang is: " + MirConfig.getProp("StandardLanguage"));
47     return true;
48   }
49
50   /**
51    * Bind the language to the session
52    */
53   protected void setLanguage(HttpSession session, String language){
54     session.setAttribute("Language",language);
55   }
56
57   /**
58    * Get the session-binded language
59    */
60   protected String getLanguage(HttpServletRequest req, HttpSession session){
61     String lang = (String)session.getAttribute("Language");
62     if(lang==null || lang==""){
63       return getAcceptLanguage(req);
64     } else {
65       return lang;
66     }
67   }
68
69   /**
70    * Checks the Accept-Language of the clients browser.
71    * if this language is available it returns its country-code,
72    * else it returns the standard-language
73    */
74   protected String getAcceptLanguage(HttpServletRequest req){
75     Locale loc = req.getLocale();
76     lang = loc.getLanguage();
77     File f = new File(HTMLTemplateProcessor.templateDir+"/"+lang);
78     //is there an existing template-path?
79     if(!f.isDirectory()){
80       //no there isn't. we use standard-language
81       lang = MirConfig.getProp("StandardLanguage");
82       theLog.printDebugInfo("language not existing");
83     }
84     theLog.printDebugInfo("Language: " + lang);
85     return lang;
86   }
87 }