3 import javax.servlet.http.HttpServlet;
4 import javax.servlet.http.HttpServletRequest;
5 import javax.servlet.http.HttpSession;
7 import java.util.Locale;
8 import java.util.HashMap;
10 import mir.misc.HTMLTemplateProcessor;
11 import mir.misc.StringUtil;
12 import mir.misc.MirConfig;
13 import mir.misc.Logfile;
17 * Description: Abstract servlet-class
18 * Copyright: Copyright (c) 2001
24 public abstract class AbstractServlet extends HttpServlet {
25 protected static String lang;
26 protected static Logfile theLog;
31 protected boolean getConfig(HttpServletRequest req) {
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", "");
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"));
51 * Bind the language to the session
53 protected void setLanguage(HttpSession session, String language){
54 session.setAttribute("Language",language);
58 * Get the session-binded language
60 protected String getLanguage(HttpServletRequest req, HttpSession session){
61 String lang = (String)session.getAttribute("Language");
62 if(lang==null || lang==""){
63 return getAcceptLanguage(req);
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
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?
80 //no there isn't. we use standard-language
81 lang = MirConfig.getProp("StandardLanguage");
82 theLog.printDebugInfo("language not existing");
84 theLog.printDebugInfo("Language: " + lang);